diff options
author | Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io> | 2023-03-02 20:37:05 +0100 |
---|---|---|
committer | Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io> | 2023-03-02 20:39:58 +0100 |
commit | 5659931be14b35bbbb6bdf9f48db78411898611c (patch) | |
tree | b4ac23a23bfa53676e47d3d7b92375a4fdf8d909 | |
parent | 074a0f97ff51efd691dbaef6458e74d75e6ed916 (diff) | |
download | haskell-wip/hdoc-llvm-workaround.tar.gz |
Implement a workaround for -fno-asm-shortcuttingwip/hdoc-llvm-workaround
-rw-r--r-- | hadrian/src/Oracles/Setting.hs | 7 | ||||
-rw-r--r-- | hadrian/src/Settings/Builders/Ghc.hs | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/hadrian/src/Oracles/Setting.hs b/hadrian/src/Oracles/Setting.hs index d8492dbe94..368954b736 100644 --- a/hadrian/src/Oracles/Setting.hs +++ b/hadrian/src/Oracles/Setting.hs @@ -7,7 +7,7 @@ module Oracles.Setting ( -- * Helpers ghcCanonVersion, cmdLineLengthLimit, hostSupportsRPaths, topDirectory, - libsuf, ghcVersionStage, bashPath, + libsuf, ghcVersionStage, bashPath, hostNeedsAsmShortcuttingWorkaround, -- ** Target platform things anyTargetPlatform, anyTargetOs, anyTargetArch, anyHostOs, @@ -272,6 +272,11 @@ anyTargetArch = matchSetting TargetArch anyHostOs :: [String] -> Action Bool anyHostOs = matchSetting HostOs +-- | Workaround for #21972. It can be removed once the minimal bootstrapping +-- compiler has a fix for this bug. +hostNeedsAsmShortcuttingWorkaround :: Action Bool +hostNeedsAsmShortcuttingWorkaround = anyHostOs [ "darwin" ] + -- | List of OSes that use the ELF object format. elfOSes :: [String] elfOSes = diff --git a/hadrian/src/Settings/Builders/Ghc.hs b/hadrian/src/Settings/Builders/Ghc.hs index 88bd26bd62..946c8802a2 100644 --- a/hadrian/src/Settings/Builders/Ghc.hs +++ b/hadrian/src/Settings/Builders/Ghc.hs @@ -57,6 +57,7 @@ compileAndLinkHs = (builder (Ghc CompileHs) ||^ builder (Ghc LinkHs)) ? do , (hasVanilla && hasDynamic) ? builder (Ghc CompileHs) ? platformSupportsSharedLibs ? way vanilla ? arg "-dynamic-too" + , hostNeedsAsmShortcuttingWorkaround ? stage0 ? arg "-fno-asm-shortcutting" , commonGhcArgs , ghcLinkArgs , defaultGhcWarningsArgs |