i386 long double math methods

Joel Sherrill joel@rtems.org
Thu Sep 26 13:23:00 GMT 2019

On Thu, Sep 26, 2019 at 12:24 AM Brian Inglis
<Brian.Inglis@systematicsw.ab.ca> wrote:
> On 2019-09-25 16:06, Joel Sherrill wrote:
> > i386-rtems tools do not include long double math routines but Cygwin
> > does and there is a comment in math.h indicating they have code
> > elsewhere for these.
> > Are these OK to use to fill in the long double gaps?
> Cygwin just uses straight newlib/libm, and the BSD versions of those long double
> math functions are already in newlib/libm/*/*l.c and available on Cygwin: sizeof
> float80, float128, and long double are all 16.

On RTEMS i386, long double != double and this code is disabled so we end up
missing the entire set of long double methods. That's what I am trying
to resolve.

> There are also some x86 asm and fast math specializations under winsup/cygwin/math/
> Or are you talking about other long double math functions not included?

Thanks. I need to move these to newlib/libm/ when I finish the fenv.h.

BTW and please, do you see what's wrong in my fenv.h patch for x86_64? I would
really like to wrap that up and move on to something else. :)

> You should be able to persuade configure to build RTEMS newlib/libm with a heavy
> platform config supporting long double size 16 and excluding _LDBL_EQ_DBL.

As I said earlier, long double != double on this target and this code
is disabled.
I suspect most i386 and x86_64 newlib targets are missing the same math methods
unless they provide them special like newlib.

Thanks for the pointer to winsup. I will move those to newlib once the
fenv.h patch
is resolved.


> --
> Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada
> This email may be disturbing to some readers as it contains
> too much technical detail. Reader discretion is advised.

More information about the Newlib mailing list