Hash :
fddec5c1
Author :
Date :
2011-09-30T21:07:43
float, math: Fix 'int' to 'long double' conversion on Linux/SPARC64. * m4/float_h.m4 (gl_FLOAT_H): Test conversion from 'int' to 'long double'. Set REPLACE_ITOLD. * lib/float.in.h (_Qp_itoq, _gl_float_fix_itold): New declarations. * lib/math.in.h (_Qp_itoq, _gl_math_fix_itold): New declarations. * lib/itold.c: New file. * modules/float (Files): Add lib/itold.c. (configure.ac): When REPLACE_ITOLD is 1, arrange to compile itold.c. (Makefile.am): Substitute REPLACE_ITOLD. * modules/math (Depends-on): Add float. (Makefile.am): Substitute REPLACE_ITOLD. * doc/posix-headers/float.texi: Mention problem on Linux/SPARC64. * doc/posix-headers/math.texi: Likewise. * doc/posix-functions/logl.texi: Likewise.
@node math.h
@section @file{math.h}
POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/basedefs/math.h.html}
Gnulib module: math
Portability problems fixed by Gnulib:
@itemize
@item
The conversion from @code{int} to @code{long double} in incorrect on some
platforms:
glibc 2.7 on Linux/SPARC64.
@item
The macro @code{NAN} is not defined on some platforms:
OpenBSD 4.0, AIX 5.1, IRIX 6.5, OSF/1 5.1.
@item
The macro @code{NAN} is not exposed outside of C99 compilation on some
platforms:
glibc.
@item
The macros @code{NAN} and @code{HUGE_VAL} expand to a function address
rather than a floating point constant on some platforms:
Solaris 10.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
@code{NAN} is not a compile time constant with some compilers:
OSF/1 with Compaq (ex-DEC) C 6.4.
@end itemize