<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 7:21 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">Phyx <<a href="mailto:lonetiger@gmail.com" target="_blank">lonetiger@gmail.com</a>> writes:<br>
<br>
> On Sat, Dec 22, 2018 at 5:40 PM Ben Gamari <<a href="mailto:ben@well-typed.com" target="_blank">ben@well-typed.com</a>> wrote:<br>
><br>
>> 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<br>
>> 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>
>><br>
><br>
> I wasn't even aware they added a mingw front-end back into LLD, this does<br>
> make it a viable option.<br>
> That said I also have a somewhat optimized binutils port here<br>
> <a href="https://github.com/Mistuke/binutils-gdb" rel="noreferrer" target="_blank">https://github.com/Mistuke/binutils-gdb</a><br>
><br>
> The patch for fuse-ld=lld support is a trivial backport. I can easily build<br>
> a GCC 8 release with it included and<br>
> a tip of trunk LLD 8 if you'd like to try them out.<br>
<br>
That would be fantastic. I quickly looked at what would be involved to<br>
do this myself. The process appears to be fairly straightforward<br>
However, it's a bit unclear which directory in the MSYS2-packages<br>
repository corresponds to the mingw-w64-$(uname -m)-gcc toolchain we use<br>
for builds. My guess is that [1] is the relevant package. Can you<br>
confirm?<br></blockquote><div><br></div><div>No, that one is the cross compilers for MSYS2, e.g. when you want to cross compile from</div><div>the posix emulated environment to native Windows. The cross builds still rely on the msys2</div><div>runtime so won't be usable I think.<br></div><div><br></div><div>We use the full native bootstrapped builds [1]. Note that this is already at GCC8,</div><div>we use GCC 7 in GHC atm, so a validate build may not work due to the new warnings added,</div><div>so require you to turn off -Werror for the experiment. We haven't upgraded to GCC8 as they</div><div>haven't published a GCC8 for the 32 bit builds as Ada is currently broken.<br></div><div><br></div><div>[1] <a href="https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-gcc">https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-gcc</a><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>
> I wouldn't recommend GCC 9 atm as we're in stage 3 and things are<br>
> routinely broken..<br>
><br>
<br>
Cheers,<br>
<br>
- Ben<br>
<br>
[1] <a href="https://github.com/Alexpux/MSYS2-packages/blob/master/mingw-w64-cross-gcc/PKGBUILD" rel="noreferrer" target="_blank">https://github.com/Alexpux/MSYS2-packages/blob/master/mingw-w64-cross-gcc/PKGBUILD</a><br>
</blockquote></div></div></div>