re PR libstdc++/22109 (/home/dave/opt/gnu/bin/ld: BFD 2.16.91 20050612 internal error)
authorJakub Jelinek <jakub@redhat.com>
Thu, 23 Jun 2005 16:49:00 +0000 (18:49 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 23 Jun 2005 16:49:00 +0000 (18:49 +0200)
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.

From-SVN: r101273

libstdc++-v3/ChangeLog
libstdc++-v3/acinclude.m4
libstdc++-v3/config/abi/compatibility.h
libstdc++-v3/configure
libstdc++-v3/include/bits/char_traits.h
libstdc++-v3/src/compatibility.cc

index b72825e..89bd318 100644 (file)
@@ -1,3 +1,24 @@
+2005-06-23  Jakub Jelinek  <jakub@redhat.com>
+
+       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.
+
 2005-06-19  Benjamin Kosnik  <bkoz@redhat.com>
 
        PR libstdc++/22111
index 7f6cad6..ee1b9f3 100644 (file)
@@ -1710,8 +1710,7 @@ fi
 
 # For GNU ld, we need at least this version.  The format is described in
 # GLIBCXX_CHECK_LINKER_FEATURES above.
-# Need 21590 because of compatibility.cc's asm .symver strings for GLIBCXX_3.4.
-glibcxx_min_gnu_ld_version=21590
+glibcxx_min_gnu_ld_version=21400
 
 # Check to see if unspecified "yes" value can win, given results above.
 # Change "yes" into either "no" or a style name.
index b371418..9faa61d 100644 (file)
@@ -39,10 +39,12 @@ _ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv
  */
 namespace __gnu_internal
 {
-_GLIBCXX_APPLY_SYMVER(_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv)
+_GLIBCXX_APPLY_SYMVER(_ZNSt21istreambuf_iteratorXXIcSt11char_traitsIcEEppEv,
+                     _ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv)
 
 #ifdef _GLIBCXX_USE_WCHAR_T
-_GLIBCXX_APPLY_SYMVER(_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv)
+_GLIBCXX_APPLY_SYMVER(_ZNSt21istreambuf_iteratorXXIwSt11char_traitsIwEEppEv,
+                     _ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv)
 #endif
 } // namespace std
 
@@ -77,103 +79,136 @@ _ZNSt11char_traitsIwE2eqERKwS2_
  */
 namespace __gnu_internal
 {
-_GLIBCXX_APPLY_SYMVER_SPECIAL(_ZNSt11char_traitsIcE2eqERKcS2_)
+_GLIBCXX_APPLY_SYMVER(_ZNSt11char_traitsIcE4eqXXERKcS2_,
+                     _ZNSt11char_traitsIcE2eqERKcS2_)
 
 #ifdef _GLIBCXX_SIZE_T_IS_UINT
-_GLIBCXX_APPLY_SYMVER(_ZNSs7_M_copyEPcPKcj)
+_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_copyXXEPcPKcj,
+                     _ZNSs7_M_copyEPcPKcj)
 #else
-_GLIBCXX_APPLY_SYMVER(_ZNSs7_M_copyEPcPKcm)
+_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_copyXXEPcPKcm,
+                     _ZNSs7_M_copyEPcPKcm)
 #endif
 
 #ifdef _GLIBCXX_SIZE_T_IS_UINT
-_GLIBCXX_APPLY_SYMVER(_ZNSs7_M_moveEPcPKcj)
+_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_moveXXEPcPKcj,
+                     _ZNSs7_M_moveEPcPKcj)
 #else
-_GLIBCXX_APPLY_SYMVER(_ZNSs7_M_moveEPcPKcm)
+_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_moveXXEPcPKcm,
+                     _ZNSs7_M_moveEPcPKcm)
 #endif
 
 #ifdef _GLIBCXX_SIZE_T_IS_UINT
-_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_assignEPcjc)
+_GLIBCXX_APPLY_SYMVER(_ZNSs11_M_assignXXEPcjc,
+                     _ZNSs9_M_assignEPcjc)
 #else
-_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_assignEPcmc)
+_GLIBCXX_APPLY_SYMVER(_ZNSs11_M_assignXXEPcmc,
+                     _ZNSs9_M_assignEPcmc)
 #endif
 
-_GLIBCXX_APPLY_SYMVER(_ZNKSs11_M_disjunctEPKc)
+_GLIBCXX_APPLY_SYMVER(_ZNKSs13_M_disjunctXXEPKc,
+                     _ZNKSs11_M_disjunctEPKc)
 
 #ifdef _GLIBCXX_SIZE_T_IS_UINT
-_GLIBCXX_APPLY_SYMVER(_ZNKSs15_M_check_lengthEjjPKc)
+_GLIBCXX_APPLY_SYMVER(_ZNKSs17_M_check_lengthXXEjjPKc,
+                     _ZNKSs15_M_check_lengthEjjPKc)
 #else
-_GLIBCXX_APPLY_SYMVER(_ZNKSs15_M_check_lengthEmmPKc)
+_GLIBCXX_APPLY_SYMVER(_ZNKSs17_M_check_lengthXXEmmPKc,
+                     _ZNKSs15_M_check_lengthEmmPKc)
 #endif
 
 #ifdef _GLIBCXX_SIZE_T_IS_UINT
-  _GLIBCXX_APPLY_SYMVER(_ZNSs4_Rep26_M_set_length_and_sharableEj)
+  _GLIBCXX_APPLY_SYMVER(_ZNSs4_Rep28_M_set_length_and_sharableXXEj,
+                       _ZNSs4_Rep26_M_set_length_and_sharableEj)
 #else
-  _GLIBCXX_APPLY_SYMVER(_ZNSs4_Rep26_M_set_length_and_sharableEm)
+  _GLIBCXX_APPLY_SYMVER(_ZNSs4_Rep28_M_set_length_and_sharableXXEm,
+                       _ZNSs4_Rep26_M_set_length_and_sharableEm)
 #endif
 
-_GLIBCXX_APPLY_SYMVER(_ZNSi6ignoreEv)
+_GLIBCXX_APPLY_SYMVER(_ZNSi8ignoreXXEv, _ZNSi6ignoreEv)
 
 #ifdef _GLIBCXX_PTRDIFF_T_IS_INT
-_GLIBCXX_APPLY_SYMVER_SPECIAL(_ZNSi6ignoreEi)
+_GLIBCXX_APPLY_SYMVER(_ZNSi8ignoreXXEi, _ZNSi6ignoreEi)
 #else
-_GLIBCXX_APPLY_SYMVER_SPECIAL(_ZNSi6ignoreEl)
+_GLIBCXX_APPLY_SYMVER(_ZNSi8ignoreXXEl, _ZNSi6ignoreEl)
 #endif
 
-_GLIBCXX_APPLY_SYMVER(_ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv)
+_GLIBCXX_APPLY_SYMVER(_ZNKSt15basic_fstreamXXIcSt11char_traitsIcEE7is_openEv,
+                     _ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv)
 
-_GLIBCXX_APPLY_SYMVER(_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv)
+_GLIBCXX_APPLY_SYMVER(_ZNKSt16basic_ifstreamXXIcSt11char_traitsIcEE7is_openEv,
+                     _ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv)
 
-_GLIBCXX_APPLY_SYMVER(_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv)
+_GLIBCXX_APPLY_SYMVER(_ZNKSt16basic_ofstreamXXIcSt11char_traitsIcEE7is_openEv,
+                     _ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv)
 
   // Support for wchar_t.
 #ifdef _GLIBCXX_USE_WCHAR_T
-_GLIBCXX_APPLY_SYMVER_SPECIAL(_ZNSt11char_traitsIwE2eqERKwS2_)
+_GLIBCXX_APPLY_SYMVER(_ZNSt11char_traitsIwE4eqXXERKwS2_,
+                     _ZNSt11char_traitsIwE2eqERKwS2_)
 
 #ifdef _GLIBCXX_SIZE_T_IS_UINT
-_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj)
+_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_copyXXEPwPKwj,
+                     _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj)
 #else
-  _GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm)
+  _GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_copyXXEPwPKwm,
+                       _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm)
 #endif
 
 #ifdef _GLIBCXX_SIZE_T_IS_UINT
-_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj)
+_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_moveXXEPwPKwj,
+                     _ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj)
 #else
-_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm)
+_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_moveXXEPwPKwm,
+                     _ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm)
 #endif
 
 #ifdef _GLIBCXX_SIZE_T_IS_UINT
-_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw)
+_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE11_M_assignXXEPwjw,
+                     _ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw)
 #else
-_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw)
+_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE11_M_assignXXEPwmw,
+                     _ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw)
 #endif
 
-_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw)
+_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE13_M_disjunctXXEPKw,
+                     _ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw)
 
 #ifdef _GLIBCXX_SIZE_T_IS_UINT
-_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc)
+_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE17_M_check_lengthXXEjjPKc,
+                     _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc)
 #else
-_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc)
+_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE17_M_check_lengthXXEmmPKc,
+                     _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc)
 #endif
 
 #ifdef _GLIBCXX_SIZE_T_IS_UINT
-_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj)
+_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE4_Rep28_M_set_length_and_sharableXXEj,
+                     _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj)
 #else
-_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm)
+_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE4_Rep28_M_set_length_and_sharableXXEm,
+                     _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm)
 #endif
 
-_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv)
+_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE8ignoreXXEv,
+                     _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv)
 
 #ifdef _GLIBCXX_PTRDIFF_T_IS_INT
-_GLIBCXX_APPLY_SYMVER_SPECIAL(_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi)
+_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE8ignoreXXEi,
+                     _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi)
 #else
-_GLIBCXX_APPLY_SYMVER_SPECIAL(_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEl)
+_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE8ignoreXXEl,
+                     _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEl)
 #endif
 
-_GLIBCXX_APPLY_SYMVER(_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv)
+_GLIBCXX_APPLY_SYMVER(_ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv,
+                     _ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv)
 
-_GLIBCXX_APPLY_SYMVER(_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv)
+_GLIBCXX_APPLY_SYMVER(_ZNKSt16basic_ifstreamXXIwSt11char_traitsIwEE7is_openEv,
+                     _ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv)
 
-_GLIBCXX_APPLY_SYMVER(_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv)
+_GLIBCXX_APPLY_SYMVER(_ZNKSt16basic_ofstreamXXIwSt11char_traitsIwEE7is_openEv,
+                     _ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv)
 #endif
 }
 
index ca2defe..fd37799 100755 (executable)
@@ -87292,8 +87292,7 @@ fi
 
 # For GNU ld, we need at least this version.  The format is described in
 # GLIBCXX_CHECK_LINKER_FEATURES above.
-# Need 21590 because of compatibility.cc's asm .symver strings for GLIBCXX_3.4.
-glibcxx_min_gnu_ld_version=21590
+glibcxx_min_gnu_ld_version=21400
 
 # Check to see if unspecified "yes" value can win, given results above.
 # Change "yes" into either "no" or a style name.
index aaefdd4..57a92ac 100644 (file)
@@ -242,10 +242,7 @@ namespace std
 
       static bool
       eq(const char_type& __c1, const char_type& __c2)
-#ifdef _GLIBCXX_SYMVER_COMPATIBILITY
-      asm ("_W_ZNSt11char_traitsIcE2eqERKcS2_");
-#endif
-      ;
+      { return __c1 == __c2; }
 
       static bool
       lt(const char_type& __c1, const char_type& __c2)
@@ -297,9 +294,6 @@ namespace std
       { return (__c == eof()) ? 0 : __c; }
   };
 
-  inline bool
-  char_traits<char>::eq(const char_type& __c1, const char_type& __c2)
-  { return __c1 == __c2; } 
 
 #ifdef _GLIBCXX_USE_WCHAR_T
   /// @brief  21.1.3.2  char_traits specializations
@@ -317,11 +311,8 @@ namespace std
       { __c1 = __c2; }
 
       static bool
-      eq(const char_type& __c1, const char_type& __c2) 
-#ifdef _GLIBCXX_SYMVER_COMPATIBILITY
-      asm ("_W_ZNSt11char_traitsIwE2eqERKwS2_")
-#endif
-      ;
+      eq(const char_type& __c1, const char_type& __c2)
+      { return __c1 == __c2; }
 
       static bool
       lt(const char_type& __c1, const char_type& __c2)
@@ -368,10 +359,6 @@ namespace std
       not_eof(const int_type& __c)
       { return eq_int_type(__c, eof()) ? 0 : __c; }
   };
-
-  inline bool
-  char_traits<wchar_t>::eq(const char_type& __c1, const char_type& __c2)
-  { return __c1 == __c2; } 
 #endif //_GLIBCXX_USE_WCHAR_T
 
 } // namespace std
index 380649d..1deb56c 100644 (file)
 #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>
 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