summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2021-01-12 14:26:37 -0500
committerBen Gamari <ben@smart-cactus.org>2021-01-12 16:29:36 -0500
commit229f9fb77b866e1c7c2b2a2e5634c5af6e00a91a (patch)
tree242a8061f3a684d9e7f579b3762bf371edc80719
parent0dba78410887ffc3d219639081e284ef7b67560a (diff)
downloadhaskell-wip/no-prof-libs.tar.gz
hadrian: Introduce no_profiled_libs flavour transformerwip/no-prof-libs
Per request of @AndreasK.
-rw-r--r--hadrian/doc/flavours.md4
-rw-r--r--hadrian/src/Flavour.hs7
2 files changed, 11 insertions, 0 deletions
diff --git a/hadrian/doc/flavours.md b/hadrian/doc/flavours.md
index 4dac301dad..c58398844f 100644
--- a/hadrian/doc/flavours.md
+++ b/hadrian/doc/flavours.md
@@ -215,6 +215,10 @@ The supported transformers are listed below:
default to loading static rather than dynamic library when,
e.g., loading libraries during TemplateHaskell evaluations.</td>
</tr>
+ <tr>
+ <td><code>no_profiled_libs</code></td>
+ <td>Disables building of libraries in profiled build ways.</td>
+ </tr>
</table>
## Ways
diff --git a/hadrian/src/Flavour.hs b/hadrian/src/Flavour.hs
index a7a32ed634..765358c572 100644
--- a/hadrian/src/Flavour.hs
+++ b/hadrian/src/Flavour.hs
@@ -11,6 +11,7 @@ module Flavour
, viaLlvmBackend
, enableProfiledGhc
, disableDynamicGhcPrograms
+ , disableProfiledLibs
) where
import Expression
@@ -90,6 +91,7 @@ flavourTransformers = M.fromList
, "llvm" =: viaLlvmBackend
, "profiled_ghc" =: enableProfiledGhc
, "no_dynamic_ghc" =: disableDynamicGhcPrograms
+ , "no_profiled_libs" =: disableProfiledLibs
]
where (=:) = (,)
@@ -211,3 +213,8 @@ enableProfiledGhc flavour = flavour { ghcProfiled = True }
-- | Disable 'dynamicGhcPrograms'.
disableDynamicGhcPrograms :: Flavour -> Flavour
disableDynamicGhcPrograms flavour = flavour { dynamicGhcPrograms = pure False }
+
+-- | Don't build libraries in profiled 'Way's.
+disableProfiledLibs :: Flavour -> Flavour
+disableProfiledLibs flavour =
+ flavour { libraryWays = filter (not . wayUnit Profiling) <$> libraryWays flavour }