Jonathan Wakely <[email protected]> writes:
> The powerpc64 ICE is fixed, so I'm committing the std::string ABI
> transition patch.
>
> This replaces our venerable Copy-on-Write std::string with a
> C++11-conforming* Small-String Optimized std::__cxx11::string.
>
> (* It's not quite 100% conforming, as it's missing some allocator
> features. Of course. Always with the allocators. But that's only a
> small fix to make next week.)
[...]
> Target maintainers will see a *lot* of new exports at the latest
> symbol version if they generate a new baseline-symbols.txt file. I
> suggest waiting and doing that nearer the end of stage 3 in case there
> are any fixes needed after this change.
>
> Bootstrapped and tested in various configurations on x86_64-linux and
> powerpc64-linux.
Unfortunately, this patch broke Solaris bootstrap with /bin/ld:
libstdc++.so fails to link with
ld: fatal: libstdc++-symbols.ver-sun: 5383: symbol
'std::locale::name[abi:cxx11]() const': symbol version conflict
l.5383 has
##_ZNKSt6locale4nameB5cxx11Ev (glob)
_ZNKSt6locale4nameB5cxx11Ev;
i.e.
# std::locale::name() returning new std::string
in GLIBCXX_3.4.21 vs.
##std::locale::[A-Zn-z]* (cxx)
_ZNKSt6locale4nameB5cxx11Ev;
in GLIBCXX_3.4.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University