<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></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 Sep 20, 2014, at 11:42 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 Thu, Sep 18, 2014 at 8:23 AM, Filip Pizlo <span dir="ltr" class=""><<a href="mailto:fpizlo@apple.com" target="_blank" class="">fpizlo@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I tend to think that bundling is ugly because it makes it harder for a distributor or integrator to pick the exact versions of all of the components in the system.</blockquote></div><br class="">I agree when the components might have other OS interactions, security implications, etc. A good example is that we really need to use the system termcap library (libtinfo.so or libcurses.so) because the system might have implemented terminfo completely differently and expected software to Just Work because it provides a compatible C interface that fits the spec.</div><div class="gmail_extra"><br class=""></div><div class="gmail_extra">But none of this seems to apply to zlib, MD5, or several other things. Here we are actually trying to do compression or digesting to match the DWARF spec (or some other spec, potentially even our own) and giving anyone the freedom to influence how we do this doesn't actually seem good. For example, if our implementation of the zlib interface happens to have bugs in it, we actually need to keep those bugs in place to retain compatibility. Using a fixed system library would be bad in this sense.</div></div></div></blockquote><div><br class=""></div><div>Has there ever been a zlib bug that caused a conformance issue for LLVM?</div><div><br class=""></div><div>-Filip</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra"><br class=""></div><div class="gmail_extra"><br class=""></div><div class="gmail_extra">The other argument is one around maintenance which is a very relevant point for any sizable (or numerous) dependencies (for example, bundling boost seems like a bad idea), but seems moot for things as simple as compression libraries or digesting libraries.</div><div class="gmail_extra"><br class=""></div><div class="gmail_extra"><br class=""></div><div class="gmail_extra">Finally, limiting our use of system libraries in the critical path of compilation (emitting debug info is one of them) helps preserve our ability to do LTO builds of Clang and other LLVM-based tools which are unimpeded in their optimization. Every time they have to reach out to a system library, the optimizer has to be much more conservative in LTO mode.</div></div>
</div></blockquote></div><br class=""></body></html>