This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]