------- Comment #8 from bkoz at gcc dot gnu dot org 2009-01-05 20:48 -------
Ranier, when cross compiling, link tests cannot always be done. Therefore, libstdc++ hardcodes "found" functions when cross compiling, and discovers "found" functions when building for native. The problem with this approach is that the hardcoded list in crossconfig.m4 can become out of date. Thus, the comment in #5 to update this list. I did this, see attached. For HPUX, that is: *-hpux*) SECTION_FLAGS='-ffunction-sections -fdata-sections' AC_SUBST(SECTION_FLAGS) GLIBCXX_CHECK_LINKER_FEATURES GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT AC_DEFINE(HAVE_COPYSIGN) AC_DEFINE(HAVE_COPYSIGNF) AC_DEFINE(HAVE_FREXPF) AC_DEFINE(HAVE_HYPOT) case "$target" in *-hpux10*) AC_DEFINE(HAVE_FINITE) AC_DEFINE(HAVE_FINITEF) AC_DEFINE(HAVE_ISINF) AC_DEFINE(HAVE_ISINFF) AC_DEFINE(HAVE_ISNAN) AC_DEFINE(HAVE_ISNANF) ;; Now from looking on the web, it looks like HPUX 10.20 and HPUX 11.x have fabsf so the attached patch looks correct. However, this is rarely-touched code so perhaps further clean-up is warranted: I'll check in this first part to get the ball rolling. The current config only defines isinf, etc for 10.20, which seems suspicious to me. What I would suggest doing is looking at the generated c++config.h file from a native build on hpux11.00, and seeing if HAVE_FINITE to HAVE_ISNANF are defined. If so, move them out of the 10.20 block and into the hpux* generic block. Dave any cleanups here are pre-approved. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38384