<div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Dec 22, 2018 at 5:40 PM Ben Gamari <<a href="mailto:ben@well-typed.com">ben@well-typed.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Ccing our Windows czar, Tamar.<br>
<br>
<br>
"Greg Steuck (Sh-toy-k)" <<a href="mailto:gnezdo@google.com" target="_blank">gnezdo@google.com</a>> writes:<br>
<br>
> FWIW, lld seems pretty well supported on Windows<br>
> <<a href="https://lld.llvm.org/windows_support.html" rel="noreferrer" target="_blank">https://lld.llvm.org/windows_support.html</a>>. We have some evidence that lld<br>
> is faster than gold and ld.bfd on Linux.<br>
><br>
Indeed that is the option that I am investigating. I have opened #16084<br>
[1] and an msys2 [2] ticket to track this. Unfortunately, GCC shipped<br>
with msys2 doesn't currently support -fuse-ld=lld, so we are stuck with<br>
ld.bfd until GCC 9 is released. However, even then it sounds like <br>
lld <8 and mingw aren't known to interact well.<br></blockquote><div><br></div><div>I wasn't even aware they added a mingw front-end back into LLD, this does make it a viable option.</div><div>That said I also have a somewhat optimized binutils port here <a href="https://github.com/Mistuke/binutils-gdb">https://github.com/Mistuke/binutils-gdb</a></div><div><br></div><div>The patch for fuse-ld=lld support is a trivial backport. I can easily build a GCC 8 release with it included and</div><div>a tip of trunk LLD 8 if you'd like to try them out. I wouldn't recommend GCC 9 atm as we're in stage 3 and things</div><div>are routinely broken..<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
All-in-all, moving to lld sounds like a good long-term direction but<br>
won't be viable for at least a few months.<br></blockquote><div><br></div><div>Yes adding it as an extra option and maybe default is good, especially as it has PDB support, making life on Windows</div><div>much much easier, but we should keep bfd support as well as bfd tends to have better obscure feature support, for those that need it.</div><div><br></div><div>Cheers,</div><div>Tamar<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Cheers,<br>
<br>
- Ben<br>
<br>
<br>
[1] <a href="https://ghc.haskell.org/trac/ghc/ticket/16084" rel="noreferrer" target="_blank">https://ghc.haskell.org/trac/ghc/ticket/16084</a><br>
[2] <a href="https://github.com/Alexpux/MSYS2-packages/issues/1531" rel="noreferrer" target="_blank">https://github.com/Alexpux/MSYS2-packages/issues/1531</a><br>
<br>
</blockquote></div></div></div>