aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2015-03-23 16:47:18 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2015-03-23 16:47:18 +0000
commit8dcf3d3c5d96c5cab3473326c8bc297729ec9ba5 (patch)
treef9ff7da9eeadcd74ec982a2fc7443a9098b993dd
parent468489483df36a009216601d2f70c3c8872ca301 (diff)
downloadgcc-8dcf3d3c5d96c5cab3473326c8bc297729ec9ba5.zip
gcc-8dcf3d3c5d96c5cab3473326c8bc297729ec9ba5.tar.gz
gcc-8dcf3d3c5d96c5cab3473326c8bc297729ec9ba5.tar.bz2
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
-rw-r--r--libstdc++-v3/ChangeLog9
-rw-r--r--libstdc++-v3/acinclude.m44
-rwxr-xr-xlibstdc++-v3/configure4
-rw-r--r--libstdc++-v3/src/c++11/compatibility-c++0x.cc4
-rw-r--r--libstdc++-v3/src/c++11/futex.cc1
5 files changed, 22 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 787332f..5a72407 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -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
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 74f5a65..a1e301f 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -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"
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 2507ff7..f5b28f4 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -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;}
diff --git a/libstdc++-v3/src/c++11/compatibility-c++0x.cc b/libstdc++-v3/src/c++11/compatibility-c++0x.cc
index 9ed367b..01a9690 100644
--- a/libstdc++-v3/src/c++11/compatibility-c++0x.cc
+++ b/libstdc++-v3/src/c++11/compatibility-c++0x.cc
@@ -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
diff --git a/libstdc++-v3/src/c++11/futex.cc b/libstdc++-v3/src/c++11/futex.cc
index a7f0200..e04dba8 100644
--- a/libstdc++-v3/src/c++11/futex.cc
+++ b/libstdc++-v3/src/c++11/futex.cc
@@ -93,6 +93,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
syscall (SYS_futex, __addr, futex_wake_op, INT_MAX);
}
+_GLIBCXX_END_NAMESPACE_VERSION
}
#endif
#endif