summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/src
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2005-06-23 16:49:00 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2005-06-23 16:49:00 +0000
commit63a39322242c2834d22c20472e5619697edb68aa (patch)
treebad9e1e79fd3dfb06bf421c890b14ed70cadc0c6 /libstdc++-v3/src
parent5e3e35755672796445b82b03a868755d2753a02e (diff)
downloadppe42-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.cc58
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
OpenPOWER on IntegriCloud