summaryrefslogtreecommitdiff
path: root/hadrian
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2021-11-13 03:59:48 +0000
committerJohn Ericson <John.Ericson@Obsidian.Systems>2021-11-27 19:47:09 +0000
commitf67060c6dcc2ba14949ab5e8a4ffe46bceadc14f (patch)
tree84b5821d2fa4ca215c6e1b0b03024059fd3ee7b7 /hadrian
parent88481c942a24e8ffa1705fc51b0bc900ca311ea7 (diff)
downloadhaskell-f67060c6dcc2ba14949ab5e8a4ffe46bceadc14f.tar.gz
Make ambient MinGW support a proper settings
Get rid of `USE_INPLACE_MINGW_TOOLCHAIN` and use a settings file entry instead. The CPP setting was originally introduced in f065b6b012.
Diffstat (limited to 'hadrian')
-rw-r--r--hadrian/bindist/Makefile3
-rw-r--r--hadrian/cfg/system.config.in3
-rw-r--r--hadrian/src/Oracles/Flag.hs2
-rw-r--r--hadrian/src/Oracles/Setting.hs2
-rw-r--r--hadrian/src/Rules/Generate.hs4
5 files changed, 6 insertions, 8 deletions
diff --git a/hadrian/bindist/Makefile b/hadrian/bindist/Makefile
index 84fb7f8bdd..4276fe7a86 100644
--- a/hadrian/bindist/Makefile
+++ b/hadrian/bindist/Makefile
@@ -141,6 +141,7 @@ lib/settings :
@echo ',("LLVM llc command", "$(SettingsLlcCommand)")' >> $@
@echo ',("LLVM opt command", "$(SettingsOptCommand)")' >> $@
@echo ',("LLVM clang command", "$(SettingsClangCommand)")' >> $@
+ @echo ',("Use inplace MinGW toolchain", "$(SettingsUseDistroMINGW)")' >> $@
@echo
@echo ',("Use interpreter", "$(GhcWithInterpreter)")' >> $@
@echo ',("Support SMP", "$(GhcWithSMP)")' >> $@
@@ -148,7 +149,7 @@ lib/settings :
@echo ',("Tables next to code", "$(TablesNextToCode)")' >> $@
@echo ',("Leading underscore", "$(LeadingUnderscore)")' >> $@
@echo ',("Use LibFFI", "$(UseLibffiForAdjustors)")' >> $@
- @echo ",(\"RTS expects libdw\", \"$(GhcRtsWithLibdw)\")" >> $@
+ @echo ',("RTS expects libdw", "$(GhcRtsWithLibdw)")' >> $@
@echo "]" >> $@
# We need to install binaries relative to libraries.
diff --git a/hadrian/cfg/system.config.in b/hadrian/cfg/system.config.in
index e8a300d401..860c12fbec 100644
--- a/hadrian/cfg/system.config.in
+++ b/hadrian/cfg/system.config.in
@@ -96,8 +96,6 @@ project-patch-level1 = @ProjectPatchLevel1@
project-patch-level2 = @ProjectPatchLevel2@
project-git-commit-id = @ProjectGitCommitId@
-system-use-distro-mingw = @SettingsUseDistroMINGW@
-
# Compilation and linking flags:
#===============================
@@ -164,6 +162,7 @@ settings-touch-command = @SettingsTouchCommand@
settings-clang-command = @SettingsClangCommand@
settings-llc-command = @SettingsLlcCommand@
settings-opt-command = @SettingsOptCommand@
+settings-use-distro-mingw = @SettingsUseDistroMINGW@
target-word-size = @TargetWordSize@
target-word-big-endian = @TargetWordBigEndian@
diff --git a/hadrian/src/Oracles/Flag.hs b/hadrian/src/Oracles/Flag.hs
index 535a0a0138..ca66f38582 100644
--- a/hadrian/src/Oracles/Flag.hs
+++ b/hadrian/src/Oracles/Flag.hs
@@ -25,7 +25,6 @@ data Flag = ArSupportsAtFile
| HaveLibMingwEx
| UseSystemFfi
| BootstrapThreadedRts
- | SystemDistroMINGW
| UseLibffiForAdjustors
-- Note, if a flag is set to empty string we treat it as set to NO. This seems
@@ -47,7 +46,6 @@ flag f = do
HaveLibMingwEx -> "have-lib-mingw-ex"
UseSystemFfi -> "use-system-ffi"
BootstrapThreadedRts -> "bootstrap-threaded-rts"
- SystemDistroMINGW -> "system-use-distro-mingw"
UseLibffiForAdjustors -> "use-libffi-for-adjustors"
value <- lookupValueOrError configFile key
when (value `notElem` ["YES", "NO", ""]) . error $ "Configuration flag "
diff --git a/hadrian/src/Oracles/Setting.hs b/hadrian/src/Oracles/Setting.hs
index e58851057a..104cbc0046 100644
--- a/hadrian/src/Oracles/Setting.hs
+++ b/hadrian/src/Oracles/Setting.hs
@@ -125,6 +125,7 @@ data SettingsFileSetting
| SettingsFileSetting_ClangCommand
| SettingsFileSetting_LlcCommand
| SettingsFileSetting_OptCommand
+ | SettingsFileSetting_DistroMinGW
-- | Look up the value of a 'Setting' in @cfg/system.config@, tracking the
-- result.
@@ -215,6 +216,7 @@ settingsFileSetting key = lookupValueOrError configFile $ case key of
SettingsFileSetting_ClangCommand -> "settings-clang-command"
SettingsFileSetting_LlcCommand -> "settings-llc-command"
SettingsFileSetting_OptCommand -> "settings-opt-command"
+ SettingsFileSetting_DistroMinGW -> "settings-use-distro-mingw"
-- | An expression that looks up the value of a 'Setting' in @cfg/system.config@,
-- tracking the result.
diff --git a/hadrian/src/Rules/Generate.hs b/hadrian/src/Rules/Generate.hs
index d760dd55db..19ff80f6ea 100644
--- a/hadrian/src/Rules/Generate.hs
+++ b/hadrian/src/Rules/Generate.hs
@@ -242,7 +242,6 @@ generateGhcPlatformH = do
hostOs <- chooseSetting HostOs TargetOs
hostVendor <- chooseSetting HostVendor TargetVendor
ghcUnreg <- getFlag GhcUnregisterised
- inplaceTools <- getFlag SystemDistroMINGW
return . unlines $
[ "#if !defined(__GHCPLATFORM_H__)"
, "#define __GHCPLATFORM_H__"
@@ -270,8 +269,6 @@ generateGhcPlatformH = do
, ""
]
++
- [ "#define USE_INPLACE_MINGW_TOOLCHAIN 1" | inplaceTools ]
- ++
[ "#define UnregisterisedCompiler 1" | ghcUnreg ]
++
[ ""
@@ -326,6 +323,7 @@ generateSettings = do
, ("LLVM llc command", expr $ settingsFileSetting SettingsFileSetting_LlcCommand)
, ("LLVM opt command", expr $ settingsFileSetting SettingsFileSetting_OptCommand)
, ("LLVM clang command", expr $ settingsFileSetting SettingsFileSetting_ClangCommand)
+ , ("Use inplace MinGW toolchain", expr $ settingsFileSetting SettingsFileSetting_DistroMinGW)
, ("Use interpreter", expr $ yesNo <$> ghcWithInterpreter)
, ("Support SMP", expr $ yesNo <$> targetSupportsSMP)