diff options
-rw-r--r-- | hadrian/src/Rules/Program.hs | 11 |
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) |