[patch] Implement move semantics for iostreams

Jonathan Wakely jwakely@redhat.com
Tue Sep 23 14:20:00 GMT 2014

On 23/09/14 15:58 +0200, Rainer Orth wrote:
>This patch broke Solaris bootstrap with Sun ld: when linking
>libstdc++.so, ld complains
>ld: fatal: libstdc++-symbols.ver-sun: 4520: symbol 'std::basic_ios<char, std::char_traits<char> >::move(std::basic_ios<char, std::char_traits<char> >&&)': symbol version conflict
>and many more.  In that case, I find that this symbols is matched by
>both the GLIBCXX_3.4 and GLIBCXX_3.4.21 patterns:
>    GLIBCXX_3.4
>    ##std::basic_i[g-r]* (cxx)
>    _ZNSt9basic_iosIcSt11char_traitsIcEE4moveEOS2_;
>    GLIBCXX_3.4.21
>    ##_ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE4moveE[OR]S2_ (glob)
>    _ZNSt9basic_iosIcSt11char_traitsIcEE4moveEOS2_;

Drat, I did notice those patterns were too greedy, as my new symbols
got the wrong version until I added patterns for them. I didn't
realise it would break Solaris.

I'll work on refining the GLIBCXX_3.4 patterns to be more precise.

More information about the Gcc-patches mailing list