summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2022-01-14 19:56:05 -0500
committerBen Gamari <ben@smart-cactus.org>2022-04-06 15:18:26 -0400
commit6be2c5a7e9187fc14d51e1ec32ca235143bb0d8b (patch)
tree495b27f4c73c233eebebb557a967ebf02a149a41 /compiler
parentd4c5f29ceced0891dfad266ef1daa54975547068 (diff)
downloadhaskell-6be2c5a7e9187fc14d51e1ec32ca235143bb0d8b.tar.gz
Windows/Clang: Build system adaptation
* Bump win32-tarballs to 0.7 * Move Windows toolchain autoconf logic into separate file * Use clang and LLVM utilities as described in #21019 * Disable object merging as lld doesn't support -r * Drop --oformat=pe-bigobj-x86-64 arguments from ld flags as LLD detects that the output is large on its own. * Drop gcc wrapper since Clang finds its root fine on its own.
Diffstat (limited to 'compiler')
-rw-r--r--compiler/GHC/Driver/Pipeline/Execute.hs5
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/GHC/Driver/Pipeline/Execute.hs b/compiler/GHC/Driver/Pipeline/Execute.hs
index 61fc86c836..da214cdc20 100644
--- a/compiler/GHC/Driver/Pipeline/Execute.hs
+++ b/compiler/GHC/Driver/Pipeline/Execute.hs
@@ -1089,12 +1089,15 @@ enabled in the toolchain:
suggests, this tells the linker to produce a bigobj-enabled COFF object, no a
PE executable.
-We must enable bigobj output in a few places:
+Previously when we used ld.bfd we had to enable bigobj output in a few places:
* When merging object files (GHC.Driver.Pipeline.Execute.joinObjectFiles)
* When assembling (GHC.Driver.Pipeline.runPhase (RealPhase As ...))
+However, this is no longer necessary with ld.lld, which detects that the
+object is large on its own.
+
Unfortunately the big object format is not supported on 32-bit targets so
none of this can be used in that case.