LSB patch to gcc 3.3 tree

Michael Matz matz@suse.de
Tue Jun 29 09:15:00 GMT 2004


Hi,

On Tue, 29 Jun 2004, Gabriel Dos Reis wrote:

> From the gcc-3_4-branch, I see that libstdc++-v3/config/linker-map.gnu
> exports a huge number of symbols for GLIBCXX_3.4.
> [... what symbols are possible to export in 3.3 ...]
> 
> ---> LSB people: could tell me whether, exporting those symbols
> resolve the issues for you?  There is no way to go beyond as
> it introduces an API incompatibility with GCC-3.4.x -- which seems
> to be already working for you.

I'm no LSB guy, but I thought it good to mention that the LSB testsuite
would then miss the below symbols (i.e. on 3.3 with the below patch to
export only the mentioned symbols).  I don't know wether this would be
okay for LSB or not:

_ZN10__cxxabiv111__terminateEPFvvE
_ZN10__cxxabiv112__unexpectedEPFvvE
_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEE2fdEv 
_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED0Ev 
_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED1Ev 
_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED2Ev 
_ZN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEE2fdEv 
_ZN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEED0Ev 
_ZN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEED1Ev 
_ZN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEED2Ev 
_ZNSt21__ctype_abstract_baseIcED0Ev
_ZNSt21__ctype_abstract_baseIcED1Ev 
_ZNSt21__ctype_abstract_baseIwED0Ev
_ZNSt21__ctype_abstract_baseIwED1Ev

which are demangled this:

__cxxabiv1::__terminate(void (*)())
__cxxabiv1::__unexpected(void (*)())
__gnu_cxx::stdio_filebuf<char, std::char_traits<char> >::fd()
__gnu_cxx::stdio_filebuf<char, std::char_traits<char> >::~stdio_filebuf()
__gnu_cxx::stdio_filebuf<char, std::char_traits<char> >::~stdio_filebuf()
__gnu_cxx::stdio_filebuf<char, std::char_traits<char> >::~stdio_filebuf()
__gnu_cxx::stdio_filebuf<wchar_t, std::char_traits<wchar_t> >::fd()
__gnu_cxx::stdio_filebuf<wchar_t, std::char_traits<wchar_t> >::~stdio_filebuf()
__gnu_cxx::stdio_filebuf<wchar_t, std::char_traits<wchar_t> >::~stdio_filebuf()
__gnu_cxx::stdio_filebuf<wchar_t, std::char_traits<wchar_t> >::~stdio_filebuf()
std::__ctype_abstract_base<char>::~__ctype_abstract_base()
std::__ctype_abstract_base<char>::~__ctype_abstract_base()
std::__ctype_abstract_base<wchar_t>::~__ctype_abstract_base()
std::__ctype_abstract_base<wchar_t>::~__ctype_abstract_base()

So, are stdio_filebuf::fd() and the stdio_filebuf dtors really not usefull 
to export?  What about __terminate and __unexpected?  I guess it's not 
normal code which would call them, but perhaps there would be legitimate 
uses (I really don't know, that's why I ask).


Ciao,
Michael.
-- 

--- linker-map.gnu.33	2004-05-26 15:11:08.000000000 +0200
+++ linker-map.gnu	2004-06-29 09:56:16.000000000 +0200
@@ -399,6 +399,12 @@ GLIBCPP_3.2.4 {
 
   _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE11_M_setstateESt12_Ios_Iostate;
 
+  # For LSB 2.0
+  # std::__ctype_abstract_base*
+  #_ZNSt21__ctype_abstract_base*;
+  # std::__codecvt_abstract_base*
+  _ZNSt23__codecvt_abstract_base*;
+
 } GLIBCPP_3.2.3;
 
 # Symbols in the support library (libsupc++) have their own tag.
@@ -468,3 +474,32 @@ CXXABI_1.2.1 {
     __cxa_guard_abort;
 
 } CXXABI_1.2;
+
+CXXABI_1.2.2 {
+    # _ZN10__cxxabiv1*;
+    # *_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*;
+
+    #_ZNK10__cxxabiv1*;
+    # *_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*;
+
+    #_ZN9__gnu_cxx*;
+    # __gnu_cxx::_verbose_terminate_handler()
+    _ZN9__gnu_cxx27__verbose_terminate_handlerEv;
+} CXXABI_1.2.1;



More information about the Libstdc++ mailing list