<div dir="ltr">> <span style="font-size:12.8px">I initially started from configuration using "-</span><span style="white-space:pre-wrap">DLIBCXX_ENABLE_SHARED=OFF -DLIBCXX_ENABLE_STATIC_ABI_<wbr>LIBRARY=ON". Clang built with this configuration can not produce binaries at all (see below). Clang with just "</span><span style="white-space:pre-wrap">-</span><span style="white-space:pre-wrap">DLIBCXX_ENABLE_STATIC_ABI_<wbr>LIBRARY=ON" fails the same way when I use "</span><span style="font-size:12.8px">-static-libstdc++"</span><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Ah my mistake. LIBCXX_ENABLE_STATIC_ABI_LIBRARY only works when building a shared libc++ with a static libc++abi. It doesn't actually combine libc++ and libc++abi archives if they are both static. I guess I need to fix that, or at least document it. It is possible to <a href="http://stackoverflow.com/questions/3821916/how-to-merge-two-ar-static-libraries-into-one">merge two static archives into one</a>, but </span></div><div><br></div><div>/Eric</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 17, 2016 at 10:03 PM, Michał Górny <span dir="ltr"><<a href="mailto:mgorny@gentoo.org" target="_blank">mgorny@gentoo.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, 17 Nov 2016 21:00:27 -0700<br>
Eric Fiselier via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br>
<br>
> On Thu, Nov 17, 2016 at 5:20 PM, Mike Aizatsky via cfe-dev <<br>
> <a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br>
><br>
> > Hello!<br>
> ><br>
> > I've recently encountered a bug (<a href="https://llvm.org/bugs/show_" rel="noreferrer" target="_blank">https://llvm.org/bugs/show_</a><br>
> > bug.cgi?id=30919) and I would like an advice on how to approach it.<br>
> ><br>
> > It seems that right now libc++abi is not handled by Tools.cpp. Normal<br>
> > linking works  because:<br>
> ><br>
> > $ cat ~/out/llvm/default/lib/libc++.<wbr>so<br>
> > INPUT(libc++.so.1 -lc++abi)<br>
> ><br>
> > And if I use -static-libstdc++ then c++abi is not automatically linked in<br>
> > at all.<br>
> ><br>
> > Is there a similar magic for .a files like for .so? Should Tools.cpp know<br>
> > about lc++abi? Are there any alternatives?<br>
> ><br>
><br>
> First, Tools.cpp shouldn't know about libc++abi/libsupc++/libcxxrt or w/e<br>
> C++ ABI library your STL is using.<br>
><br>
> There are two alternatives to your problem.  If you want to use a static<br>
> libc++abi you can build libc++ with LIBCXX_ENABLE_STATIC_ABI_<wbr>LIBRARY=ON<br>
</span>> <<a href="http://libcxx.llvm.org/docs/BuildingLibcxx.html#cmdoption-arg-LIBCXX_ENABLE_STATIC_ABI_LIBRARY" rel="noreferrer" target="_blank">http://libcxx.llvm.org/docs/<wbr>BuildingLibcxx.html#cmdoption-<wbr>arg-LIBCXX_ENABLE_STATIC_ABI_<wbr>LIBRARY</a>><br>
<span class="">> .<br>
> Alternatively you can define libc++.a as a linker script just like<br>
> libc++.so. (Ex INPUT(libc++static.a -lc++abi))<br>
<br>
</span>I had adding support for static linker scripts somewhere in my TODO.<br>
However, I'm not sure if I will proceed with it anytime soon since<br>
touching anything linking-related turns out being a huge can of worms,<br>
and Eric ends up having to fix my mistakes ;-).<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Best regards,<br>
Michał Górny<br>
<<a href="http://dev.gentoo.org/~mgorny/" rel="noreferrer" target="_blank">http://dev.gentoo.org/~<wbr>mgorny/</a>><br>
</font></span></blockquote></div><br></div>