<div dir="ltr">Given the dates, this seems unrelated, but there have been compile-time issues with libc++ for some time now: <a href="http://llvm.org/bugs/show_bug.cgi?id=14587">http://llvm.org/bugs/show_bug.cgi?id=14587</a><div>
<br></div><div>-- Sean Silva</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 12, 2014 at 2:17 PM, Justin Bogner <span dir="ltr"><<a href="mailto:mail@justinbogner.com" target="_blank">mail@justinbogner.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Most of libc++ doesn't have explicit template instantiations, which<br>
leads to a pretty significant build time and code size cost when using<br>
libc++, since a large number of common templates will be emitted by the<br>
compiler and coalesced by the linker. Notably, in include/__config, we<br>
have:<br>
<br>
    #ifndef _LIBCPP_EXTERN_TEMPLATE<br>
    #define _LIBCPP_EXTERN_TEMPLATE(...)<br>
    #endif<br>
<br>
whereas before r189601 this was:<br>
<br>
    #define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;<br>
<br>
This was apparently done to fix <a href="http://llvm.org/bugs/show_bug.cgi?id=17027" target="_blank">http://llvm.org/bugs/show_bug.cgi?id=17027</a>,<br>
but disabling explicit instantiations seems like a pretty big hammer<br>
considering the drawbacks.<br>
<br>
I'd like to restore these instantiations. Any thoughts on how to handle<br>
things like pr17027 in a less heavy handed way?<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</blockquote></div><br></div>