re PR libstdc++/64967 (Bootstrap fails due to errors in libstdc++ sources with `...
authorJonathan Wakely <jwakely@redhat.com>
Mon, 23 Mar 2015 16:47:18 +0000 (16:47 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Mon, 23 Mar 2015 16:47:18 +0000 (16:47 +0000)
PR libstdc++/64967
* acinclude.m4: Disable dual ABI when gnu-versioned-namespace in use.
* configure: Regenerate.
* src/c++11/compatibility-c++0x.cc (error_category), generic_category,
system_category): Use macros for versioned namespace.
* src/c++11/futex.cc: Add missing end macro for versioned namespace.

From-SVN: r221600

libstdc++-v3/ChangeLog
libstdc++-v3/acinclude.m4
libstdc++-v3/configure
libstdc++-v3/src/c++11/compatibility-c++0x.cc
libstdc++-v3/src/c++11/futex.cc

index 787332fe71d3e45c9532e5099c6a295cb1b69987..5a72407acfba10fb83726e2ba73200fa4d662f4f 100644 (file)
@@ -1,3 +1,12 @@
+2015-03-23  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/64967
+       * acinclude.m4: Disable dual ABI when gnu-versioned-namespace in use.
+       * configure: Regenerate.
+       * src/c++11/compatibility-c++0x.cc (error_category), generic_category,
+       system_category): Use macros for versioned namespace.
+       * src/c++11/futex.cc: Add missing end macro for versioned namespace.
+
 2015-03-20  James Greenhalgh  <james.greenhalgh@arm.com>
 
        * testsuite/17_intro/headers/c++1998/all_attributes.cc: Disable
index 74f5a652fb7f7da51b2c2e46a031da5ecbfcfd66..a1e301fdaa9bad7347aeaf693cc1357689c053c4 100644 (file)
@@ -3859,6 +3859,10 @@ dnl  _GLIBCXX_USE_DUAL_ABI (always defined, either to 1 or 0)
 dnl
 AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI], [
   GLIBCXX_ENABLE(libstdcxx-dual-abi,$1,,[support two versions of std::string])
+  if test x$enable_symvers = xgnu-versioned-namespace; then
+    # gnu-versioned-namespace is incompatible with the dual ABI.
+    enable_libstdcxx_dual_abi="no"
+  fi
   if test x"$enable_libstdcxx_dual_abi" != xyes; then
     AC_MSG_NOTICE([dual ABI is disabled])
     default_libstdcxx_abi="c++98"
index 2507ff7e490b3e7fbbc7e619d1abb0a63f9631b5..f5b28f455ed730fc30c500757d61f8f46d7ab385 100755 (executable)
@@ -78258,6 +78258,10 @@ else
 fi
 
 
+  if test x$enable_symvers = xgnu-versioned-namespace; then
+    # gnu-versioned-namespace is incompatible with the dual ABI.
+    enable_libstdcxx_dual_abi="no"
+  fi
   if test x"$enable_libstdcxx_dual_abi" != xyes; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: dual ABI is disabled" >&5
 $as_echo "$as_me: dual ABI is disabled" >&6;}
index 9ed367b3ace3a63e26116f3458ec02c5d9e47c66..01a96907eea1a286536db400326afce87ce6a4b3 100644 (file)
@@ -130,6 +130,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
     constexpr bool system_clock::is_monotonic;
   } // namespace chrono
 
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
   // gcc-5 replaces this with _V2::error_category
   class error_category
   {
@@ -168,6 +169,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
     operator!=(const error_category& __other) const noexcept
     { return this != &__other; }
   };
+_GLIBCXX_END_NAMESPACE_VERSION
 
   // gcc-4.9.0
   // LWG 2145 changes this constructor to constexpr i.e. inline
@@ -213,6 +215,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
     const system_error_category system_category_instance{};
   }
 
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
   const error_category&
   system_category() noexcept { return system_category_instance; }
 
@@ -224,6 +227,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
     _GLIBCXX_CONST const error_categoryxx& system_category() noexcept;
     _GLIBCXX_CONST const error_categoryxx& generic_category() noexcept;
   }
+_GLIBCXX_END_NAMESPACE_VERSION
 
   error_condition
   error_category::default_error_condition(int __i) const noexcept
index a7f02009f112c04ae930aec490a838c82e70a68f..e04dba812bf037142cc39e0a489fff5c82fb90b6 100644 (file)
@@ -93,6 +93,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     syscall (SYS_futex, __addr, futex_wake_op, INT_MAX);
   }
 
+_GLIBCXX_END_NAMESPACE_VERSION
 }
 #endif
 #endif