long double (was "strtold?")

Jeff Johnston jjohnstn@redhat.com
Sat Apr 18 01:49:00 GMT 2009


Ken Werner wrote:
> On Friday 17 April 2009 23:19:33 Howland Craig D (Craig) wrote:
>   
>> Umm, I don't understand the change to machine/ieeefp.h.  The defines
>> that it was using are the official names from float.h.  Adding __ as a
>> prefix and suffix ties it directly to gcc.  The makes it work for gcc
>> without float.h having been included, but won't it break other
>> compilers?
>> (There's nothing in the standards that I know of that would require
>> __LDBL_MANT_DIG__ to be defined, for example.)  So perhaps it did not
>> build as it was, but the way to fix it for all compilers is to add
>> #include <float.h>, I think.  (Newlib doesn't require gcc, does it?)
>> 				Craig
>>     
>
> Craig,
>
> Thanks for the heads up, you are right. The attached patch uses defines 
> provided by <float.h> instead of the GCC internals.
>
> Ken
>
>   
Actually, I don't want float.h as an implied include in this case since 
we are defining an internal-use
variable as opposed to something we need to expose to the end-user (in 
which case we would check for
gcc and avoid the include if possible).

So, I have undergone moving the macro to libc/stdlib/local.h and adding 
libm/common/local.h where it can
safely include float.h without affecting the end-user.  All the files 
needing _LDBL_EQ_DBL now include the "local.h" file in its directory.  
The patch will be checked in shortly.

-- Jeff J.



More information about the Newlib mailing list