diff options
author | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-07 22:23:58 +0000 |
---|---|---|
committer | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-07 22:23:58 +0000 |
commit | d7fbb98b08d28cb403fcfcb3162b4792aa64116b (patch) | |
tree | b8066f235ec23f5dc04e5951f1059343bd4db2ac /libstdc++-v3/config | |
parent | 5925d47a9678680da55feb29ec3f65f045e7408a (diff) | |
download | gcc-d7fbb98b08d28cb403fcfcb3162b4792aa64116b.tar.gz |
2006-02-07 Jakub Jelinek <jakub@redhat.com>
Benjamin Kosnik <bkoz@redhat.com>
* configure.ac (_GLIBCXX_LONG_DOUBLE_COMPAT): New check.
If true, set also port_specific_symbol_files and create
as_symver_specs.
(GLIBCXX_LDBL_COMPAT): New GLIBCXX_CONDITIONAL.
* configure: Rebuilt.
* config.h.in: Rebuilt.
* config/os/gnu-linux/ldbl-extra.ver: New file.
* config/abi/pre/gnu.ver: Make sure no __float128 symbols are
exported.
* include/bits/c++config (_GLIBCXX_LONG_DOUBLE_COMPAT,
_GLIBCXX_LDBL_NAMESPACE, _GLIBCXX_BEGIN_LDBL_NAMESPACE,
_GLIBCXX_END_LDBL_NAMESPACE): Define.
* include/bits/localefwd.h: Use them to conditionally scope facets.
* include/bits/locale_facets.h: Surround std::{money,num}_{get,put}
with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE.
Surround std::{money,num}_{get,put}
with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE.
[_GLIBCXX_LONG_DOUBLE_COMPAT] (std::money_get): Add __do_get method.
[_GLIBCXX_LONG_DOUBLE_COMPAT] (std::money_put): Add __do_put method.
[_GLIBCXX_LONG_DOUBLE_COMPAT] (std::num_get): Add __do_get method.
[_GLIBCXX_LONG_DOUBLE_COMPAT] (std::num_put): Add __do_put method.
* include/bits/locale_facets.tcc: Surround std::{money,num}_{get,put}
with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE.
(std::money_get::__do_get, std::money_put::__do_put,
std::num_get::__do_get, std::num_put::__do_put): New
specializations.
* include/Makefile.am: Conditionally define
_GLIBCXX_LONG_DOUBLE_COMPAT in c++config.
* include/Makefile.in: Regenerate.
* src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT] (_GLIBCXX_LOC_ID,
_GLIBCXX_SYNC_ID): Define, use them.
* src/compatibility-ldbl.cc: New file.
* src/complex_io.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Add compatibility
symbols.
* src/limits.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
* src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
* src/locale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
* src/locale-misc-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
* src/istream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
* src/ostream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
* src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
* src/wlocale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
* src/compatibility.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
* config/locale/generic/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]:
Likewise.
* config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]:
Likewise.
* src/Makefile.am (libstdc++-symbol.ver): Append instead of
insert in the middle if port specific symbol file requests it.
(ldbl_compat_sources): New variable.
(sources): Use it.
(compatibility-ldbl.lo, compatibility-ldbl.o): New rules.
* src/Makefile.in: Rebuilt.
* testsuite/testsuite_abi.cc: Recognize GLIBCXX_LDBL_3.4,
GLIBCXX_LDBL_3.4.7, CXXABI_LDBL_1.3.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110725 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/config')
-rw-r--r-- | libstdc++-v3/config/abi/pre/gnu.ver | 43 | ||||
-rw-r--r-- | libstdc++-v3/config/locale/generic/c_locale.cc | 9 | ||||
-rw-r--r-- | libstdc++-v3/config/locale/gnu/c_locale.cc | 9 | ||||
-rw-r--r-- | libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver | 26 |
4 files changed, 67 insertions, 20 deletions
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index 831951d0d69..8ea7c64a525 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -90,7 +90,10 @@ GLIBCXX_3.4 { std::locale::_S_normalize_category*; std::locale::_[T-Za-z]*; # std::[A-Zm-r]*; - std::[A-Zm-n]*; + std::[A-Zm]*; + std::n[^u]*; + std::nu[^m]*; + std::num[^e]*; std::[p-r]*; std::ostrstream*; std::out_of_range*; @@ -254,7 +257,7 @@ GLIBCXX_3.4 { _ZNSi[0-9][a-h]*; _ZNSi[0-9][j-z]*; _ZNSi6ignoreE[il][il]; - _ZNSirsE*; + _ZNSirsE*[^g]; # std::basic_istream<wchar_t> _ZNSt13basic_istreamIwSt11char_traitsIwEEC*; @@ -263,7 +266,7 @@ GLIBCXX_3.4 { _ZNSt13basic_istreamIwSt11char_traitsIwEE[0-9][a-h]*; _ZNSt13basic_istreamIwSt11char_traitsIwEE[0-9][j-z]*; _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreE[il][ijlm]; - _ZNSt13basic_istreamIwSt11char_traitsIwEErsE*; + _ZNSt13basic_istreamIwSt11char_traitsIwEErsE*[^g]; # std::istream operators and extractors _ZSt7getlineI[cw]St11char_traitsI[cw]ESaI[cw]EERSt13basic_istream*; @@ -281,7 +284,7 @@ GLIBCXX_3.4 { _ZNKSo6sentrycvbEv; _ZNSo8_M_write*; _ZNSo[0-9][a-z]*; - _ZNSolsE*; + _ZNSolsE*[^g]; # std::basic_ostream<wchar_t> _ZNSt13basic_ostreamIwSt11char_traitsIwEEC*; @@ -294,7 +297,7 @@ GLIBCXX_3.4 { _ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKw*; _ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentry*; _ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_write*; - _ZNSt13basic_ostreamIwSt11char_traitsIwEElsE*; + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsE*[^g]; # std::ostream operators and inserters _ZSt4end[ls]I[cw]St11char_traitsI[cw]EERSt13basic_ostream*; @@ -321,7 +324,7 @@ GLIBCXX_3.4 { _ZNSt8ios_base4InitD*; # bool std::has_facet - _ZSt9has_facet*; + _ZSt9has_facetIS*; # std::num_get _ZNKSt7num_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*; @@ -335,6 +338,9 @@ GLIBCXX_3.4 { # std::money_put _ZNKSt9money_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*; + # std::numeric_limits + _ZNSt14numeric_limitsI[^g]*; + # std::_Rb_tree _ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base; _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base; @@ -362,7 +368,7 @@ GLIBCXX_3.4 { _ZNSt12__basic_fileIcED*; # std::__convert_to_v - _ZSt14__convert_to_v*; + _ZSt14__convert_to_vI[^g]*; # __gnu_cxx::stdio_sync_filebuf _ZTVN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EEE; @@ -455,7 +461,8 @@ GLIBCXX_3.4 { _ZTSN9__gnu_cxx13stdio_filebufI[cw]St11char_traitsI[cw]EEE; # function-scope static objects requires a guard variable. - _ZGVNSt*; + _ZGVNSt[^1]*; + _ZGVNSt1[^7]*; # virtual function thunks _ZThn8_NS*; @@ -661,10 +668,10 @@ GLIBCXX_3.4.7 { _ZNSt11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv; _ZNSt11__gnu_debug19_Safe_sequence_base7_M_swapERS0_; - _ZNSo9_M_insertI*; - _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertI*; - _ZNSi10_M_extractI*; - _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractI*; + _ZNSo9_M_insertI[^g]*; + _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertI[^g]*; + _ZNSi10_M_extractI[^g]*; + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractI[^g]*; } GLIBCXX_3.4.6; @@ -740,9 +747,9 @@ CXXABI_1.3 { _ZTVN10__cxxabiv121__vmi_class_type_infoE; # typeinfo structure (and some names) - _ZTI[a-z]; - _ZTIP[a-z]; - _ZTIPK[a-z]; + _ZTI[a-fh-z]; + _ZTIP[a-fh-z]; + _ZTIPK[a-fh-z]; _ZTIN10__cxxabiv117__array_type_infoE; _ZTIN10__cxxabiv117__class_type_infoE; _ZTIN10__cxxabiv116__enum_type_infoE; @@ -755,9 +762,9 @@ CXXABI_1.3 { _ZTIN10__cxxabiv121__vmi_class_type_infoE; # typeinfo name - _ZTS[a-z]; - _ZTSP[a-z]; - _ZTSPK[a-z]; + _ZTS[a-fh-z]; + _ZTSP[a-fh-z]; + _ZTSPK[a-fh-z]; _ZTSN10__cxxabiv117__array_type_infoE; _ZTSN10__cxxabiv117__class_type_infoE; _ZTSN10__cxxabiv116__enum_type_infoE; diff --git a/libstdc++-v3/config/locale/generic/c_locale.cc b/libstdc++-v3/config/locale/generic/c_locale.cc index 68c3e7670c8..783b1963c0a 100644 --- a/libstdc++-v3/config/locale/generic/c_locale.cc +++ b/libstdc++-v3/config/locale/generic/c_locale.cc @@ -1,6 +1,6 @@ // Wrapper for underlying C-language localization -*- C++ -*- -// Copyright (C) 2001, 2002, 2003, 2004, 2005 +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -171,3 +171,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std) const char* const* const locale::_S_categories = __gnu_cxx::category_names; _GLIBCXX_END_NAMESPACE + +// XXX GLIBCXX_ABI Deprecated +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \ + extern "C" void ldbl (void) __attribute__ ((alias (#dbl))) +_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi); +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT diff --git a/libstdc++-v3/config/locale/gnu/c_locale.cc b/libstdc++-v3/config/locale/gnu/c_locale.cc index 4025fb18b87..8a42638e0f2 100644 --- a/libstdc++-v3/config/locale/gnu/c_locale.cc +++ b/libstdc++-v3/config/locale/gnu/c_locale.cc @@ -1,6 +1,6 @@ // Wrapper for underlying C-language localization -*- C++ -*- -// Copyright (C) 2001, 2002, 2003, 2004, 2005 +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -135,3 +135,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std) const char* const* const locale::_S_categories = __gnu_cxx::category_names; _GLIBCXX_END_NAMESPACE + +// XXX GLIBCXX_ABI Deprecated +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \ + extern "C" void ldbl (void) __attribute__ ((alias (#dbl))) +_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct); +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT diff --git a/libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver b/libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver new file mode 100644 index 00000000000..d1e09ec7e19 --- /dev/null +++ b/libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver @@ -0,0 +1,26 @@ +# Appended to version file. + +GLIBCXX_LDBL_3.4 { + _ZNSt14numeric_limitsIg*; + _ZNSirsERg; + _ZNSolsEg; + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERg; + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEg; + _ZSt14__convert_to_vIgEvPKcRT_RSt12_Ios_IostateRKP*; + _ZStlsIg[cw]St11char_traitsI[cw]EERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E; + _ZStrsIg[cw]St11char_traitsI[cw]EERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E; + *__gnu_cxx_ldbl128*; +}; + +GLIBCXX_LDBL_3.4.7 { + _ZNSi10_M_extractIgEERSiRT_; + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIgEERS2_RT_; + _ZNSo9_M_insertIgEERSoT_; + _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIgEERS2_T_; +} GLIBCXX_LDBL_3.4; + +CXXABI_LDBL_1.3 { + _ZT[IS]g; + _ZT[IS]Pg; + _ZT[IS]PKg; +}; |