diff options
author | Ben Gamari <ben@smart-cactus.org> | 2022-01-14 19:56:05 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2022-04-06 15:18:26 -0400 |
commit | 6be2c5a7e9187fc14d51e1ec32ca235143bb0d8b (patch) | |
tree | 495b27f4c73c233eebebb557a967ebf02a149a41 /compiler | |
parent | d4c5f29ceced0891dfad266ef1daa54975547068 (diff) | |
download | haskell-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.hs | 5 |
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. |