Library ABI seriously broken!!

Paolo Carlini paolo.carlini@oracle.com
Fri Oct 30 12:54:00 GMT 2009


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



More information about the Gcc mailing list