https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70363
Bug ID: 70363 Summary: PowerPC __float128 to long double doesn't link if built with an assember without ISA 3.0 support Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libgcc Assignee: unassigned at gcc dot gnu.org Reporter: meissner at gcc dot gnu.org Target Milestone: --- Created attachment 38062 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38062&action=edit Compile this file with -DDEBUG to see the problem If you build a GCC compiler from the trunk and build it with an assembler that does not have support for the ISA 3.0 IEEE 128-bit instructions, and convert __float128 to long double (or __ibm128), you will get a link error: test-float128-6.c:(.text+0x84): undefined reference to `__extendkftf2' This is due to the support in libgcc to allow using the ISA 3.0 instructions via ifunc functions if you are running on a system with the instructions. However, if you build libgcc with an assembler that doesn't support these instructions, it should eliminate the ifunc support, and compile all of the emulator functions without the _sw suffix. Unfortunately extendkftf2-sw.c did not have the proper #ifdef support.