<div dir="ltr">It's really exciting to see such rapid progress being made here. Thanks David!<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 13, 2018 at 7:31 AM, David Major <span dir="ltr"><<a href="mailto:dmajor@mozilla.com" target="_blank">dmajor@mozilla.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Link xul.dll in 20 seconds with this one weird trick!<br>
<br>
<br>
Hi everyone,<br>
<br>
clang-cl builds of Firefox have come a long way, from being a hobby project<br>
of a few developers to running static analysis in CI for more than a year<br>
now. The tools are in really good shape and should be ready for broader use<br>
within Mozilla at this point.<br>
<br>
Bug 1443590 is looking into what it would take to ship official builds with<br>
clang-cl and lld-link, but in the meantime it's possible to do local builds<br>
already. I'd like to invite people who develop on Windows to give it a try.<br>
<br>
*** Reasons to use clang-cl and lld-link locally ***<br>
<br>
- Speed! lld is known for being very fast. I'm serious about 20-second<br>
libxuls. That's a non-incremental link, with identical code folding<br>
enabled. For comparison, MSVC takes me over two minutes.<br>
<br>
- Speed again! clang-cl will integrate with upcoming sccache/icecream work.<br>
<br>
- Much clearer and more actionable error messages than MSVC<br>
<br>
- Make your own ASan and static analysis builds (the latter need an LLVM<br>
before r318304, see bug 1427808)<br>
<br>
- Help ship Firefox with clang-cl by getting more eyes and machines on<br>
these tools<br>
<br>
*** Reasons not to use clang-cl and lld-link locally (yet) ***<br>
<br>
- You are testing codegen-level fixes or optimizations and need to see the<br>
exact bits that will be going out to users<br>
<br>
- lld-link currently doesn’t support incremental linking -- but with full<br>
linking being so fast, this might not matter<br>
<br>
- You do artifact builds that don't use a local compiler<br>
<br>
*** How do I get started? ***<br>
<br>
<a href="https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Building_Firefox_on_Windows_with_clang-cl" rel="noreferrer" target="_blank">https://developer.mozilla.org/<wbr>en-US/docs/Mozilla/Developer_<wbr>guide/Build_Instructions/<wbr>Building_Firefox_on_Windows_<wbr>with_clang-cl</a><br>
<br>
A number of build system changes have landed that make these builds much<br>
easier than before. For example you no longer need to use old versions of<br>
MozillaBuild.<br>
<br>
Note that clang-cl builds still depend on an MSVC installation for headers,<br>
libraries, and auxiliary build tools, so don't go uninstalling your Visual<br>
Studio just yet.<br>
<br>
If you run into any problems, please stop by #build or visit the shiny new<br>
Firefox Build System product in Bugzilla (formerly Core :: Build Config).<br>
<br>
Thanks!<br>
______________________________<wbr>_________________<br>
dev-platform mailing list<br>
<a href="mailto:dev-platform@lists.mozilla.org">dev-platform@lists.mozilla.org</a><br>
<a href="https://lists.mozilla.org/listinfo/dev-platform" rel="noreferrer" target="_blank">https://lists.mozilla.org/<wbr>listinfo/dev-platform</a><br>
</blockquote></div><br></div>