diff options
author | Jakub Jelinek <jakub@redhat.com> | 2008-03-01 20:15:17 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-03-01 20:15:17 +0100 |
commit | 7371aff837fcf6b21f6b12aec587819e621d46f6 (patch) | |
tree | 78cd74b433fb088ae0b5e6944674d57d1ef429ed /libstdc++-v3 | |
parent | 89c3cbc686697a14bfb603da5e187331464e696b (diff) | |
download | gcc-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/ChangeLog | 16 | ||||
-rw-r--r-- | libstdc++-v3/config/abi/pre/gnu.ver | 4 | ||||
-rw-r--r-- | libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver | 6 | ||||
-rw-r--r-- | libstdc++-v3/src/compatibility-ldbl.cc | 13 | ||||
-rw-r--r-- | libstdc++-v3/src/hash.cc | 4 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/util/testsuite_abi.cc | 3 |
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"); |