> breaks libstdc++ for powerpc*-unknown-linux-gnu on systems where long > double is 128 bits, resulting in lots of "undefined reference" errors > during linking. The change from "# undef" to "#undef" causes a match > in a sed command in libstdc++-v3/include/Makefile, which looks for > "^#undef _GLIBCXX_LONG_DOUBLE_COMPAT. Please revert it for now.
Hi Janis. I have been able to reproduce this (finally), and have checked in the attached patch to fix it. tested x86_64/linux tested powerpc64/linux --with-long-double-128 -benjamin
2008-05-01 Benjamin Kosnik <[EMAIL PROTECTED]> * include/bits/c++config: Revert _GLIBCXX_LONG_DOUBLE_COMPAT change. Index: include/bits/c++config =================================================================== --- include/bits/c++config (revision 134869) +++ include/bits/c++config (working copy) @@ -212,12 +212,11 @@ // XXX GLIBCXX_ABI Deprecated // Define if compatibility should be provided for -mlong-double-64 -#if defined __cplusplus && defined __LONG_DOUBLE_128__ #undef _GLIBCXX_LONG_DOUBLE_COMPAT -#endif // Namespace associations for long double 128 mode. -#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ \ + && defined __cplusplus namespace std { inline namespace __gnu_cxx_ldbl128 { }