------- Comment #7 from jakub at gcc dot gnu dot org 2006-09-04 12:14 ------- I have downloaded your tarball and it seems you are not building gcc to default to 128-bit long double on a glibc 2.4+ system. That's very bad idea, you either shouldn't have upgraded to glibc 2.4+, or should have switched everything to 128-bit long double. While --with-long-double-128 libstdc++.so.6 is ABI compatible with older one, --without-long-double-128 exact ABI of the math stubs depends on whatever configure tests find out. With older glibc's, log10l etc. is not in system libm (long double was just 64-bit there and so log10 did the same), but with glibc 2.4+ it is present in libm (and implements the 128bit long double logarithm etc.). Guess something like: --- libstdc++-v3/src/compatibility.cc 2006-02-23 09:55:01.000000000 +0100 +++ libstdc++-v3/src/compatibility.cc 2006-09-04 14:12:07.000000000 +0200 @@ -398,7 +398,11 @@ GLIBCXX_3.4) #undef _List_node_base
// gcc-4.1.0 -#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT \ + || (defined (__GLIBC__) \ + && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 4)) \ + && defined __LONG_DOUBLE_MATH_OPTIONAL \ + && defined __NO_LONG_DOUBLE_MATH) #define _GLIBCXX_MATHL_WRAPPER(name, argdecl, args, ver) \ extern "C" double \ __ ## name ## l_wrapper argdecl \ in GCC 4.2 and similar thing, but with also the whole _GLIBCXX_MATHL_WRAPPER and its uses hunks added in GCC 4.1 could cure this (but that doesn't make it a good idea to mix glibc 2.4+ with DFmode GCC). -- jakub at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2006-09-04 12:14:13 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28701