On Tue, Sep 16, 2025 at 9:26 AM connor horman via Gcc <[email protected]> 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.