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.

Reply via email to