------- 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

Reply via email to