Commit 8dcf3d3c by Jonathan Wakely Committed by Jonathan Wakely

re PR libstdc++/64967 (Bootstrap fails due to errors in libstdc++ sources with…

re PR libstdc++/64967 (Bootstrap fails due to errors in libstdc++ sources with `--enable-symvers=gnu-versioned-namespace')

	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
parent 46848948
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> 2015-03-20 James Greenhalgh <james.greenhalgh@arm.com>
* testsuite/17_intro/headers/c++1998/all_attributes.cc: Disable * testsuite/17_intro/headers/c++1998/all_attributes.cc: Disable
......
...@@ -3859,6 +3859,10 @@ dnl _GLIBCXX_USE_DUAL_ABI (always defined, either to 1 or 0) ...@@ -3859,6 +3859,10 @@ dnl _GLIBCXX_USE_DUAL_ABI (always defined, either to 1 or 0)
dnl dnl
AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI], [ AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI], [
GLIBCXX_ENABLE(libstdcxx-dual-abi,$1,,[support two versions of std::string]) 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 if test x"$enable_libstdcxx_dual_abi" != xyes; then
AC_MSG_NOTICE([dual ABI is disabled]) AC_MSG_NOTICE([dual ABI is disabled])
default_libstdcxx_abi="c++98" default_libstdcxx_abi="c++98"
......
...@@ -78258,6 +78258,10 @@ else ...@@ -78258,6 +78258,10 @@ else
fi 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 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:${as_lineno-$LINENO}: dual ABI is disabled" >&5
$as_echo "$as_me: dual ABI is disabled" >&6;} $as_echo "$as_me: dual ABI is disabled" >&6;}
...@@ -130,6 +130,7 @@ namespace std _GLIBCXX_VISIBILITY(default) ...@@ -130,6 +130,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
constexpr bool system_clock::is_monotonic; constexpr bool system_clock::is_monotonic;
} // namespace chrono } // namespace chrono
_GLIBCXX_BEGIN_NAMESPACE_VERSION
// gcc-5 replaces this with _V2::error_category // gcc-5 replaces this with _V2::error_category
class error_category class error_category
{ {
...@@ -168,6 +169,7 @@ namespace std _GLIBCXX_VISIBILITY(default) ...@@ -168,6 +169,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
operator!=(const error_category& __other) const noexcept operator!=(const error_category& __other) const noexcept
{ return this != &__other; } { return this != &__other; }
}; };
_GLIBCXX_END_NAMESPACE_VERSION
// gcc-4.9.0 // gcc-4.9.0
// LWG 2145 changes this constructor to constexpr i.e. inline // LWG 2145 changes this constructor to constexpr i.e. inline
...@@ -213,6 +215,7 @@ namespace std _GLIBCXX_VISIBILITY(default) ...@@ -213,6 +215,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
const system_error_category system_category_instance{}; const system_error_category system_category_instance{};
} }
_GLIBCXX_BEGIN_NAMESPACE_VERSION
const error_category& const error_category&
system_category() noexcept { return system_category_instance; } system_category() noexcept { return system_category_instance; }
...@@ -224,6 +227,7 @@ namespace std _GLIBCXX_VISIBILITY(default) ...@@ -224,6 +227,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
_GLIBCXX_CONST const error_categoryxx& system_category() noexcept; _GLIBCXX_CONST const error_categoryxx& system_category() noexcept;
_GLIBCXX_CONST const error_categoryxx& generic_category() noexcept; _GLIBCXX_CONST const error_categoryxx& generic_category() noexcept;
} }
_GLIBCXX_END_NAMESPACE_VERSION
error_condition error_condition
error_category::default_error_condition(int __i) const noexcept error_category::default_error_condition(int __i) const noexcept
......
...@@ -93,6 +93,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -93,6 +93,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
syscall (SYS_futex, __addr, futex_wake_op, INT_MAX); syscall (SYS_futex, __addr, futex_wake_op, INT_MAX);
} }
_GLIBCXX_END_NAMESPACE_VERSION
} }
#endif #endif
#endif #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment