Howland Craig D (Craig)
Tue Feb 2 04:36:00 GMT 2010

Newlib had a mistake related to how this was done that was corrected
in 1.18--which is why the behavior has changed from 1.17.
If isnanf() really is wanted, the suggested addition of including
<ieeefp.h> is correct.  However, the better correction is to not use
isnanf()--obviating the need to add ieeefp.h--but rather to use the
C99/POSIX isnan() function-like macro, which takes any floating point
type (float or double or long double (ldbl not in Newlib--yet)).  This
should be the most portable method.

-----Original Message-----
From: [] On Behalf Of Søren Holm
Sent: Sunday, January 31, 2010 7:27 PM
Subject: Re: math.h

Mandag 01 februar 2010 01:08:17 skrev Yaakov (Cygwin/X):
> Careful; <ieeefp.h> disables the isnan and isinf macros (which are
> required by POSIX) and declares them as functions instead.  So <math.h>
> cannot #include <ieeefp.h> in this way.  If you really need these
> functions, I think you'll need to #include <ieeefp.h> in your code
>  directly.

ok. The wierd thing is that the software I'm developing compile nice agains 
newlib 1.1.7 but it fails with missing isnanf against newlib 1.18.

/Søren Holm

More information about the Newlib mailing list