This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[v3] more symbol exports
- From: Benjamin Kosnik <bkoz at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org, ljrittle at acm dot org
- Date: Tue, 19 Feb 2002 13:46:14 -0800
- Subject: [v3] more symbol exports
This patch makes --enable-symvers testresults match the unversioned
shared library results.
Loren, can you see if this works on BSDs? If so, I'd like to enable
this functionality by default on systems using GNU ld of sufficient
vintage.
-benjamin
tested x86/linux --enable-symvers
2002-02-19 Benjamin Kosnik <bkoz@redhat.com>
* config/linker-map.gnu: Export global vtable, typeinfo, guard
variable, and thunk info as per CXXABI docs.
Index: config/linker-map.gnu
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/config/linker-map.gnu,v
retrieving revision 1.2
diff -c -p -r1.2 linker-map.gnu
*** linker-map.gnu 2002/02/15 02:21:32 1.2
--- linker-map.gnu 2002/02/19 21:38:14
*************** GLIBCPP_3.1 {
*** 37,46 ****
};
## Names not in an 'extern' block are mangled names.
- __cxa_*;
- __gxx_personality_v0;
- __dynamic_cast;
-
## operator new(unsigned)
_Znwj;
--- 37,42 ----
*************** GLIBCPP_3.1 {
*** 54,69 ****
_ZdaPv;
# vtable
! # XXX export them all?
! _ZTVSt*;
! _ZTVN10__cxxabiv1*;
# typeinfo
! # XXX export them all?
! _ZTSSt*;
! ######## hmmmmm, the rediculous hacks section....
## std::_S_rb_tree_red
_ZSt14_S_rb_tree_red;
--- 50,75 ----
_ZdaPv;
# vtable
! _ZTV*;
! _ZTT*;
# typeinfo
! _ZTI*;
! _ZTS*;
!
! # function-scope static objects requires a guard variable.
! _ZGV*;
+ # virtual function thunks
+ _ZTh*;
+ _ZTv*;
+ _ZTc*;
! # XXX
! __cxa_*;
! __gxx_personality_v0;
! __dynamic_cast;
!
## std::_S_rb_tree_red
_ZSt14_S_rb_tree_red;
*************** GLIBCPP_3.1 {
*** 75,86 ****
## std::__stl_chunk_size
_ZSt16__stl_chunk_size;
-
- ## VTT for std::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >
- _ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE;
-
- ## VTT for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >
- _ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE;
# this is a function, "void std::__convert_to_v(stuff)", and as such
# doesn't work well in the demangled section above
--- 81,86 ----