diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2021-11-13 03:59:48 +0000 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2021-11-27 19:47:09 +0000 |
commit | f67060c6dcc2ba14949ab5e8a4ffe46bceadc14f (patch) | |
tree | 84b5821d2fa4ca215c6e1b0b03024059fd3ee7b7 /hadrian | |
parent | 88481c942a24e8ffa1705fc51b0bc900ca311ea7 (diff) | |
download | haskell-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/Makefile | 3 | ||||
-rw-r--r-- | hadrian/cfg/system.config.in | 3 | ||||
-rw-r--r-- | hadrian/src/Oracles/Flag.hs | 2 | ||||
-rw-r--r-- | hadrian/src/Oracles/Setting.hs | 2 | ||||
-rw-r--r-- | hadrian/src/Rules/Generate.hs | 4 |
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) |