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

Reply via email to