aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2003-10-09 21:17:11 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2003-10-09 21:17:11 +0000
commit5aaa21080b72d6e54774437d5f0082eb29f199af (patch)
treea8c4cc82d879d7cf0dcff2dcfbe1038425f7ae4c
parentb0c6e48ff6e7876e373c5b491f34b10062dc721a (diff)
downloadgcc-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
-rw-r--r--libstdc++-v3/ChangeLog9
-rw-r--r--libstdc++-v3/config/linker-map.gnu101
-rw-r--r--libstdc++-v3/include/bits/locale_classes.h9
-rw-r--r--libstdc++-v3/src/locale.cc8
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