summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2019-01-22 11:33:18 +0000
committerBen Gamari <ben@smart-cactus.org>2019-02-20 14:28:54 -0500
commit49c1f88c850ef0bc2ed8e8eff08e29abd9e73908 (patch)
tree4d0ba4be8dc15c254d93c1feb8eb42ada5e27bf6
parent4d2b804f73b4d4f38c5108ed248569312104705c (diff)
downloadhaskell-49c1f88c850ef0bc2ed8e8eff08e29abd9e73908.tar.gz
Fix hadrian prof flavour so that it builds a profiled version of GHC
In Alp's refactoring of `getProgramContexts` he removed a call to `getProgramContext` which was where the logic for this used to be implemented. Fixes #16214
-rw-r--r--hadrian/src/Rules/Program.hs11
1 files changed, 9 insertions, 2 deletions
diff --git a/hadrian/src/Rules/Program.hs b/hadrian/src/Rules/Program.hs
index c9df6f5e2d..d7bcb48712 100644
--- a/hadrian/src/Rules/Program.hs
+++ b/hadrian/src/Rules/Program.hs
@@ -13,6 +13,7 @@ import Settings
import Settings.Default
import Target
import Utilities
+import Flavour
-- | TODO: Drop code duplication
buildProgramRules :: [(Resource, Int)] -> Rules ()
@@ -44,12 +45,18 @@ getProgramContexts stage = do
-- make sure that we cover these
-- "prof-build-under-other-name" cases.
-- iserv gets its names from Packages.hs:programName
- let allCtxs = [ vanillaContext stage pkg
+ --
+ profiled <- ghcProfiled <$> flavour
+ let allCtxs =
+ if pkg == ghc && profiled && stage > Stage0
+ then [ Context stage pkg profiling ]
+ else [ vanillaContext stage pkg
, Context stage pkg profiling
-- TODO Dynamic way has been reverted as the dynamic build is
-- broken. See #15837.
-- , Context stage pkg dynamic
- ]
+ ]
+
forM allCtxs $ \ctx -> do
name <- programName ctx
return (name <.> exe, ctx)