
On Fri, Jul 7, 2017 at 9:28 AM, Ben Gamari
Ryan Scott
writes: Another things to note about 8.2 build times is that a bulk of the time is probably being spent during the linking phase. This is because GHC 8.2 has switched over to split-sections by default, but unfortunately, old versions of the BFD linker take a long time to link code that uses split-sections (see the discussion at [1]). There is ongoing work (which should hopefully land before the final 8.2 release) to use gold instead of BFD as the default linker when available, which will reduce linking times dramatically.
Indeed it has already landed. See #13541.
In short, ./configure will now choose to use ld.gold or ld.lld if available (although this can be disabled using the --disable-ld-override configure flag).
Just from curiosity, does this apply to OS X? Of course, gold is ELF-only, so it surely doesn't apply, but there's still lld. OS X uses clang to compile so I thought it might already use lld, but the 'ld -v' output looks different, and lld.llvm.org implies it's a replacement for OS X ld, so maybe not. But it doesn't look like GNU ld either, so maybe it's not affected by the BFD bug? I'll try 8.2 on OS X and see if the link time changes.