summaryrefslogtreecommitdiff
path: root/hadrian/src/Oracles/Flag.hs
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2021-07-12 17:26:47 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-07-27 04:47:51 -0400
commit2ce48fe9d1334dadf6fa1411238e52d65b66ba41 (patch)
tree1f48a9e2e2ae3350c3802875bef128327afdf593 /hadrian/src/Oracles/Flag.hs
parent246f08ac032392f808c7aa53dd78a96d9b43e63f (diff)
downloadhaskell-2ce48fe9d1334dadf6fa1411238e52d65b66ba41.tar.gz
rts: Break up adjustor logic
Diffstat (limited to 'hadrian/src/Oracles/Flag.hs')
-rw-r--r--hadrian/src/Oracles/Flag.hs7
1 files changed, 6 insertions, 1 deletions
diff --git a/hadrian/src/Oracles/Flag.hs b/hadrian/src/Oracles/Flag.hs
index 1b3aff693e..5b41698be1 100644
--- a/hadrian/src/Oracles/Flag.hs
+++ b/hadrian/src/Oracles/Flag.hs
@@ -2,7 +2,7 @@
module Oracles.Flag (
Flag (..), flag, getFlag, platformSupportsSharedLibs,
- targetSupportsSMP
+ targetSupportsSMP, useLibffiForAdjustors
) where
import Hadrian.Oracles.TextFile
@@ -26,6 +26,7 @@ data Flag = ArSupportsAtFile
| UseSystemFfi
| BootstrapThreadedRts
| SystemDistroMINGW
+ | UseLibffiForAdjustors
-- Note, if a flag is set to empty string we treat it as set to NO. This seems
-- fragile, but some flags do behave like this.
@@ -47,6 +48,7 @@ flag f = do
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 "
++ quote (key ++ " = " ++ value) ++ " cannot be parsed."
@@ -88,3 +90,6 @@ targetSupportsSMP = do
, ver < ARMv7 -> return False
| goodArch -> return True
| otherwise -> return False
+
+useLibffiForAdjustors :: Action Bool
+useLibffiForAdjustors = flag UseLibffiForAdjustors