re PR libstdc++/22109 (/home/dave/opt/gnu/bin/ld: BFD 2.16.91 20050612 internal error)
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
This commit is contained in:
parent
e57f2b4144
commit
462ec41561
@ -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>
|
2005-06-19 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
|
||||||
PR libstdc++/22111
|
PR libstdc++/22111
|
||||||
|
@ -1710,8 +1710,7 @@ fi
|
|||||||
|
|
||||||
# For GNU ld, we need at least this version. The format is described in
|
# For GNU ld, we need at least this version. The format is described in
|
||||||
# GLIBCXX_CHECK_LINKER_FEATURES above.
|
# GLIBCXX_CHECK_LINKER_FEATURES above.
|
||||||
# Need 21590 because of compatibility.cc's asm .symver strings for GLIBCXX_3.4.
|
glibcxx_min_gnu_ld_version=21400
|
||||||
glibcxx_min_gnu_ld_version=21590
|
|
||||||
|
|
||||||
# Check to see if unspecified "yes" value can win, given results above.
|
# Check to see if unspecified "yes" value can win, given results above.
|
||||||
# Change "yes" into either "no" or a style name.
|
# Change "yes" into either "no" or a style name.
|
||||||
|
@ -39,10 +39,12 @@ _ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv
|
|||||||
*/
|
*/
|
||||||
namespace __gnu_internal
|
namespace __gnu_internal
|
||||||
{
|
{
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv)
|
_GLIBCXX_APPLY_SYMVER(_ZNSt21istreambuf_iteratorXXIcSt11char_traitsIcEEppEv,
|
||||||
|
_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv)
|
||||||
|
|
||||||
#ifdef _GLIBCXX_USE_WCHAR_T
|
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv)
|
_GLIBCXX_APPLY_SYMVER(_ZNSt21istreambuf_iteratorXXIwSt11char_traitsIwEEppEv,
|
||||||
|
_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv)
|
||||||
#endif
|
#endif
|
||||||
} // namespace std
|
} // namespace std
|
||||||
|
|
||||||
@ -77,103 +79,136 @@ _ZNSt11char_traitsIwE2eqERKwS2_
|
|||||||
*/
|
*/
|
||||||
namespace __gnu_internal
|
namespace __gnu_internal
|
||||||
{
|
{
|
||||||
_GLIBCXX_APPLY_SYMVER_SPECIAL(_ZNSt11char_traitsIcE2eqERKcS2_)
|
_GLIBCXX_APPLY_SYMVER(_ZNSt11char_traitsIcE4eqXXERKcS2_,
|
||||||
|
_ZNSt11char_traitsIcE2eqERKcS2_)
|
||||||
|
|
||||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNSs7_M_copyEPcPKcj)
|
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_copyXXEPcPKcj,
|
||||||
|
_ZNSs7_M_copyEPcPKcj)
|
||||||
#else
|
#else
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNSs7_M_copyEPcPKcm)
|
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_copyXXEPcPKcm,
|
||||||
|
_ZNSs7_M_copyEPcPKcm)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNSs7_M_moveEPcPKcj)
|
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_moveXXEPcPKcj,
|
||||||
|
_ZNSs7_M_moveEPcPKcj)
|
||||||
#else
|
#else
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNSs7_M_moveEPcPKcm)
|
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_moveXXEPcPKcm,
|
||||||
|
_ZNSs7_M_moveEPcPKcm)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_assignEPcjc)
|
_GLIBCXX_APPLY_SYMVER(_ZNSs11_M_assignXXEPcjc,
|
||||||
|
_ZNSs9_M_assignEPcjc)
|
||||||
#else
|
#else
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_assignEPcmc)
|
_GLIBCXX_APPLY_SYMVER(_ZNSs11_M_assignXXEPcmc,
|
||||||
|
_ZNSs9_M_assignEPcmc)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNKSs11_M_disjunctEPKc)
|
_GLIBCXX_APPLY_SYMVER(_ZNKSs13_M_disjunctXXEPKc,
|
||||||
|
_ZNKSs11_M_disjunctEPKc)
|
||||||
|
|
||||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
#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
|
#else
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNKSs15_M_check_lengthEmmPKc)
|
_GLIBCXX_APPLY_SYMVER(_ZNKSs17_M_check_lengthXXEmmPKc,
|
||||||
|
_ZNKSs15_M_check_lengthEmmPKc)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
#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
|
#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
|
#endif
|
||||||
|
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNSi6ignoreEv)
|
_GLIBCXX_APPLY_SYMVER(_ZNSi8ignoreXXEv, _ZNSi6ignoreEv)
|
||||||
|
|
||||||
#ifdef _GLIBCXX_PTRDIFF_T_IS_INT
|
#ifdef _GLIBCXX_PTRDIFF_T_IS_INT
|
||||||
_GLIBCXX_APPLY_SYMVER_SPECIAL(_ZNSi6ignoreEi)
|
_GLIBCXX_APPLY_SYMVER(_ZNSi8ignoreXXEi, _ZNSi6ignoreEi)
|
||||||
#else
|
#else
|
||||||
_GLIBCXX_APPLY_SYMVER_SPECIAL(_ZNSi6ignoreEl)
|
_GLIBCXX_APPLY_SYMVER(_ZNSi8ignoreXXEl, _ZNSi6ignoreEl)
|
||||||
#endif
|
#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.
|
// Support for wchar_t.
|
||||||
#ifdef _GLIBCXX_USE_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
|
#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
|
#else
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm)
|
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_copyXXEPwPKwm,
|
||||||
|
_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
#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
|
#else
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm)
|
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_moveXXEPwPKwm,
|
||||||
|
_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
#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
|
#else
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw)
|
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE11_M_assignXXEPwmw,
|
||||||
|
_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw)
|
||||||
#endif
|
#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
|
#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
|
#else
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc)
|
_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE17_M_check_lengthXXEmmPKc,
|
||||||
|
_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _GLIBCXX_SIZE_T_IS_UINT
|
#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
|
#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
|
#endif
|
||||||
|
|
||||||
_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv)
|
_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE8ignoreXXEv,
|
||||||
|
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv)
|
||||||
|
|
||||||
#ifdef _GLIBCXX_PTRDIFF_T_IS_INT
|
#ifdef _GLIBCXX_PTRDIFF_T_IS_INT
|
||||||
_GLIBCXX_APPLY_SYMVER_SPECIAL(_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi)
|
_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE8ignoreXXEi,
|
||||||
|
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi)
|
||||||
#else
|
#else
|
||||||
_GLIBCXX_APPLY_SYMVER_SPECIAL(_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEl)
|
_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE8ignoreXXEl,
|
||||||
|
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEl)
|
||||||
#endif
|
#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
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
3
libstdc++-v3/configure
vendored
3
libstdc++-v3/configure
vendored
@ -87292,8 +87292,7 @@ fi
|
|||||||
|
|
||||||
# For GNU ld, we need at least this version. The format is described in
|
# For GNU ld, we need at least this version. The format is described in
|
||||||
# GLIBCXX_CHECK_LINKER_FEATURES above.
|
# GLIBCXX_CHECK_LINKER_FEATURES above.
|
||||||
# Need 21590 because of compatibility.cc's asm .symver strings for GLIBCXX_3.4.
|
glibcxx_min_gnu_ld_version=21400
|
||||||
glibcxx_min_gnu_ld_version=21590
|
|
||||||
|
|
||||||
# Check to see if unspecified "yes" value can win, given results above.
|
# Check to see if unspecified "yes" value can win, given results above.
|
||||||
# Change "yes" into either "no" or a style name.
|
# Change "yes" into either "no" or a style name.
|
||||||
|
@ -242,10 +242,7 @@ namespace std
|
|||||||
|
|
||||||
static bool
|
static bool
|
||||||
eq(const char_type& __c1, const char_type& __c2)
|
eq(const char_type& __c1, const char_type& __c2)
|
||||||
#ifdef _GLIBCXX_SYMVER_COMPATIBILITY
|
{ return __c1 == __c2; }
|
||||||
asm ("_W_ZNSt11char_traitsIcE2eqERKcS2_");
|
|
||||||
#endif
|
|
||||||
;
|
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
lt(const char_type& __c1, const char_type& __c2)
|
lt(const char_type& __c1, const char_type& __c2)
|
||||||
@ -297,9 +294,6 @@ namespace std
|
|||||||
{ return (__c == eof()) ? 0 : __c; }
|
{ 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
|
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||||
/// @brief 21.1.3.2 char_traits specializations
|
/// @brief 21.1.3.2 char_traits specializations
|
||||||
@ -317,11 +311,8 @@ namespace std
|
|||||||
{ __c1 = __c2; }
|
{ __c1 = __c2; }
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
eq(const char_type& __c1, const char_type& __c2)
|
eq(const char_type& __c1, const char_type& __c2)
|
||||||
#ifdef _GLIBCXX_SYMVER_COMPATIBILITY
|
{ return __c1 == __c2; }
|
||||||
asm ("_W_ZNSt11char_traitsIwE2eqERKwS2_")
|
|
||||||
#endif
|
|
||||||
;
|
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
lt(const char_type& __c1, const char_type& __c2)
|
lt(const char_type& __c1, const char_type& __c2)
|
||||||
@ -368,10 +359,6 @@ namespace std
|
|||||||
not_eof(const int_type& __c)
|
not_eof(const int_type& __c)
|
||||||
{ return eq_int_type(__c, eof()) ? 0 : __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
|
#endif //_GLIBCXX_USE_WCHAR_T
|
||||||
|
|
||||||
} // namespace std
|
} // namespace std
|
||||||
|
@ -31,7 +31,18 @@
|
|||||||
#include <bits/c++config.h>
|
#include <bits/c++config.h>
|
||||||
|
|
||||||
#if defined(_GLIBCXX_SYMVER) && defined(PIC)
|
#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
|
#endif
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
@ -42,27 +53,6 @@
|
|||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
// std::istream ignore explicit specializations.
|
// 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<>
|
template<>
|
||||||
basic_istream<char>&
|
basic_istream<char>&
|
||||||
@ -347,43 +337,27 @@ namespace std
|
|||||||
// In the future, GLIBCXX_ABI > 6 should remove all uses of
|
// In the future, GLIBCXX_ABI > 6 should remove all uses of
|
||||||
// _GLIBCXX_*_SYMVER macros in this file.
|
// _GLIBCXX_*_SYMVER macros in this file.
|
||||||
|
|
||||||
#define _GLIBCXX_3_4_SYMVER(name) \
|
#define _GLIBCXX_3_4_SYMVER(XXname, name) \
|
||||||
extern "C" void \
|
extern "C" void \
|
||||||
_X##name() \
|
_X##name() \
|
||||||
__attribute__ ((alias(#name))); \
|
__attribute__ ((alias(#XXname))); \
|
||||||
asm (".symver " "_X" #name "," #name "@GLIBCXX_3.4");
|
asm (".symver " "_X" #name "," #name "@GLIBCXX_3.4");
|
||||||
|
|
||||||
#define _GLIBCXX_3_4_5_SYMVER(name) \
|
#define _GLIBCXX_3_4_5_SYMVER(XXname, name) \
|
||||||
extern "C" void \
|
extern "C" void \
|
||||||
_Y##name() \
|
_Y##name() \
|
||||||
__attribute__ ((alias(#name))); \
|
__attribute__ ((alias(#XXname))); \
|
||||||
asm (".symver " "_Y" #name "," #name "@@GLIBCXX_3.4.5");
|
|
||||||
|
|
||||||
#define _GLIBCXX_3_4_SYMVER_SPECIAL(name) \
|
|
||||||
extern "C" void \
|
|
||||||
_X##name() \
|
|
||||||
__attribute__ ((alias("_W" #name))); \
|
|
||||||
asm (".symver " "_X" #name "," #name "@GLIBCXX_3.4");
|
|
||||||
|
|
||||||
#define _GLIBCXX_3_4_5_SYMVER_SPECIAL(name) \
|
|
||||||
extern "C" void \
|
|
||||||
_Y##name() \
|
|
||||||
__attribute__ ((alias("_W" #name))); \
|
|
||||||
asm (".symver " "_Y" #name "," #name "@@GLIBCXX_3.4.5");
|
asm (".symver " "_Y" #name "," #name "@@GLIBCXX_3.4.5");
|
||||||
|
|
||||||
#define _GLIBCXX_ASM_SYMVER(cur, old, version) \
|
#define _GLIBCXX_ASM_SYMVER(cur, old, version) \
|
||||||
asm (".symver " #cur "," #old "@@" #version);
|
asm (".symver " #cur "," #old "@@" #version);
|
||||||
|
|
||||||
#define _GLIBCXX_APPLY_SYMVER _GLIBCXX_3_4_SYMVER
|
#define _GLIBCXX_APPLY_SYMVER _GLIBCXX_3_4_SYMVER
|
||||||
#define _GLIBCXX_APPLY_SYMVER_SPECIAL _GLIBCXX_3_4_SYMVER_SPECIAL
|
|
||||||
#include <bits/compatibility.h>
|
#include <bits/compatibility.h>
|
||||||
#undef _GLIBCXX_APPLY_SYMVER
|
#undef _GLIBCXX_APPLY_SYMVER
|
||||||
#undef _GLIBCXX_APPLY_SYMVER_SPECIAL
|
|
||||||
|
|
||||||
#define _GLIBCXX_APPLY_SYMVER _GLIBCXX_3_4_5_SYMVER
|
#define _GLIBCXX_APPLY_SYMVER _GLIBCXX_3_4_5_SYMVER
|
||||||
#define _GLIBCXX_APPLY_SYMVER_SPECIAL _GLIBCXX_3_4_5_SYMVER_SPECIAL
|
|
||||||
#include <bits/compatibility.h>
|
#include <bits/compatibility.h>
|
||||||
#undef _GLIBCXX_APPLY_SYMVER
|
#undef _GLIBCXX_APPLY_SYMVER
|
||||||
#undef _GLIBCXX_APPLY_SYMVER_SPECIAL
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user