long double and GLIBCPP_CHECK_MATH_SUPPORT
David Edelsohn
dje@watson.ibm.com
Thu Oct 26 10:59:00 GMT 2000
GCC for PowerPC does not implement true long double support yet.
This affects PowerPC GNU/Linux, not just AIX. "long double" is
implemented as "double".
My patch was trying to address a number of problems:
1) src/complexl.cc failed to compile and contained an ifdef for
_GLIBCPP_USE_LONG_LONG while defining FLT to "long double" which clearly
was a mismatch. If std_cmath.h provides a definition for each function
and falls back to "double" for each implementation, it should work.
2) AC_CHECK_FUNCS(strtold) succeeds on AIX and finds the AIX strtold()
function, but there is no visible declaration (because long double is not
supported) which prevented locale_facet.tcc from compiling. configure
only checks linkage for strtold() but checks declaration and linkage for
all of the math functions which is why it determines the accurate
information for the math functions and not for strtold(). (AIX does
implement long double support and provides all of the functions but GCC
does not use it and it is not clear whether a GCC implementation would use
the same format.)
3) configure takes an excruciating long amount of time to test every
individual long double math function (including underscore versions), so
it would be nice if it could skip the rest when it realizes that basic
long double functions are absent.
Using double support for long double types (which is how GCC is
behaving) is fine with me. Platforms without true long double support
simply require that this be done everywhere, including do_get() and
do_put().
Ignoring pthread support, with Phil's excellent set of patches and
my config/os/aix localized patches, I was able to compile all of
libstdc++v3 yesterday.
Thanks, David
P.S. Please include me on the To: or Cc: distribution list.
More information about the Libstdc++
mailing list