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:🆔:_S_highwater can be removed from the export list.
	* src/locale.cc (locale:🆔:_M_id): Define.

From-SVN: r72287
This commit is contained in:
Benjamin Kosnik 2003-10-09 21:17:11 +00:00 committed by Benjamin Kosnik
parent b0c6e48ff6
commit 5aaa21080b
4 changed files with 89 additions and 40 deletions

View File

@ -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

View File

@ -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;
# *_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*;
# 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, 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__array_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__cxxabiv129__pointer_to_member_type_infoE;
_ZTVN10__cxxabiv119__pointer_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__cxxabiv116__enum_type_infoE;
_ZTVN10__cxxabiv117__pbase_type_infoE;
_ZTVN10__cxxabiv119__pointer_type_infoE;
_ZTVN10__cxxabiv129__pointer_to_member_type_infoE;
# typeinfo structure (and some names)
_ZTI[a-z];
_ZTIP[a-z];
_ZTIPK[a-z];
_ZTIN10__cxxabiv117__array_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__cxxabiv129__pointer_to_member_type_infoE;
_ZTIN10__cxxabiv119__pointer_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__cxxabiv116__enum_type_infoE;
_ZTIN10__cxxabiv117__pbase_type_infoE;
_ZTIN10__cxxabiv119__pointer_type_infoE;
_ZTIN10__cxxabiv129__pointer_to_member_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;

View File

@ -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;
};

View File

@ -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