This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [patch] New std::string implementation
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: Jonathan Wakely <jwakely at redhat dot com>
- Cc: libstdc++ at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Tue, 06 Jan 2015 10:52:14 +0100
- Subject: Re: [patch] New std::string implementation
- Authentication-results: sourceware.org; auth=none
- References: <20141114154330 dot GH5191 at redhat dot com> <20141128152448 dot GQ5191 at redhat dot com> <20141128165532 dot GR5191 at redhat dot com> <20141219182333 dot GE3134 at redhat dot com>
Jonathan Wakely <jwakely@redhat.com> 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