summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2022-01-26 16:28:17 +0000
committerBen Gamari <ben@smart-cactus.org>2022-01-26 16:29:32 +0000
commit8c20fb38b541a66b450a295ce5eeefcecc56d9aa (patch)
tree213106f7433e94a81e02791f635276be9d29019b
parent781323a3076781b5db50bdbeb8f64394add43836 (diff)
downloadhaskell-wip/hadrian-no-terminfo.tar.gz
hadrian: Add no_terminfo flavour transformerwip/hadrian-no-terminfo
Filling the same role as the `make` build system's `WITH_TERMINFO` variable.
-rw-r--r--hadrian/doc/flavours.md5
-rw-r--r--hadrian/src/Flavour.hs9
2 files changed, 14 insertions, 0 deletions
diff --git a/hadrian/doc/flavours.md b/hadrian/doc/flavours.md
index 9788a0593f..442cd5d3f2 100644
--- a/hadrian/doc/flavours.md
+++ b/hadrian/doc/flavours.md
@@ -206,6 +206,11 @@ The supported transformers are listed below:
library due to the long linking times that this causes).</td>
</tr>
<tr>
+ <td><code>no_terminfo</code></td>
+ <td>Build the compiler without <code>terminfo</code> support. Some line
+ editing functionality will be unavailable.</td>
+ </tr>
+ <tr>
<td><code>thread_sanitizer</code></td>
<td>Build the runtime system with ThreadSanitizer support</td>
</tr>
diff --git a/hadrian/src/Flavour.hs b/hadrian/src/Flavour.hs
index f31e7667e1..7a9e7d54aa 100644
--- a/hadrian/src/Flavour.hs
+++ b/hadrian/src/Flavour.hs
@@ -6,6 +6,7 @@ module Flavour
, flavourTransformers
, addArgs
, splitSections, splitSectionsIf
+ , disableTerminfo
, enableThreadSanitizer
, enableDebugInfo, enableTickyGhc
, viaLlvmBackend
@@ -38,6 +39,7 @@ flavourTransformers = M.fromList
, "debug_info" =: enableDebugInfo
, "ticky_ghc" =: enableTickyGhc
, "split_sections" =: splitSections
+ , "no_terminfo" =: disableTerminfo
, "thread_sanitizer" =: enableThreadSanitizer
, "llvm" =: viaLlvmBackend
, "profiled_ghc" =: enableProfiledGhc
@@ -146,6 +148,13 @@ splitSections = splitSectionsIf (/=ghc)
-- Disable section splitting for the GHC library. It takes too long and
-- there is little benefit.
+-- | Disable @terminfo@ support.
+disableTerminfo :: Flavour -> Flavour
+disableTerminfo = addArgs $ mconcat
+ [ package compiler ? builder (Cabal Flags) ? arg "-terminfo"
+ , package haskeline ? builder (Cabal Flags) ? arg "-terminfo"
+ ]
+
enableThreadSanitizer :: Flavour -> Flavour
enableThreadSanitizer = addArgs $ mconcat
[ builder (Ghc CompileHs) ? arg "-optc-fsanitize=thread"