[Patch] [libstdc++] [C++0x] Export std::string base object move constructor.

Paolo Carlini pcarlini@gmail.com
Tue Mar 22 13:52:00 GMT 2011


Hi,
> On Tue, Mar 22, 2011 at 01:10:14PM -0000, Adam Butcher wrote:
>> After a bit of poking around with nm in various objects I determined
>> that the baseline_symbols files define what should be exported.  The
>> following grep+sed combo adds the necessary export for any architecture
>> that exports the C1 constructor symbol.
>>
>>    grep _ZNSsC1EOSs libstdc++-v3/config/abi/post -R -l | xargs sed -i.bak
>> '/_ZNSsC2EPKcRKSaIcE/ iFUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.14'
>>
>> The result is attached as a patch against 4.6.0 20110321 (prerelease).
> That's not the patch to export it, baseline_symbols.txt is just
> for testing the ABI.
> Furthermore, you can't add new symbols to GLIBCXX_3.4.14, which has
> been already in gcc 4.5 and released almost a year ago, and lastly,
> std::wstring has the same problem.
>
> So, if Benjamin or other libstdc++ maintainers want it fixed for
> 4.6, you want a patch like attached, plus some testcases for both
> std::string and std::wstring.
Jakub, such a patch would be ok with me, if isn't too late, but, frankly 
I don't see why we are not seeing the issue in the existing 
cons/char/moveable.cc, maybe it's something sensitive to inlining 
decisions (yes a testcase is welcome!), and then if we are going to do 
this, I'm not sure we don't need it for more (inline) member functions 
of basic_string, in particular I'm worried by the constructor taking an 
initializer_list and an allocator, is it already exported?

Paolo.



More information about the Libstdc++ mailing list