On Tue, Sep 16, 2025 at 9:26 AM connor horman via Gcc <gcc@gcc.gnu.org> wrote:
>
> Hello. I'm currently trying to port gcc to a new OS on x86-64. When
> building libgcc I get
> In file included from ../../../libgcc/soft-fp/extendhfxf2.c:32:
> ../../../libgcc/soft-fp/extended.h:68:1: error: unable to emulate ‘XF’
>    68 | typedef float XFtype __attribute__ ((mode (XF)));
>       | ^~~~~~~
>
> This may be because I've set `long double` as 64-bit by default, but
> __float80 should still work, so I don't know why this is a thing? Anyone
> know why I'm getting this error?

i386.cc has:

  /* Default long double to 64-bit for 32-bit Bionic and to __float128
     for 64-bit Bionic.  Also default long double to 64-bit for Intel
     MCU psABI.  */
  if ((TARGET_HAS_BIONIC || TARGET_IAMCU)
      && !(opts_set->x_target_flags
           & (MASK_LONG_DOUBLE_64 | MASK_LONG_DOUBLE_128)))
    opts->x_target_flags |= (TARGET_64BIT
                             ? MASK_LONG_DOUBLE_128
                             : MASK_LONG_DOUBLE_64);

You need to do something similar for your OS.

-- 
H.J.

Reply via email to