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