summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)