Sven Tennie pushed to branch wip/romes/hadrian-cross-stage2-rebase_SVEN_FINAL at Glasgow Haskell Compiler / GHC
Commits:
-
385bdab5
by Sven at 2026-03-22T09:42:33+00:00
6 changed files:
- hadrian/src/Flavour.hs
- hadrian/src/Flavour/Type.hs
- hadrian/src/Hadrian/Haskell/Hash.hs
- hadrian/src/Settings.hs
- hadrian/src/Settings/Default.hs
- hadrian/src/Settings/Flavours/GhcInGhci.hs
Changes:
| ... | ... | @@ -325,7 +325,7 @@ disableDynamicGhcPrograms flavour = flavour { dynamicGhcPrograms = const (pure F |
| 325 | 325 | -- | Don't build libraries in dynamic 'Way's.
|
| 326 | 326 | disableDynamicLibs :: Flavour -> Flavour
|
| 327 | 327 | disableDynamicLibs flavour =
|
| 328 | - flavour { libraryWays = prune $ libraryWays flavour,
|
|
| 328 | + flavour { libraryWays = prune . libraryWays flavour,
|
|
| 329 | 329 | rtsWays = prune $ rtsWays flavour,
|
| 330 | 330 | dynamicGhcPrograms = const (pure False)
|
| 331 | 331 | }
|
| ... | ... | @@ -338,7 +338,7 @@ disableDynamicLibs flavour = |
| 338 | 338 | enableProfiledLibs :: Flavour -> Flavour
|
| 339 | 339 | enableProfiledLibs flavour =
|
| 340 | 340 | flavour
|
| 341 | - { libraryWays = addProfilingWays $ libraryWays flavour,
|
|
| 341 | + { libraryWays = addProfilingWays . libraryWays flavour,
|
|
| 342 | 342 | rtsWays = addProfilingWays $ rtsWays flavour
|
| 343 | 343 | }
|
| 344 | 344 | where
|
| ... | ... | @@ -351,7 +351,7 @@ enableProfiledLibs flavour = |
| 351 | 351 | -- | Don't build libraries in profiled 'Way's.
|
| 352 | 352 | disableProfiledLibs :: Flavour -> Flavour
|
| 353 | 353 | disableProfiledLibs flavour =
|
| 354 | - flavour { libraryWays = prune $ libraryWays flavour
|
|
| 354 | + flavour { libraryWays = prune . libraryWays flavour
|
|
| 355 | 355 | , rtsWays = prune $ rtsWays flavour
|
| 356 | 356 | }
|
| 357 | 357 | where
|
| ... | ... | @@ -473,9 +473,9 @@ hostFullyStatic flavour = |
| 473 | 473 | [ notM stage1 ? pure ws,
|
| 474 | 474 | stage1
|
| 475 | 475 | ? pure (ws `Set.difference` Set.fromList [dynamic, profilingDynamic, threadedDynamic, threadedDebugDynamic, threadedProfilingDynamic, threadedDebugProfilingDynamic, debugDynamic, debugProfilingDynamic])
|
| 476 | - ]
|
|
| 477 | - , libraryWays = do
|
|
| 478 | - ws <- libraryWays f
|
|
| 476 | + ]
|
|
| 477 | + , libraryWays = \stage -> do
|
|
| 478 | + ws <- libraryWays f stage
|
|
| 479 | 479 | mconcat
|
| 480 | 480 | [ notM stage1 ? pure ws,
|
| 481 | 481 | stage1
|
| ... | ... | @@ -29,7 +29,8 @@ data Flavour = Flavour { |
| 29 | 29 | textWithSIMDUTF :: Stage -- ^ stage of the /built/ compiler
|
| 30 | 30 | -> Action Bool,
|
| 31 | 31 | -- | Build libraries these ways.
|
| 32 | - libraryWays :: Ways,
|
|
| 32 | + libraryWays :: Stage -- ^ stage of the /built/ compiler
|
|
| 33 | + -> Ways,
|
|
| 33 | 34 | -- | Build RTS these ways.
|
| 34 | 35 | rtsWays :: Ways,
|
| 35 | 36 | -- | Build dynamic GHC programs.
|
| ... | ... | @@ -130,7 +130,7 @@ pkgHashOracle = void $ addOracleCache $ \(PkgHashKey (stag, pkg)) -> do |
| 130 | 130 | let pkgHashCompilerId = "ghc-" ++ projectVersion
|
| 131 | 131 | pkgHashPlatform = targetOs
|
| 132 | 132 | |
| 133 | - libWays <- interpretInContext vanilla_ctx (libraryWays flav)
|
|
| 133 | + libWays <- interpretInContext vanilla_ctx (libraryWays flav stag)
|
|
| 134 | 134 | dyn_ghc <- dynamicGhcPrograms flav stag
|
| 135 | 135 | flags <- interpret (target vanilla_ctx (Cabal Flags stag) [] []) getArgs
|
| 136 | 136 | let pkgHashFlagAssignment = flags
|
| ... | ... | @@ -38,7 +38,10 @@ getArgs :: Args |
| 38 | 38 | getArgs = mconcat [ defaultBuilderArgs, defaultPackageArgs, getExtraArgs ]
|
| 39 | 39 | |
| 40 | 40 | getLibraryWays :: Ways
|
| 41 | -getLibraryWays = expr flavour >>= libraryWays
|
|
| 41 | +getLibraryWays = do
|
|
| 42 | + flav <- expr flavour
|
|
| 43 | + stage <- getStage
|
|
| 44 | + libraryWays flav stage
|
|
| 42 | 45 | |
| 43 | 46 | getRtsWays :: Ways
|
| 44 | 47 | getRtsWays = expr flavour >>= rtsWays
|
| ... | ... | @@ -288,7 +288,7 @@ defaultFlavour = Flavour |
| 288 | 288 | , bignumBackend = defaultBignumBackend
|
| 289 | 289 | , bignumCheck = False
|
| 290 | 290 | , textWithSIMDUTF = const (return False)
|
| 291 | - , libraryWays = defaultLibraryWays
|
|
| 291 | + , libraryWays = const defaultLibraryWays
|
|
| 292 | 292 | , rtsWays = defaultRtsWays
|
| 293 | 293 | , dynamicGhcPrograms = defaultDynamicGhcPrograms
|
| 294 | 294 | , ghcProfiled = const False
|
| ... | ... | @@ -11,11 +11,11 @@ ghcInGhciFlavour :: Flavour |
| 11 | 11 | ghcInGhciFlavour = disableProfiledLibs $ defaultFlavour
|
| 12 | 12 | { name = "ghc-in-ghci"
|
| 13 | 13 | , extraArgs = ghciArgs
|
| 14 | - , libraryWays =
|
|
| 14 | + , libraryWays = \stage ->
|
|
| 15 | 15 | Set.fromList
|
| 16 | 16 | <$> mconcat
|
| 17 | 17 | [ pure [vanilla]
|
| 18 | - , platformSupportsSharedLibs ? pure [dynamic]
|
|
| 18 | + , targetSupportsSharedLibs stage ? pure [dynamic]
|
|
| 19 | 19 | ]
|
| 20 | 20 | }
|
| 21 | 21 |