This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] Add <codecvt> and last pieces of C++11 std::lib
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: Jonathan Wakely <jwakely at redhat dot com>
- Cc: "H.J. Lu" <hjl dot tools at gmail dot com>, libstdc++ <libstdc++ at gcc dot gnu dot org>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 21 Jan 2015 18:09:53 +0100
- Subject: Re: [patch] Add <codecvt> and last pieces of C++11 std::lib
- Authentication-results: sourceware.org; auth=none
- References: <20150116233830 dot GJ3360 at redhat dot com> <20150119132717 dot GF3360 at redhat dot com> <20150120115932 dot GS3360 at redhat dot com> <CAMe9rOqZkmrQWFaqnd+NbAJe3vkYvomNr6u-kS1GhnNU8nU-MQ at mail dot gmail dot com> <20150120175231 dot GB3360 at redhat dot com> <20150121161741 dot GG3360 at redhat dot com>
Jonathan Wakely <jwakely@redhat.com> writes:
>>I forgot that the mangled name for size_t depends on the target, so
>>the linker script needs [jm] instead of m. Patch coming soon ...
>
> This fixes the new FAILs on i686.
>
> Tested x86_64-linux and i686-linux, committed to trunk.
>
> I expect the new symbols are going to cause a problem on Solaris as
> they match more than one symbol version, so I'll fix that ASAP.
Indeed: before and after this change, Solaris bootstrap is broken. Now
I get
ld: fatal: libstdc++-symbols.ver-sun: 6153: symbol 'std::codecvt<char32_t, char, __mbstate_t>::do_unshift(__mbstate_t&, char*, char*, char*&) const': symbol version conflict
_ZNKSt7codecvtIDic11__mbstate_tE10do_unshiftERS0_PcS3_RS3_ is matched by
_ZNKSt7codecvtID[is]c11__mbstate_t* (glob) in GLIBCXX_3.4.21 and
std::co[^ln]* (cxx) in GLIBCXX_3.4
ld: fatal: libstdc++-symbols.ver-sun: 6154: symbol 'std::codecvt<char32_t, char, __mbstate_t>::do_encoding() const': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6155: symbol 'std::codecvt<char32_t, char, __mbstate_t>::do_max_length() const': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6156: symbol 'std::codecvt<char32_t, char, __mbstate_t>::do_always_noconv() const': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6157: symbol 'std::codecvt<char32_t, char, __mbstate_t>::do_in(__mbstate_t&, char const*, char const*, char const*&, char32_t*, char32_t*, char32_t*&) const': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6158: symbol 'std::codecvt<char32_t, char, __mbstate_t>::do_out(__mbstate_t&, char32_t const*, char32_t const*, char32_t const*&, char*, char*, char*&) const': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6159: symbol 'std::codecvt<char32_t, char, __mbstate_t>::do_length(__mbstate_t&, char const*, char const*, unsigned int) const': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6160: symbol 'std::codecvt<char16_t, char, __mbstate_t>::do_unshift(__mbstate_t&, char*, char*, char*&) const': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6161: symbol 'std::codecvt<char16_t, char, __mbstate_t>::do_encoding() const': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6162: symbol 'std::codecvt<char16_t, char, __mbstate_t>::do_max_length() const': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6163: symbol 'std::codecvt<char16_t, char, __mbstate_t>::do_always_noconv() const': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6164: symbol 'std::codecvt<char16_t, char, __mbstate_t>::do_in(__mbstate_t&, char const*, char const*, char const*&, char16_t*, char16_t*, char16_t*&) const': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6165: symbol 'std::codecvt<char16_t, char, __mbstate_t>::do_out(__mbstate_t&, char16_t const*, char16_t const*, char16_t const*&, char*, char*, char*&) const': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6166: symbol 'std::codecvt<char16_t, char, __mbstate_t>::do_length(__mbstate_t&, char const*, char const*, unsigned int) const': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6168: symbol 'std::codecvt<char32_t, char, __mbstate_t>::id': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6169: symbol 'std::codecvt<char32_t, char, __mbstate_t>::~codecvt()': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6170: symbol 'std::codecvt<char32_t, char, __mbstate_t>::~codecvt()': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6171: symbol 'std::codecvt<char32_t, char, __mbstate_t>::~codecvt()': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6172: symbol 'std::codecvt<char16_t, char, __mbstate_t>::id': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6173: symbol 'std::codecvt<char16_t, char, __mbstate_t>::~codecvt()': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6174: symbol 'std::codecvt<char16_t, char, __mbstate_t>::~codecvt()': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6175: symbol 'std::codecvt<char16_t, char, __mbstate_t>::~codecvt()': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6177: symbol 'typeinfo for std::codecvt<char32_t, char, __mbstate_t>': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6178: symbol 'typeinfo for std::codecvt<char16_t, char, __mbstate_t>': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6179: symbol 'typeinfo name for std::codecvt<char32_t, char, __mbstate_t>': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6180: symbol 'typeinfo name for std::codecvt<char16_t, char, __mbstate_t>': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6181: symbol 'vtable for std::codecvt<char32_t, char, __mbstate_t>': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6182: symbol 'vtable for std::codecvt<char16_t, char, __mbstate_t>': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6319: symbol 'std::codecvt_byname<char, char, __mbstate_t>::codecvt_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
_ZNSt14codecvt_bynameIcc11__mbstate_tEC1ERKSsj is matched by
_ZNSt14codecvt_bynameI[cw]c11__mbstate_tEC[1-5]ERKSs[jmy] (glob) in
GLIBCXX_3.4.21 and
std::co[^ln]* (cxx) in GLIBCXX_3.4
ld: fatal: libstdc++-symbols.ver-sun: 6320: symbol 'std::codecvt_byname<char, char, __mbstate_t>::codecvt_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6321: symbol 'std::codecvt_byname<wchar_t, char, __mbstate_t>::codecvt_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6322: symbol 'std::codecvt_byname<wchar_t, char, __mbstate_t>::codecvt_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6324: symbol 'std::messages_byname<char>::messages_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6325: symbol 'std::messages_byname<char>::messages_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6326: symbol 'std::messages_byname<wchar_t>::messages_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6327: symbol 'std::messages_byname<wchar_t>::messages_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6329: symbol 'std::numpunct_byname<char>::numpunct_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6330: symbol 'std::numpunct_byname<char>::numpunct_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6331: symbol 'std::numpunct_byname<wchar_t>::numpunct_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6332: symbol 'std::numpunct_byname<wchar_t>::numpunct_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6334: symbol 'std::time_get_byname<char, std::istreambuf_iterator<char, std::char_traits<char> > >::time_get_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6335: symbol 'std::time_get_byname<char, std::istreambuf_iterator<char, std::char_traits<char> > >::time_get_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6336: symbol 'std::time_get_byname<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::time_get_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6337: symbol 'std::time_get_byname<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::time_get_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6344: symbol 'std::moneypunct_byname<char, false>::moneypunct_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6345: symbol 'std::moneypunct_byname<char, false>::moneypunct_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6346: symbol 'std::moneypunct_byname<wchar_t, false>::moneypunct_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6347: symbol 'std::moneypunct_byname<wchar_t, false>::moneypunct_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6349: symbol 'std::moneypunct_byname<char, true>::moneypunct_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6350: symbol 'std::moneypunct_byname<char, true>::moneypunct_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6351: symbol 'std::moneypunct_byname<wchar_t, true>::moneypunct_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6352: symbol 'std::moneypunct_byname<wchar_t, true>::moneypunct_byname(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6359: symbol 'std::codecvt_byname<char, char, __mbstate_t>::codecvt_byname(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6360: symbol 'std::codecvt_byname<char, char, __mbstate_t>::codecvt_byname(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6361: symbol 'std::codecvt_byname<wchar_t, char, __mbstate_t>::codecvt_byname(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 6362: symbol 'std::codecvt_byname<wchar_t, char, __mbstate_t>::codecvt_byname(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)': symbol version conflict
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University