Couple of new issues in mainline

Paolo Carlini pcarlini@suse.de
Sat Dec 2 18:05:00 GMT 2006


Paolo Carlini wrote:

> Well, maybe the solution for those boring issues is very simple (in 
> principle): use for gnu-linux systems too (besides x86-darwin, per 
> Howard's patch, which, by the way, is approved but still unapplied, 
> I'm going to take care of that), -fvisibility-inlines-hidden! I think 
> that (in principle, again), there are no objections, therefore I'm 
> going to prepare that configury change and check that nothing breaks...

... and something breaks: turns out we have in the ABI baseline quite a 
few inlines, see below. We should analyze this issue more in detail. 
Something I don't fully understand is going on with the std exception 
classes destructors, which are indeed trivial but *not* inline: those 
appear as 'W' in stdexcept.o, but as 't' in the final .so (thus in the 
below). Similarly for ~basic_stringbuf, synthetized by the compiler, it 
appear as 'W' in sstream-inst.o and as 't' in the .so. It looks like 
this 'W' -> 't' change is the visibility fall-out of a link-time 
optimization, which at the moment I don't fully understand (help in 
clarifying this issue would be particularly appreciated)

For reference, I'm also attaching the trivial configure.host change I'm 
using.

Paolo.

///////////

23 missing symbols
0
_ZNK10__cxxabiv117__pbase_type_info15__pointer_catchEPKS0_PPvj
__cxxabiv1::__pbase_type_info::__pointer_catch(__cxxabiv1::__pbase_type_info 
const*, void**, unsigned int) const
version status: unversioned
type: function
status: subtracted


1
_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc
std::ctype<char>::do_widen(char const*, char const*, char*) const
version status: unversioned
type: function
status: subtracted


2
_ZNKSt5ctypeIcE8do_widenEc
std::ctype<char>::do_widen(char) const
version status: unversioned
type: function
status: subtracted


3
_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc
std::ctype<char>::do_narrow(char const*, char const*, char, char*) const
version status: unversioned
type: function
status: subtracted


4
_ZNKSt5ctypeIcE9do_narrowEcc
std::ctype<char>::do_narrow(char, char) const
version status: unversioned
type: function
status: subtracted


5
_ZNSt11range_errorD0Ev
std::range_error::~range_error()
version status: unversioned
type: function
status: subtracted


6
_ZNSt11range_errorD1Ev
std::range_error::~range_error()
version status: unversioned
type: function
status: subtracted


7
_ZNSt12domain_errorD0Ev
std::domain_error::~domain_error()
version status: unversioned
type: function
status: subtracted


8
_ZNSt12domain_errorD1Ev
std::domain_error::~domain_error()
version status: unversioned
type: function
status: subtracted


9
_ZNSt12length_errorD0Ev
std::length_error::~length_error()
version status: unversioned
type: function
status: subtracted


10
_ZNSt12length_errorD1Ev
std::length_error::~length_error()
version status: unversioned
type: function
status: subtracted


11
_ZNSt12out_of_rangeD0Ev
std::out_of_range::~out_of_range()
version status: unversioned
type: function
status: subtracted


12
_ZNSt12out_of_rangeD1Ev
std::out_of_range::~out_of_range()
version status: unversioned
type: function
status: subtracted


13
_ZNSt14overflow_errorD0Ev
std::overflow_error::~overflow_error()
version status: unversioned
type: function
status: subtracted


14
_ZNSt14overflow_errorD1Ev
std::overflow_error::~overflow_error()
version status: unversioned
type: function
status: subtracted


15
_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev
std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> 
 >::~basic_stringbuf()
version status: unversioned
type: function
status: subtracted


16
_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev
std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> 
 >::~basic_stringbuf()
version status: unversioned
type: function
status: subtracted


17
_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev
std::basic_stringbuf<wchar_t, std::char_traits<wchar_t>, 
std::allocator<wchar_t> >::~basic_stringbuf()
version status: unversioned
type: function
status: subtracted


18
_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev
std::basic_stringbuf<wchar_t, std::char_traits<wchar_t>, 
std::allocator<wchar_t> >::~basic_stringbuf()
version status: unversioned
type: function
status: subtracted


19
_ZNSt15underflow_errorD0Ev
std::underflow_error::~underflow_error()
version status: unversioned
type: function
status: subtracted


20
_ZNSt15underflow_errorD1Ev
std::underflow_error::~underflow_error()
version status: unversioned
type: function
status: subtracted


21
_ZNSt16invalid_argumentD0Ev
std::invalid_argument::~invalid_argument()
version status: unversioned
type: function
status: subtracted


22
_ZNSt16invalid_argumentD1Ev
std::invalid_argument::~invalid_argument()
version status: unversioned
type: function
status: subtracted



-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pp
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20061202/85a5de6e/attachment.ksh>


More information about the Libstdc++ mailing list