On Tue, Sep 16, 2025 at 12:41 PM connor horman via Gcc <gcc@gcc.gnu.org> wrote:
>
> Forgot to send to the ML
>
> ---------- Forwarded message ---------
> From: connor horman <chorma...@gmail.com>
> Date: Tue, Sep 16, 2025 at 15:39
> Subject: Re: New OS Target: unable to emulate ‘XF’
> To: H.J. Lu <hjl.to...@gmail.com>
>
>
> I did this already, I think. That part is done and works (long double is
> 64-bit and the values of limits macros are set to what I expect for LDBL).

Please compare your target against Bionic target to see what is missing.

> On Tue, Sep 16, 2025 at 15:24 H.J. Lu <hjl.to...@gmail.com> wrote:
>
> > 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.
> >



-- 
H.J.

Reply via email to