diff options
author | Benjamin Kosnik <bkoz@redhat.com> | 2003-10-09 21:17:11 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2003-10-09 21:17:11 +0000 |
commit | 5aaa21080b72d6e54774437d5f0082eb29f199af (patch) | |
tree | a8c4cc82d879d7cf0dcff2dcfbe1038425f7ae4c /libstdc++-v3 | |
parent | b0c6e48ff6e7876e373c5b491f34b10062dc721a (diff) | |
download | gcc-5aaa21080b72d6e54774437d5f0082eb29f199af.zip gcc-5aaa21080b72d6e54774437d5f0082eb29f199af.tar.gz gcc-5aaa21080b72d6e54774437d5f0082eb29f199af.tar.bz2 |
linker-map.gnu: Make more *_type_info bits visible.
2003-10-09 Benjamin Kosnik <bkoz@redhat.com>
* config/linker-map.gnu: Make more *_type_info bits visible.
Move new/delete bits back into GLIBCXX space.
* include/bits/locale_classes.h: Move _M_id out of line, so that
locale::id::_S_highwater can be removed from the export list.
* src/locale.cc (locale::id::_M_id): Define.
From-SVN: r72287
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 9 | ||||
-rw-r--r-- | libstdc++-v3/config/linker-map.gnu | 101 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/locale_classes.h | 9 | ||||
-rw-r--r-- | libstdc++-v3/src/locale.cc | 8 |
4 files changed, 88 insertions, 39 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 25018c5..08950d9 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,12 @@ +2003-10-09 Benjamin Kosnik <bkoz@redhat.com> + + * config/linker-map.gnu: Make more *_type_info bits visible. + Move new/delete bits back into GLIBCXX space. + + * include/bits/locale_classes.h: Move _M_id out of line, so that + locale::id::_S_highwater can be removed from the export list. + * src/locale.cc (locale::id::_M_id): Define. + 2003-10-09 Andreas Tobler <a.tobler@schweiz.ch> * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_64 for diff --git a/libstdc++-v3/config/linker-map.gnu b/libstdc++-v3/config/linker-map.gnu index d0ab03c..adbd390 100644 --- a/libstdc++-v3/config/linker-map.gnu +++ b/libstdc++-v3/config/linker-map.gnu @@ -38,7 +38,7 @@ GLIBCXX_3.4 { std::locale::facet::_S_destroy_c_locale*; std::locale::[A-Zg-h]*; std::locale::id::[A-Za-z]*; - std::locale::id::_S_highwater; + std::locale::id::_M_id*; std::locale::[A-Zj-z]*; std::locale::_[A-Ha-z]*; std::locale::_Impl::[A-Za-z]*; @@ -62,6 +62,26 @@ GLIBCXX_3.4 { # Names not in an 'extern' block are mangled names. + # operator new(size_t) + _Znw[jm]; + # operator new(size_t, std::nothrow_t const&) + _Znw[jm]RKSt9nothrow_t; + + # operator delete(void*) + _ZdlPv; + # operator delete(void*, std::nothrow_t const&) + _ZdlPvRKSt9nothrow_t; + + # operator new[](size_t) + _Zna[jm]; + # operator new[](size_t, std::nothrow_t const&) + _Zna[jm]RKSt9nothrow_t; + + # operator delete[](void*) + _ZdaPv; + # operator delete[](void*, std::nothrow_t const&) + _ZdaPvRKSt9nothrow_t; + # std::locale destructors _ZNSt6localeD*; @@ -84,6 +104,12 @@ GLIBCXX_3.4 { _ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_; _ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_; + # std::__ctype_abstract_base* + _ZNSt21__ctype_abstract_base*; + + # std::__codecvt_abstract_base* + _ZNStSt23__codecvt_abstract_base*; + # virtual table _ZTVNSt8ios_base7failureE; _ZTVNSt6locale5facetE; @@ -221,57 +247,68 @@ CXXABI_1.3 { __gxx_personality_sj0; __dynamic_cast; - # operator new(size_t) - _Znw[jm]; - # operator new(size_t, std::nothrow_t const&) - _Znw[jm]RKSt9nothrow_t; - - # operator delete(void*) - _ZdlPv; - # operator delete(void*, std::nothrow_t const&) - _ZdlPvRKSt9nothrow_t; - - # operator new[](size_t) - _Zna[jm]; - # operator new[](size_t, std::nothrow_t const&) - _Zna[jm]RKSt9nothrow_t; - - # operator delete[](void*) - _ZdaPv; - # operator delete[](void*, std::nothrow_t const&) - _ZdaPvRKSt9nothrow_t; + # *_type_info classes, ctor and dtor + _ZN10__cxxabiv117__array_type_info*; + _ZN10__cxxabiv117__class_type_info*; + _ZN10__cxxabiv116__enum_type_info*; + _ZN10__cxxabiv120__function_type_info*; + _ZN10__cxxabiv123__fundamental_type_info*; + _ZN10__cxxabiv117__pbase_type_info*; + _ZN10__cxxabiv129__pointer_to_member_type_info*; + _ZN10__cxxabiv119__pointer_type_info*; + _ZN10__cxxabiv120__si_class_type_info*; + _ZN10__cxxabiv121__vmi_class_type_info*; + + # *_type_info classes, member functions + _ZNK10__cxxabiv117__class_type_info*; + _ZNK10__cxxabiv120__function_type_info*; + _ZNK10__cxxabiv117__pbase_type_info*; + _ZNK10__cxxabiv129__pointer_to_member_type_info*; + _ZNK10__cxxabiv119__pointer_type_info*; + _ZNK10__cxxabiv120__si_class_type_info*; + _ZNK10__cxxabiv121__vmi_class_type_info*; # virtual table - _ZTVN10__cxxabiv117__class_type_infoE; - _ZTVN10__cxxabiv120__si_class_type_infoE; - _ZTVN10__cxxabiv121__vmi_class_type_infoE; - _ZTVN10__cxxabiv123__fundamental_type_infoE; _ZTVN10__cxxabiv117__array_type_infoE; - _ZTVN10__cxxabiv120__function_type_infoE; + _ZTVN10__cxxabiv117__class_type_infoE; _ZTVN10__cxxabiv116__enum_type_infoE; + _ZTVN10__cxxabiv120__function_type_infoE; + _ZTVN10__cxxabiv123__fundamental_type_infoE; _ZTVN10__cxxabiv117__pbase_type_infoE; - _ZTVN10__cxxabiv119__pointer_type_infoE; _ZTVN10__cxxabiv129__pointer_to_member_type_infoE; + _ZTVN10__cxxabiv119__pointer_type_infoE; + _ZTVN10__cxxabiv120__si_class_type_infoE; + _ZTVN10__cxxabiv121__vmi_class_type_infoE; # typeinfo structure (and some names) _ZTI[a-z]; _ZTIP[a-z]; _ZTIPK[a-z]; - _ZTIN10__cxxabiv117__class_type_infoE; - _ZTIN10__cxxabiv120__si_class_type_infoE; - _ZTIN10__cxxabiv121__vmi_class_type_infoE; - _ZTIN10__cxxabiv123__fundamental_type_infoE; _ZTIN10__cxxabiv117__array_type_infoE; - _ZTIN10__cxxabiv120__function_type_infoE; + _ZTIN10__cxxabiv117__class_type_infoE; _ZTIN10__cxxabiv116__enum_type_infoE; + _ZTIN10__cxxabiv120__function_type_infoE; + _ZTIN10__cxxabiv123__fundamental_type_infoE; _ZTIN10__cxxabiv117__pbase_type_infoE; - _ZTIN10__cxxabiv119__pointer_type_infoE; _ZTIN10__cxxabiv129__pointer_to_member_type_infoE; + _ZTIN10__cxxabiv119__pointer_type_infoE; + _ZTIN10__cxxabiv120__si_class_type_infoE; + _ZTIN10__cxxabiv121__vmi_class_type_infoE; # typeinfo name _ZTS[a-z]; _ZTSP[a-z]; _ZTSPK[a-z]; + _ZTSN10__cxxabiv117__array_type_infoE; + _ZTSN10__cxxabiv117__class_type_infoE; + _ZTSN10__cxxabiv116__enum_type_infoE; + _ZTSN10__cxxabiv120__function_type_infoE; + _ZTSN10__cxxabiv123__fundamental_type_infoE; + _ZTSN10__cxxabiv117__pbase_type_infoE; + _ZTSN10__cxxabiv129__pointer_to_member_type_infoE; + _ZTSN10__cxxabiv119__pointer_type_infoE; + _ZTSN10__cxxabiv120__si_class_type_infoE; + _ZTSN10__cxxabiv121__vmi_class_type_infoE; # __gnu_cxx::_verbose_terminate_handler() _ZN9__gnu_cxx27__verbose_terminate_handlerEv; diff --git a/libstdc++-v3/include/bits/locale_classes.h b/libstdc++-v3/include/bits/locale_classes.h index e8f4e81..62dabff 100644 --- a/libstdc++-v3/include/bits/locale_classes.h +++ b/libstdc++-v3/include/bits/locale_classes.h @@ -289,13 +289,8 @@ namespace std // counted on to be zero-initialized. id() { } - inline size_t - _M_id() const - { - if (!_M_index) - _M_index = 1 + __exchange_and_add(&_S_highwater, 1); - return _M_index - 1; - } + size_t + _M_id() const; }; diff --git a/libstdc++-v3/src/locale.cc b/libstdc++-v3/src/locale.cc index 7c1e8ab..f5b3604 100644 --- a/libstdc++-v3/src/locale.cc +++ b/libstdc++-v3/src/locale.cc @@ -68,6 +68,14 @@ namespace std __gthread_once_t locale::_S_once = __GTHREAD_ONCE_INIT; #endif + size_t + locale::id::_M_id() const + { + if (!_M_index) + _M_index = 1 + __exchange_and_add(&_S_highwater, 1); + return _M_index - 1; + } + // Definitions for static const data members of locale::id _Atomic_word locale::id::_S_highwater; // init'd to 0 by linker |