[Git][ghc/ghc][wip/supersven/hadrian-cross-stage3] Fix: Use library stage for some settings
Sven Tennie pushed to branch wip/supersven/hadrian-cross-stage3 at Glasgow Haskell Compiler / GHC Commits: deb65bee by GHC GitLab CI at 2026-07-28T09:49:57+02:00 Fix: Use library stage for some settings - - - - - 1 changed file: - hadrian/src/Rules/Generate.hs Changes: ===================================== hadrian/src/Rules/Generate.hs ===================================== @@ -483,24 +483,24 @@ bindistRules = do ("distrib" -/- "configure.ac" <.> "in") (root -/- stageString stage -/- "distrib" -/- "configure.ac") $ mconcat - [ interpolateSetting "ConfiguredEmsdkVersion" EmsdkVersion - , interpolateVar "LeadingUnderscore" $ yesNo <$> getTarget stage tgtSymbolsHaveLeadingUnderscore - , interpolateSetting "LlvmMaxVersion" LlvmMaxVersion - , interpolateSetting "LlvmMinVersion" LlvmMinVersion - , interpolateVar "LlvmTarget" $ getTarget stage tgtLlvmTarget - , interpolateSetting "ProjectVersion" ProjectVersion - , interpolateVar "EnableDistroToolchain" $ interp (staged (lookupStageBuildConfig "settings-use-distro-mingw")) - , interpolateVar "TablesNextToCode" $ yesNo <$> getTarget stage tgtTablesNextToCode - , interpolateVar "TargetHasLibm" $ yesNo <$> getTarget stage tgtHasLibm - , interpolateVar "TargetPlatform" $ getTarget stage targetPlatformTriple - , interpolateVar "TargetWordBigEndian" $ getTarget stage isBigEndian - , interpolateVar "TargetWordSize" $ getTarget stage wordSize - , interpolateVar "Unregisterised" $ yesNo <$> getTarget stage tgtUnregisterised - , interpolateVar "UseLibdw" $ fmap yesNo $ interp $ staged (fmap (isJust . tgtRTSWithLibdw) . targetStage) - , interpolateVar "UseLibffiForAdjustors" $ yesNo <$> getTarget stage tgtUseLibffiForAdjustors - , interpolateVar "GhcWithSMP" $ yesNo <$> targetSupportsSMP stage - , crossStageInterps - ] + [ interpolateSetting "ConfiguredEmsdkVersion" EmsdkVersion + , interpolateVar "LeadingUnderscore" $ yesNo <$> getLibTarget stage tgtSymbolsHaveLeadingUnderscore + , interpolateSetting "LlvmMaxVersion" LlvmMaxVersion + , interpolateSetting "LlvmMinVersion" LlvmMinVersion + , interpolateVar "LlvmTarget" $ getLibTarget stage tgtLlvmTarget + , interpolateSetting "ProjectVersion" ProjectVersion + , interpolateVar "EnableDistroToolchain" $ interp (staged (lookupStageBuildConfig "settings-use-distro-mingw")) + , interpolateVar "TablesNextToCode" $ yesNo <$> getLibTarget stage tgtTablesNextToCode + , interpolateVar "TargetHasLibm" $ yesNo <$> getLibTarget stage tgtHasLibm + , interpolateVar "TargetPlatform" $ getLibTarget stage targetPlatformTriple + , interpolateVar "TargetWordBigEndian" $ getLibTarget stage isBigEndian + , interpolateVar "TargetWordSize" $ getLibTarget stage wordSize + , interpolateVar "Unregisterised" $ yesNo <$> getLibTarget stage tgtUnregisterised + , interpolateVar "UseLibdw" $ yesNo <$> getLibTarget stage (isJust . tgtRTSWithLibdw) + , interpolateVar "UseLibffiForAdjustors" $ yesNo <$> getLibTarget stage tgtUseLibffiForAdjustors + , interpolateVar "GhcWithSMP" $ yesNo <$> libStageSupportsSMP stage + , crossStageInterps + ] -- We can build two kinds of bindists: Regular Stage2 (including -- cross-compilers) and fully cross-compiled Stage3. To avoid @@ -555,6 +555,13 @@ bindistRules = do where interp = interpretInContext (semiEmptyTarget Stage2) getTarget stage = interp . queryTarget stage + getLibTarget executableStage f = do + isCross <- crossStage executableStage + getTarget (if isCross then succStage executableStage else executableStage) f + -- | 'targetSupportsSMP' lifted to the library stage (see 'getLibTarget'). + libStageSupportsSMP stage = do + isCross <- crossStage stage + targetSupportsSMP (if isCross then succStage stage else stage) -- | Given a 'String' replace characters '.' and '-' by underscores ('_') so that -- the resulting 'String' is a valid C preprocessor identifier. View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/deb65bee304001d598308edc30edcf74... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/deb65bee304001d598308edc30edcf74... You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
participants (1)
-
Sven Tennie (@supersven)