diff options
author | Douglas Wilson <douglas.wilson@gmail.com> | 2021-12-19 11:56:39 +0000 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-04-28 18:54:44 -0400 |
commit | 4ad559c8142e52f4a97076c813471a2848ed4e0f (patch) | |
tree | 96ea38a0f1796325a6af95b84bc1dcd156938882 /hadrian/src | |
parent | 654bafea5bd4a1ce82af440c90f5fa38ac532503 (diff) | |
download | haskell-4ad559c8142e52f4a97076c813471a2848ed4e0f.tar.gz |
hadrian: add debug_ghc and debug_stage1_ghc flavour transformers
Diffstat (limited to 'hadrian/src')
-rw-r--r-- | hadrian/src/Flavour.hs | 11 | ||||
-rw-r--r-- | hadrian/src/Rules/Test.hs | 2 | ||||
-rw-r--r-- | hadrian/src/Settings/Builders/Ghc.hs | 1 |
3 files changed, 12 insertions, 2 deletions
diff --git a/hadrian/src/Flavour.hs b/hadrian/src/Flavour.hs index 178eda3a8b..7a42e6df3d 100644 --- a/hadrian/src/Flavour.hs +++ b/hadrian/src/Flavour.hs @@ -49,6 +49,8 @@ flavourTransformers = M.fromList , "fully_static" =: fullyStatic , "collect_timings" =: collectTimings , "assertions" =: enableAssertions + , "debug_ghc" =: debugGhc Stage1 + , "debug_stage1_ghc" =: debugGhc Stage0 ] where (=:) = (,) @@ -270,6 +272,15 @@ collectTimings = addArgs $ notStage0 ? builder (Ghc CompileHs) ? pure ["-ddump-to-file", "-ddump-timings", "-v"] +-- | Build ghc with debug rts (i.e. -debug) in and after this stage +debugGhc :: Stage -> Flavour -> Flavour +debugGhc stage f = f + { ghcDebugged = (>= stage) + , rtsWays = do + ws <- rtsWays f + pure $ (Set.map (\w -> w <> debug) ws) <> ws + } + -- * CLI and <root>/hadrian.settings options {- diff --git a/hadrian/src/Rules/Test.hs b/hadrian/src/Rules/Test.hs index 27ef2336f1..e389506f3e 100644 --- a/hadrian/src/Rules/Test.hs +++ b/hadrian/src/Rules/Test.hs @@ -146,7 +146,7 @@ testRules = do top <- topDirectory depsPkgs <- mod_pkgs . packageDependencies <$> readPackageData progPkg bindir <- getBinaryDirectory testGhc - debugged <- ghcDebugged <$> flavour <*> pure Stage3 + debugged <- ghcDebugged <$> flavour <*> pure (stageOf testGhc) dynPrograms <- dynamicGhcPrograms =<< flavour cmd [bindir </> "ghc" <.> exe] $ concatMap (\p -> ["-package", pkgName p]) depsPkgs ++ diff --git a/hadrian/src/Settings/Builders/Ghc.hs b/hadrian/src/Settings/Builders/Ghc.hs index 47ac5f0ed9..ec19de44d5 100644 --- a/hadrian/src/Settings/Builders/Ghc.hs +++ b/hadrian/src/Settings/Builders/Ghc.hs @@ -177,7 +177,6 @@ ghcLinkArgs = builder (Ghc LinkHs) ? do , osxTarget ? pure (concat [ ["-framework", fmwk] | fmwk <- fmwks ]) , debugged ? packageOneOf [ghc, iservProxy, iserv, remoteIserv] ? arg "-debug" - ] findHsDependencies :: Args |