This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: long double (was "strtold?")


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]