<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Nov 7, 2014, at 11:05 AM, Chandler Carruth <<a href="mailto:chandlerc@google.com" class="">chandlerc@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Fri, Nov 7, 2014 at 12:20 PM, Owen Anderson <span dir="ltr" class=""><<a href="mailto:resistor@mac.com" target="_blank" class="">resistor@mac.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><div class=""><blockquote type="cite" class=""><div class="">On Nov 7, 2014, at 8:57 AM, Daniel Dunbar <<a href="mailto:daniel@zuster.org" target="_blank" class="">daniel@zuster.org</a>> wrote:</div><br class=""><div class=""><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important" class="">2. I agree with Chandler in that I don't see a good need to try hard to factor out code from the Support library that can just be conditional disabled or would be unused by normal .a link semantics. For example, whether or not the regex or YAML code belongs in Support doesn't seem worth worrying too much about, because they are very isolated, don't introduce extra dependencies, and won't be linked by projects that don't use them.</span></div></blockquote></div><br class=""></span><div class="">This assumes that the client is statically linking against Support.  Chris has been pretty explicit about his goals of building and using LLVM as a monolithic dynamic library, in which case things like regex or YAML support will *not* be automatically removed.</div><span class="HOEnZb"><font color="#888888" class=""><div class=""></div></font></span></blockquote></div><br class=""></div><div class="gmail_extra">I see...</div><div class="gmail_extra"><br class=""></div><div class="gmail_extra">Maybe what we really need is (lacking a complete export list for the monolithic dynamic library) to use visibility so that these kinds of things can be dropped from the final dynamic library if they aren't used within it? I suspect would could mark essentially all of the support library, as unless it is used in the interface of some other library, we probably don't want to export it... (Having just started thinking about this, I've no idea whether folks using the LLVM dynamic library are independently using bits of the ADT for example….)</div></div></div></blockquote><div><br class=""></div><div>To the best of my understanding, many linkers don’t have sufficiently granular dead code stripping to rely on it for this. </div><br class=""><blockquote type="cite" class=""><div class="">
_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:LLVMdev@cs.uiuc.edu" class="">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" class="">http://llvm.cs.uiuc.edu</a><br class=""><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br class=""></div></blockquote></div><br class=""></body></html>