diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-23 16:49:00 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-23 16:49:00 +0000 |
commit | 63a39322242c2834d22c20472e5619697edb68aa (patch) | |
tree | bad9e1e79fd3dfb06bf421c890b14ed70cadc0c6 /libstdc++-v3/src | |
parent | 5e3e35755672796445b82b03a868755d2753a02e (diff) | |
download | ppe42-gcc-63a39322242c2834d22c20472e5619697edb68aa.tar.gz ppe42-gcc-63a39322242c2834d22c20472e5619697edb68aa.zip |
PR libstdc++/22109
* src/compatibility.cc (_GLIBCXX_SYMVER_COMPATIBILITY): Remove.
(istreambuf_iterator, basic_fstream, basic_ifstream, basic_ofstream,
_M_copy, _M_move, _M_assign, _M_disjunct, _M_check_length,
_M_set_length_and_sharable, ignore, eq): Define to XX suffixed
variants.
(ignore (streamsize)): Remove _W prefixed aliases.
(_GLIBCXX_3_4_SYMVER_SPECIAL, _GLIBCXX_3_4_5_SYMVER_SPECIAL,
_GLIBCXX_APPLY_SYMVER_SPECIAL): Remove.
(_GLIBCXX_3_4_SYMVER, _GLIBCXX_3_4_5_SYMVER): Add XXname argument.
Use #XXname instead of #name as the alias argument.
* config/abi/compatibility.h: Replace uses of
_GLIBCXX_APPLY_SYMVER_SPECIAL with _GLIBCXX_APPLY_SYMVER. Always
pass 2 arguments to the _GLIBCXX_APPLY_SYMVER macro.
* include/bits/char_traits.h (char_traits::eq): Revert 2005-06-15
change.
* acinclude.m4: Decrease glibcxx_min_gnu_ld_version back to 21400.
* configure: Rebuilt.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101273 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/src')
-rw-r--r-- | libstdc++-v3/src/compatibility.cc | 58 |
1 files changed, 16 insertions, 42 deletions
diff --git a/libstdc++-v3/src/compatibility.cc b/libstdc++-v3/src/compatibility.cc index 380649d8f18..1deb56c3f30 100644 --- a/libstdc++-v3/src/compatibility.cc +++ b/libstdc++-v3/src/compatibility.cc @@ -31,7 +31,18 @@ #include <bits/c++config.h> #if defined(_GLIBCXX_SYMVER) && defined(PIC) -# define _GLIBCXX_SYMVER_COMPATIBILITY 1 +#define istreambuf_iterator istreambuf_iteratorXX +#define basic_fstream basic_fstreamXX +#define basic_ifstream basic_ifstreamXX +#define basic_ofstream basic_ofstreamXX +#define _M_copy(a, b, c) _M_copyXX(a, b, c) +#define _M_move(a, b, c) _M_moveXX(a, b, c) +#define _M_assign(a, b, c) _M_assignXX(a, b, c) +#define _M_disjunct(a) _M_disjunctXX(a) +#define _M_check_length(a, b, c) _M_check_lengthXX(a, b, c) +#define _M_set_length_and_sharable(a) _M_set_length_and_sharableXX(a) +#define ignore ignoreXX +#define eq eqXX #endif #include <string> @@ -42,27 +53,6 @@ namespace std { // std::istream ignore explicit specializations. -#if defined(_GLIBCXX_SYMVER) && defined(PIC) - template<> - basic_istream<char>& - basic_istream<char>::ignore(streamsize __n) -#ifdef _GLIBCXX_PTRDIFF_T_IS_INT - asm ("_W_ZNSi6ignoreEi"); -#else - asm ("_W_ZNSi6ignoreEl"); -#endif - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - basic_istream<wchar_t>& - basic_istream<wchar_t>::ignore(streamsize __n) -#ifdef _GLIBCXX_PTRDIFF_T_IS_INT - asm ("_W_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi"); -#else - asm ("_W_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEl"); -#endif -#endif -#endif // _GLIBCXX_SYMVER && PIC template<> basic_istream<char>& @@ -347,43 +337,27 @@ namespace std // In the future, GLIBCXX_ABI > 6 should remove all uses of // _GLIBCXX_*_SYMVER macros in this file. -#define _GLIBCXX_3_4_SYMVER(name) \ - extern "C" void \ - _X##name() \ - __attribute__ ((alias(#name))); \ - asm (".symver " "_X" #name "," #name "@GLIBCXX_3.4"); - -#define _GLIBCXX_3_4_5_SYMVER(name) \ - extern "C" void \ - _Y##name() \ - __attribute__ ((alias(#name))); \ - asm (".symver " "_Y" #name "," #name "@@GLIBCXX_3.4.5"); - -#define _GLIBCXX_3_4_SYMVER_SPECIAL(name) \ +#define _GLIBCXX_3_4_SYMVER(XXname, name) \ extern "C" void \ _X##name() \ - __attribute__ ((alias("_W" #name))); \ + __attribute__ ((alias(#XXname))); \ asm (".symver " "_X" #name "," #name "@GLIBCXX_3.4"); -#define _GLIBCXX_3_4_5_SYMVER_SPECIAL(name) \ +#define _GLIBCXX_3_4_5_SYMVER(XXname, name) \ extern "C" void \ _Y##name() \ - __attribute__ ((alias("_W" #name))); \ + __attribute__ ((alias(#XXname))); \ asm (".symver " "_Y" #name "," #name "@@GLIBCXX_3.4.5"); #define _GLIBCXX_ASM_SYMVER(cur, old, version) \ asm (".symver " #cur "," #old "@@" #version); #define _GLIBCXX_APPLY_SYMVER _GLIBCXX_3_4_SYMVER -#define _GLIBCXX_APPLY_SYMVER_SPECIAL _GLIBCXX_3_4_SYMVER_SPECIAL #include <bits/compatibility.h> #undef _GLIBCXX_APPLY_SYMVER -#undef _GLIBCXX_APPLY_SYMVER_SPECIAL #define _GLIBCXX_APPLY_SYMVER _GLIBCXX_3_4_5_SYMVER -#define _GLIBCXX_APPLY_SYMVER_SPECIAL _GLIBCXX_3_4_5_SYMVER_SPECIAL #include <bits/compatibility.h> #undef _GLIBCXX_APPLY_SYMVER -#undef _GLIBCXX_APPLY_SYMVER_SPECIAL #endif |