<html><head></head><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div dir="ltr" id="yui_3_16_0_ym19_1_1471291915552_2852"><span id="yui_3_16_0_ym19_1_1471291915552_3207">I did a little experiment. I've built 3.9.0rc1 with gcc-4.9.2 and then let this 3.9.0rc1 rebuild itself (using again headers and libstdc++ from gcc-4.9.2).</span></div><div id="yui_3_16_0_ym19_1_1471291915552_3324" dir="ltr"><br><span id="yui_3_16_0_ym19_1_1471291915552_3207"></span></div><div id="yui_3_16_0_ym19_1_1471291915552_3314" dir="ltr"><span id="yui_3_16_0_ym19_1_1471291915552_3207">$ nm -C libLLVMCore.a | grep cxx11</span></div><div id="yui_3_16_0_ym19_1_1471291915552_3458" dir="ltr"><span id="yui_3_16_0_ym19_1_1471291915552_3207">0000000000000000 W std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<std::string const, std::string> >)</span></div><div id="yui_3_16_0_ym19_1_1471291915552_3457" dir="ltr"><span id="yui_3_16_0_ym19_1_1471291915552_3207">0000000000000000 W std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::erase[abi:cxx11](std::_Rb_tree_const_iterator<std::pair<std::string const, std::string> >)<br id="yui_3_16_0_ym19_1_1471291915552_3323"></span></div><div id="yui_3_16_0_ym19_1_1471291915552_3431" dir="ltr"><br><span id="yui_3_16_0_ym19_1_1471291915552_3207"></span></div><div id="yui_3_16_0_ym19_1_1471291915552_3430" dir="ltr"><span id="yui_3_16_0_ym19_1_1471291915552_3522">That's two times </span><span id="yui_3_16_0_ym19_1_1471291915552_3523">[abi:cxx11]. But libstdc++ from gcc-4.9.2 doesn't use abi tags, does it?</span></div><div id="yui_3_16_0_ym19_1_1471291915552_3931" dir="ltr"><br><span id="yui_3_16_0_ym19_1_1471291915552_3523"></span></div><div id="yui_3_16_0_ym19_1_1471291915552_4020" dir="ltr"><span id="yui_3_16_0_ym19_1_1471291915552_3523">(The build completes anyway and all tests succeed!)</span></div><div id="yui_3_16_0_ym19_1_1471291915552_4187" dir="ltr"><br><span id="yui_3_16_0_ym19_1_1471291915552_3523"></span></div><div id="yui_3_16_0_ym19_1_1471291915552_4248" dir="ltr"><span id="yui_3_16_0_ym19_1_1471291915552_3523">M.<br></span></div><div id="yui_3_16_0_ym19_1_1471291915552_3712" dir="ltr"><br><span id="yui_3_16_0_ym19_1_1471291915552_3523"></span></div> <div class="qtdSeparateBR"><br><br></div><div style="display: block;" class="yahoo_quoted"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div dir="ltr"><font face="Arial" size="2"> Andrey Bokhanko <andreybokhanko@gmail.com> schrieb am 20:53 Montag, 15.August 2016:<br></font></div> <br><br> <div class="y_msg_container"><div id="yiv7978245467"><div>To clarify, this is obviously a compiler flag, but the macro is consumed by the library (not compiler) and doesn't affect how gcc/clang work. Thus, if you want old mangling, just pass this flag either to gcc or clang.<div><br clear="none"></div><div>Yours,</div><div>Andrey<br clear="none"><br clear="none">On Monday, August 15, 2016, Andrey Bokhanko <<a rel="nofollow" shape="rect" ymailto="mailto:andreybokhanko@gmail.com" target="_blank" href="mailto:andreybokhanko@gmail.com">andreybokhanko@gmail.com</a>> wrote:<br clear="none"><div class="yiv7978245467yqt6649870108" id="yiv7978245467yqt06775"><blockquote class="yiv7978245467gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">As I understand, -D_GLIBCXX_USE_CXX11_ABI is a library flag, not compiler one, so clang should work with libstdc++ *exactly* as gcc5+ do. See <a rel="nofollow" shape="rect" target="_blank" href="http://developers.redhat.com/blog/2015/02/05/gcc5-and-the-c11-abi/">http://developers.redhat.com/ blog/2015/02/05/gcc5-and-the- c11-abi/</a> for details.<div><br clear="none"></div><div>Yours,</div><div>Andrey</div><div><br clear="none">On Monday, August 15, 2016, Renato Golin <<a href="" rel="nofollow" shape="rect">renato.golin@linaro.org</a>> wrote:<br clear="none"><blockquote class="yiv7978245467gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">On 15 August 2016 at 15:58, Maria Gottschalk via cfe-dev<br clear="none">
<<a href="" rel="nofollow" shape="rect">cfe-dev@lists.llvm.org</a>> wrote:<br clear="none">
> So, is it correct that clang-3.9.0 unconditionally compiles for the new abi? That gcc 4.x.y is no longer usable and that you must have gcc 5+ if you want to use libstdc++?<br clear="none">
<br clear="none">
Oh bother! Adding Dmitry, as he wrote the code [1].<br clear="none">
<br clear="none">
I was under the impression that, if you didn't use the tag, nothing<br clear="none">
would have changed.<br clear="none">
<br clear="none">
We don't have many compile-time options like GCC, so this would have<br clear="none">
to be a run-time option, if needed.<br clear="none">
<br clear="none">
cheers,<br clear="none">
--renato<br clear="none">
<br clear="none">
[1] <a rel="nofollow" shape="rect" target="_blank" href="https://reviews.llvm.org/D18035">https://reviews.llvm.org/D1803 5</a> and <a rel="nofollow" shape="rect" target="_blank" href="https://reviews.llvm.org/D17567">https://reviews.llvm.org/D1756 7</a><br clear="none">
</blockquote></div>
</blockquote></div></div></div></div><br><br></div> </div> </div> </div></div></body></html>