gnu.ver: Remove _ZNKSt3tr14hashIgEclEg@@GLIBCXX_3.4.10 and...
authorJakub Jelinek <jakub@redhat.com>
Sat, 1 Mar 2008 19:15:17 +0000 (20:15 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sat, 1 Mar 2008 19:15:17 +0000 (20:15 +0100)
* 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

libstdc++-v3/ChangeLog
libstdc++-v3/config/abi/pre/gnu.ver
libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver
libstdc++-v3/src/compatibility-ldbl.cc
libstdc++-v3/src/hash.cc
libstdc++-v3/testsuite/util/testsuite_abi.cc

index 73335760efe62a8039b6e3b75da2d349a7ab3195..516043db8ae1f538e744f1b14c65043aaf382dcb 100644 (file)
@@ -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.
index 0467a8032fab50615f73e6c629d07f1e85cdd956..3bcbde317c833d3562088f8b8fa43262cf12e518 100644 (file)
@@ -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*;
     
index d1e09ec7e19fdc499829d89acb82b4000228e06b..0d634e83babcce9fff09d6dad963d7b2b10d0bdd 100644 (file)
@@ -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;
index 108790efabc6bbd493f3502ab6ac86f8a3d79654..a94b227bdae584b918bbccd24411c8332b164d9a 100644 (file)
@@ -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
index e778e2bf366b1edb9a6bd55a6931ddcb35277462..372dbf23ccce7c634bbbc91af9597bc5012a10bb 100644 (file)
@@ -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
 }
index cec3ae2f3f9ca9f3ddc46db85255804489d7eeae..67c1e5294e990e3e79cb05d284377b5d0831553e 100644 (file)
@@ -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");