This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Library ABI seriously broken!!
- From: Paolo Carlini <paolo dot carlini at oracle dot com>
- To: "'gcc at gcc dot gnu dot org'" <gcc at gcc dot gnu dot org>
- Cc: jlquinn at optonline dot net, libstdc++ <libstdc++ at gcc dot gnu dot org>
- Date: Fri, 30 Oct 2009 12:48:03 +0100
- Subject: Library ABI seriously broken!!
Hi,
sorry if the issue is already well known, but it's so serious that I
decided to post an heads up: today (not yesterday), the ABI is broken,
the size of many symbols exported by libstdc++ changed, see eg:
http://gcc.gnu.org/ml/gcc-testresults/2009-10/msg02895.html
http://gcc.gnu.org/ml/gcc-testresults/2009-10/msg02903.html
http://gcc.gnu.org/ml/gcc-testresults/2009-10/msg02904.html
I'm adding below some of the many error messages spilled by abi_check.
I *strongly* suspect:
2009-10-28 Jerry Quinn <jlquinn@optonline.net>
* mangle.c (mangle_type_string_for_rtti): Revert r149964.
(needs_fake_anon): Likewise.
(write_name): Likewise.
(write_nested_name): Likewise.
* cp-tree.h (mangle_type_string_for_rtti): Likewise.
(get_anonymous_namespace): Likewise.
* name-lookup.c (get_anonymous_namespace_name): Likewise.
* rtti.c (tinfo_name): Insert '*' in front of private names.
(tinfo_base_init): Use it.
2009-10-28 Jerry Quinn <jlquinn@optonline.net>
* libsupc++/tinfo.cc (operator=(const type_info&)): Compare by
pointer if name begins with '*'.
* libsupc++/typeinfo (type_info::name()): Likewise.
* libsupc++/tinfo2.cc (before): Likewise.
Please provide feedback ASAP.
Thanks,
Paolo.
////////////////////////
171 incompatible symbols
0
_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE
typeinfo name for std::basic_stringstream<char, std::char_traits<char>,
std::allocator<char> >
version status: unversioned
type: object
type size: 48
status: <default>
incompatible sizes
49
48
1
_ZTSSt7codecvtIcc11__mbstate_tE
typeinfo name for std::codecvt<char, char, __mbstate_t>
version status: unversioned
type: object
type size: 27
status: <default>
incompatible sizes
28
27
2
_ZTSSt10moneypunctIwLb0EE
typeinfo name for std::moneypunct<wchar_t, false>
version status: unversioned
type: object
type size: 21
status: <default>
incompatible sizes
22
21
3
_ZTSSt13basic_fstreamIcSt11char_traitsIcEE
typeinfo name for std::basic_fstream<char, std::char_traits<char> >
version status: unversioned
type: object
type size: 38
status: <default>
incompatible sizes
39
38
4
_ZTSSt12ctype_bynameIwE
typeinfo name for std::ctype_byname<wchar_t>
version status: unversioned
type: object
type size: 19
status: <default>
incompatible sizes
20
19
5
_ZTSPa
typeinfo name for signed char*
version status: unversioned
type: object
type size: 2
status: <default>
incompatible sizes
3
2
6
_ZTSSt15underflow_error
typeinfo name for std::underflow_error
version status: unversioned
type: object
type size: 19
status: <default>
incompatible sizes
20
19
7
_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE
typeinfo name for std::basic_ostringstream<char, std::char_traits<char>,
std::allocator<char> >
version status: unversioned
type: object
type size: 49
status: <default>
incompatible sizes
50
49
8
_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
typeinfo name for std::money_put<char, std::ostreambuf_iterator<char,
std::char_traits<char> > >
version status: unversioned
type: object
type size: 59
status: <default>
incompatible sizes
60
59
9
_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
typeinfo name for std::num_put<wchar_t,
std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >
version status: unversioned
type: object
type size: 57
status: <default>
incompatible sizes
58
57
10
_ZTSPh
typeinfo name for unsigned char*
version status: unversioned
type: object
type size: 2
status: <default>
incompatible sizes
3
2
11
_ZTSSt13basic_filebufIcSt11char_traitsIcEE
typeinfo name for std::basic_filebuf<char, std::char_traits<char> >
version status: unversioned
type: object
type size: 38
status: <default>
incompatible sizes
39
38
12
_ZTSs
typeinfo name for short
version status: unversioned
type: object
type size: 1
status: <default>
incompatible sizes
2
1
13
_ZTSSt8bad_cast
typeinfo name for std::bad_cast
version status: unversioned
type: object
type size: 11
status: <default>
incompatible sizes
12
11
14
_ZTSPKj
typeinfo name for unsigned int const*
version status: unversioned
type: object
type size: 3
status: <default>
incompatible sizes
4
3
15
_ZTSPKc
typeinfo name for char const*
version status: unversioned
type: object
type size: 3
status: <default>
incompatible sizes
4
3
16
_ZTSe
typeinfo name for long double
version status: unversioned
type: object
type size: 1
status: <default>
incompatible sizes
2
1
17
_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE
typeinfo name for std::basic_ifstream<char, std::char_traits<char> >
version status: unversioned
type: object
type size: 39
status: <default>
incompatible sizes
40
39
18
_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
typeinfo name for std::money_put<wchar_t,
std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >
version status: unversioned
type: object
type size: 59
status: <default>
incompatible sizes
60
59
19
_ZTSl
typeinfo name for long
version status: unversioned
type: object
type size: 1
status: <default>
incompatible sizes
2
1
20
_ZTSSt21__ctype_abstract_baseIcE
typeinfo name for std::__ctype_abstract_base<char>
version status: unversioned
type: object
type size: 28
status: <default>
incompatible sizes
29
28
21
_ZTSPx
typeinfo name for long long*
version status: unversioned
type: object
type size: 2
status: <default>
incompatible sizes
3
2
22
_ZTSSt9time_base
typeinfo name for std::time_base
version status: unversioned
type: object
type size: 12
status: <default>
incompatible sizes
13
12
23
_ZTSSt8messagesIcE
typeinfo name for std::messages<char>
version status: unversioned
type: object
type size: 14
status: <default>
incompatible sizes
15
14
24
_ZTSSt9bad_alloc
typeinfo name for std::bad_alloc
version status: unversioned
type: object
type size: 12
status: <default>
incompatible sizes
13
12
25
_ZTSN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE
typeinfo name for __gnu_cxx::stdio_sync_filebuf<wchar_t,
std::char_traits<wchar_t> >
version status: unversioned
type: object
type size: 53
status: <default>
incompatible sizes
54
53
26
_ZTSSt15basic_streambufIwSt11char_traitsIwEE
typeinfo name for std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >
version status: unversioned
type: object
type size: 40
status: <default>
incompatible sizes
41
40
27
_ZTSSt12system_error
typeinfo name for std::system_error
version status: unversioned
type: object
type size: 16
status: <default>
incompatible sizes
17
16
28
_ZTSSt8numpunctIcE
typeinfo name for std::numpunct<char>
version status: unversioned
type: object
type size: 14
status: <default>
incompatible sizes
15
14
29
_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
typeinfo name for std::time_put_byname<wchar_t,
std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >
version status: unversioned
type: object
type size: 66
status: <default>
incompatible sizes
67
66
30
_ZTSPKl
typeinfo name for long const*
version status: unversioned
type: object
type size: 3
status: <default>
incompatible sizes
4
3
31
_ZTSSt9exception
typeinfo name for std::exception
version status: unversioned
type: object
type size: 12
status: <default>
incompatible sizes
13
12
32
_ZTSSt13runtime_error
typeinfo name for std::runtime_error
version status: unversioned
type: object
type size: 17
status: <default>
incompatible sizes
18
17
33
_ZTSSt15basic_streambufIcSt11char_traitsIcEE
typeinfo name for std::basic_streambuf<char, std::char_traits<char> >
version status: unversioned
type: object
type size: 40
status: <default>
incompatible sizes
41
40
34
_ZTSPKe
typeinfo name for long double const*
version status: unversioned
type: object
type size: 3
status: <default>
incompatible sizes
4
3
35
_ZTSSt7collateIwE
typeinfo name for std::collate<wchar_t>
version status: unversioned
type: object
type size: 13
status: <default>
incompatible sizes
14
13
36
_ZTSPw
typeinfo name for wchar_t*
version status: unversioned
type: object
type size: 2
status: <default>
incompatible sizes
3
2
37
_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
typeinfo name for std::time_put<wchar_t,
std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >
version status: unversioned
type: object
type size: 58
status: <default>
incompatible sizes
59
58
38
_ZTSPKw
typeinfo name for wchar_t const*
version status: unversioned
type: object
type size: 3
status: <default>
incompatible sizes
4
3
39
_ZTSSi
typeinfo name for std::istream
version status: unversioned
type: object
type size: 2
status: <default>
incompatible sizes
3
2
40
_ZTSSt12length_error
typeinfo name for std::length_error
version status: unversioned
type: object
type size: 16
status: <default>
incompatible sizes
17
16