aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-03-01 20:15:17 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2008-03-01 20:15:17 +0100
commit7371aff837fcf6b21f6b12aec587819e621d46f6 (patch)
tree78cd74b433fb088ae0b5e6944674d57d1ef429ed /libstdc++-v3
parent89c3cbc686697a14bfb603da5e187331464e696b (diff)
downloadgcc-7371aff837fcf6b21f6b12aec587819e621d46f6.zip
gcc-7371aff837fcf6b21f6b12aec587819e621d46f6.tar.gz
gcc-7371aff837fcf6b21f6b12aec587819e621d46f6.tar.bz2
gnu.ver: Remove _ZNKSt3tr14hashIgEclEg@@GLIBCXX_3.4.10 and...
* config/abi/pre/gnu.ver: Remove _ZNKSt3tr14hashIgEclEg@@GLIBCXX_3.4.10 and _ZNKSt4hashIgEclEg@@GLIBCXX_3.4.10 export. * config/os/gnu-linux/ldbl-extra.ver: Export _ZNKSt3tr14hashIgEclEg@@GLIBCXX_LDBL_3.4.10 and _ZNKSt4hashIgEclEg@@GLIBCXX_LDBL_3.4.10. * src/hash.cc: Only define long double hash specialization if _GLIBCXX_LONG_DOUBLE_COMPAT_IMPL is defined. * src/compatibility-ldbl.cc: Include "hash.cc". (_GLIBCXX_LONG_DOUBLE_COMPAT_IMPL): Define. (_ZNKSt4hashIeEclEe): New alias. * testsuite/util/testsuite_abi.cc (check_version): Support GLIBCXX_LDBL_3.4.10. From-SVN: r132804
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog16
-rw-r--r--libstdc++-v3/config/abi/pre/gnu.ver4
-rw-r--r--libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver6
-rw-r--r--libstdc++-v3/src/compatibility-ldbl.cc13
-rw-r--r--libstdc++-v3/src/hash.cc4
-rw-r--r--libstdc++-v3/testsuite/util/testsuite_abi.cc3
6 files changed, 41 insertions, 5 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 7333576..516043db 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,19 @@
+2008-02-29 Jakub Jelinek <jakub@redhat.com>
+
+ * config/abi/pre/gnu.ver: Remove
+ _ZNKSt3tr14hashIgEclEg@@GLIBCXX_3.4.10 and
+ _ZNKSt4hashIgEclEg@@GLIBCXX_3.4.10 export.
+ * config/os/gnu-linux/ldbl-extra.ver: Export
+ _ZNKSt3tr14hashIgEclEg@@GLIBCXX_LDBL_3.4.10
+ and _ZNKSt4hashIgEclEg@@GLIBCXX_LDBL_3.4.10.
+ * src/hash.cc: Only define long double hash specialization if
+ _GLIBCXX_LONG_DOUBLE_COMPAT_IMPL is defined.
+ * src/compatibility-ldbl.cc: Include "hash.cc".
+ (_GLIBCXX_LONG_DOUBLE_COMPAT_IMPL): Define.
+ (_ZNKSt4hashIeEclEe): New alias.
+ * testsuite/util/testsuite_abi.cc (check_version): Support
+ GLIBCXX_LDBL_3.4.10.
+
2008-02-25 Jan Beulich <jbeulich@novell.com>
* acinclude.m4: Also check for EIDRM and ETXTBSY.
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index 0467a80..3bcbde3 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -770,14 +770,14 @@ GLIBCXX_3.4.10 {
_ZNKSt3tr14hashIRKSsEclES2_;
_ZNKSt3tr14hashISbIwSt11char_traitsIwESaIwEEEclES4_;
_ZNKSt3tr14hashISsEclESs;
- _ZNKSt3tr14hashI[eg]EclE[eg];
+ _ZNKSt3tr14hashIeEclEe;
_ZNKSt4hashIRKSbIwSt11char_traitsIwESaIwEEEclES5_;
_ZNKSt4hashIRKSsEclES1_;
_ZNKSt4hashISbIwSt11char_traitsIwESaIwEEEclES3_;
_ZNKSt4hashISsEclESs;
_ZNKSt4hashISt10error_codeEclES0_;
- _ZNKSt4hashI[eg]EclE[eg];
+ _ZNKSt4hashIeEclEe;
_ZSt17__verify_grouping*;
diff --git a/libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver b/libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver
index d1e09ec..0d634e8 100644
--- a/libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver
+++ b/libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver
@@ -12,6 +12,7 @@ GLIBCXX_LDBL_3.4 {
*__gnu_cxx_ldbl128*;
};
+# Corresponding to exports in GLIBCXX_3.4.9, not GLIBCXX_3.4.7
GLIBCXX_LDBL_3.4.7 {
_ZNSi10_M_extractIgEERSiRT_;
_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIgEERS2_RT_;
@@ -19,6 +20,11 @@ GLIBCXX_LDBL_3.4.7 {
_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIgEERS2_T_;
} GLIBCXX_LDBL_3.4;
+GLIBCXX_LDBL_3.4.10 {
+ _ZNKSt3tr14hashIgEclEg;
+ _ZNKSt4hashIgEclEg;
+} GLIBCXX_LDBL_3.4.7;
+
CXXABI_LDBL_1.3 {
_ZT[IS]g;
_ZT[IS]Pg;
diff --git a/libstdc++-v3/src/compatibility-ldbl.cc b/libstdc++-v3/src/compatibility-ldbl.cc
index 108790e..a94b227 100644
--- a/libstdc++-v3/src/compatibility-ldbl.cc
+++ b/libstdc++-v3/src/compatibility-ldbl.cc
@@ -1,6 +1,6 @@
// Compatibility symbols for -mlong-double-64 compatibility -*- C++ -*-
-// Copyright (C) 2006
+// Copyright (C) 2006, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -36,6 +36,8 @@
#error "compatibility-ldbl.cc must be compiled with -mlong-double-64"
#endif
+#define _GLIBCXX_LONG_DOUBLE_COMPAT_IMPL
+
namespace std
{
#define C char
@@ -70,4 +72,13 @@ namespace std
#endif
}
+// For std::tr1::hash<long double>::operator ()
+#include "hash.cc"
+
+// std::tr1::hash<long double>::operator ()
+// and std::hash<long double>::operator ()
+// are the same, no need to duplicate them.
+extern "C" void _ZNKSt4hashIeEclEe (void)
+ __attribute__((alias ("_ZNKSt3tr14hashIeEclEe")));
+
#endif
diff --git a/libstdc++-v3/src/hash.cc b/libstdc++-v3/src/hash.cc
index e778e2b..372dbf2 100644
--- a/libstdc++-v3/src/hash.cc
+++ b/libstdc++-v3/src/hash.cc
@@ -1,6 +1,6 @@
// std::hash and std::tr1::hash definitions -*- C++ -*-
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -74,6 +74,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
return __result;
};
+#ifndef _GLIBCXX_LONG_DOUBLE_COMPAT_IMPL
template<>
size_t
hash<string>::operator()(string __s) const
@@ -101,6 +102,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
return _Fnv_hash<>::hash(__p, __s.length() * sizeof(wchar_t));
}
#endif
+#endif
_GLIBCXX_END_NAMESPACE_TR1
}
diff --git a/libstdc++-v3/testsuite/util/testsuite_abi.cc b/libstdc++-v3/testsuite/util/testsuite_abi.cc
index cec3ae2..67c1e52 100644
--- a/libstdc++-v3/testsuite/util/testsuite_abi.cc
+++ b/libstdc++-v3/testsuite/util/testsuite_abi.cc
@@ -1,6 +1,6 @@
// -*- C++ -*-
-// Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
@@ -194,6 +194,7 @@ check_version(symbol& test, bool added)
known_versions.push_back("GLIBCXX_3.4.10");
known_versions.push_back("GLIBCXX_LDBL_3.4");
known_versions.push_back("GLIBCXX_LDBL_3.4.7");
+ known_versions.push_back("GLIBCXX_LDBL_3.4.10");
known_versions.push_back("CXXABI_1.3");
known_versions.push_back("CXXABI_1.3.1");
known_versions.push_back("CXXABI_1.3.2");