[Git][ghc/ghc][wip/romes/hadrian-cross-stage2-rebase_SVEN_FINAL] Rebase fixup: staged libraryWays
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 Rebase fixup: staged libraryWays libraryWays depends on the architecture supporting shared libs. This is stage dependend for cross-compilers (host and target could have different properties). - - - - - 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: ===================================== hadrian/src/Flavour.hs ===================================== @@ -325,7 +325,7 @@ disableDynamicGhcPrograms flavour = flavour { dynamicGhcPrograms = const (pure F -- | Don't build libraries in dynamic 'Way's. disableDynamicLibs :: Flavour -> Flavour disableDynamicLibs flavour = - flavour { libraryWays = prune $ libraryWays flavour, + flavour { libraryWays = prune . libraryWays flavour, rtsWays = prune $ rtsWays flavour, dynamicGhcPrograms = const (pure False) } @@ -338,7 +338,7 @@ disableDynamicLibs flavour = enableProfiledLibs :: Flavour -> Flavour enableProfiledLibs flavour = flavour - { libraryWays = addProfilingWays $ libraryWays flavour, + { libraryWays = addProfilingWays . libraryWays flavour, rtsWays = addProfilingWays $ rtsWays flavour } where @@ -351,7 +351,7 @@ enableProfiledLibs flavour = -- | Don't build libraries in profiled 'Way's. disableProfiledLibs :: Flavour -> Flavour disableProfiledLibs flavour = - flavour { libraryWays = prune $ libraryWays flavour + flavour { libraryWays = prune . libraryWays flavour , rtsWays = prune $ rtsWays flavour } where @@ -473,9 +473,9 @@ hostFullyStatic flavour = [ notM stage1 ? pure ws, stage1 ? pure (ws `Set.difference` Set.fromList [dynamic, profilingDynamic, threadedDynamic, threadedDebugDynamic, threadedProfilingDynamic, threadedDebugProfilingDynamic, debugDynamic, debugProfilingDynamic]) - ] - , libraryWays = do - ws <- libraryWays f + ] + , libraryWays = \stage -> do + ws <- libraryWays f stage mconcat [ notM stage1 ? pure ws, stage1 ===================================== hadrian/src/Flavour/Type.hs ===================================== @@ -29,7 +29,8 @@ data Flavour = Flavour { textWithSIMDUTF :: Stage -- ^ stage of the /built/ compiler -> Action Bool, -- | Build libraries these ways. - libraryWays :: Ways, + libraryWays :: Stage -- ^ stage of the /built/ compiler + -> Ways, -- | Build RTS these ways. rtsWays :: Ways, -- | Build dynamic GHC programs. ===================================== hadrian/src/Hadrian/Haskell/Hash.hs ===================================== @@ -130,7 +130,7 @@ pkgHashOracle = void $ addOracleCache $ \(PkgHashKey (stag, pkg)) -> do let pkgHashCompilerId = "ghc-" ++ projectVersion pkgHashPlatform = targetOs - libWays <- interpretInContext vanilla_ctx (libraryWays flav) + libWays <- interpretInContext vanilla_ctx (libraryWays flav stag) dyn_ghc <- dynamicGhcPrograms flav stag flags <- interpret (target vanilla_ctx (Cabal Flags stag) [] []) getArgs let pkgHashFlagAssignment = flags ===================================== hadrian/src/Settings.hs ===================================== @@ -38,7 +38,10 @@ getArgs :: Args getArgs = mconcat [ defaultBuilderArgs, defaultPackageArgs, getExtraArgs ] getLibraryWays :: Ways -getLibraryWays = expr flavour >>= libraryWays +getLibraryWays = do + flav <- expr flavour + stage <- getStage + libraryWays flav stage getRtsWays :: Ways getRtsWays = expr flavour >>= rtsWays ===================================== hadrian/src/Settings/Default.hs ===================================== @@ -288,7 +288,7 @@ defaultFlavour = Flavour , bignumBackend = defaultBignumBackend , bignumCheck = False , textWithSIMDUTF = const (return False) - , libraryWays = defaultLibraryWays + , libraryWays = const defaultLibraryWays , rtsWays = defaultRtsWays , dynamicGhcPrograms = defaultDynamicGhcPrograms , ghcProfiled = const False ===================================== hadrian/src/Settings/Flavours/GhcInGhci.hs ===================================== @@ -11,11 +11,11 @@ ghcInGhciFlavour :: Flavour ghcInGhciFlavour = disableProfiledLibs $ defaultFlavour { name = "ghc-in-ghci" , extraArgs = ghciArgs - , libraryWays = + , libraryWays = \stage -> Set.fromList <$> mconcat [ pure [vanilla] - , platformSupportsSharedLibs ? pure [dynamic] + , targetSupportsSharedLibs stage ? pure [dynamic] ] } View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/385bdab509f8440c1608a3648e687b03... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/385bdab509f8440c1608a3648e687b03... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
Sven Tennie (@supersven)