Cheng Shao pushed to branch wip/14554-wasm-fix at Glasgow Haskell Compiler / GHC
WARNING: The push did not contain any new commits, but force pushed to delete the commits and changes below.
Deleted commits:
-
da99e918
by Rodrigo Mesquita at 2025-08-23T19:21:31+02:00
5 changed files:
- compiler/GHC/Driver/Session.hs
- hadrian/bindist/Makefile
- hadrian/src/Oracles/Flag.hs
- hadrian/src/Rules/Generate.hs
- utils/ghc-toolchain/src/GHC/Toolchain/Target.hs
Changes:
| ... | ... | @@ -3547,6 +3547,7 @@ compilerInfo dflags |
| 3547 | 3547 | -- If true, we require that the 'id' field in installed package info
|
| 3548 | 3548 | -- match what is passed to the @-this-unit-id@ flag for modules
|
| 3549 | 3549 | -- built in it
|
| 3550 | + ("Support SMP", queryBool tgtSupportsSMP),
|
|
| 3550 | 3551 | ("Requires unified installed package IDs", "YES"),
|
| 3551 | 3552 | -- Whether or not we support the @-this-package-key@ flag. Prefer
|
| 3552 | 3553 | -- "Uses unit IDs" over it. We still say yes even if @-this-package-key@
|
| ... | ... | @@ -88,7 +88,6 @@ lib/settings : config.mk |
| 88 | 88 | @echo '[("unlit command", "$$topdir/../bin/$(CrossCompilePrefix)unlit")' >> $@
|
| 89 | 89 | @echo ',("target RTS linker only supports shared libraries", "$(TargetRTSLinkerOnlySupportsSharedLibs)")' >> $@
|
| 90 | 90 | @echo ',("Use interpreter", "$(GhcWithInterpreter)")' >> $@
|
| 91 | - @echo ',("Support SMP", "$(GhcWithSMP)")' >> $@
|
|
| 92 | 91 | @echo ',("RTS ways", "$(GhcRTSWays)")' >> $@
|
| 93 | 92 | @echo ',("Relative Global Package DB", "package.conf.d")' >> $@
|
| 94 | 93 | @echo ',("base unit-id", "$(BaseUnitId)")' >> $@
|
| ... | ... | @@ -121,27 +121,7 @@ targetSupportsThreadedRts = do |
| 121 | 121 | |
| 122 | 122 | -- | Does the target support the -N RTS flag?
|
| 123 | 123 | targetSupportsSMP :: Action Bool
|
| 124 | -targetSupportsSMP = do
|
|
| 125 | - unreg <- queryTargetTarget tgtUnregisterised
|
|
| 126 | - armVer <- targetArmVersion
|
|
| 127 | - goodArch <- (||) <$>
|
|
| 128 | - anyTargetArch [ ArchX86
|
|
| 129 | - , ArchX86_64
|
|
| 130 | - , ArchPPC
|
|
| 131 | - , ArchPPC_64 ELF_V1
|
|
| 132 | - , ArchPPC_64 ELF_V2
|
|
| 133 | - , ArchAArch64
|
|
| 134 | - , ArchS390X
|
|
| 135 | - , ArchRISCV64
|
|
| 136 | - , ArchLoongArch64 ] <*> isArmTarget
|
|
| 137 | - if -- The THREADED_RTS requires `BaseReg` to be in a register and the
|
|
| 138 | - -- Unregisterised mode doesn't allow that.
|
|
| 139 | - | unreg -> return False
|
|
| 140 | - -- We don't support load/store barriers pre-ARMv7. See #10433.
|
|
| 141 | - | Just ver <- armVer
|
|
| 142 | - , ver < ARMv7 -> return False
|
|
| 143 | - | goodArch -> return True
|
|
| 144 | - | otherwise -> return False
|
|
| 124 | +targetSupportsSMP = queryTargetTarget Toolchain.tgtSupportsSMP
|
|
| 145 | 125 | |
| 146 | 126 | useLibffiForAdjustors :: Action Bool
|
| 147 | 127 | useLibffiForAdjustors = queryTargetTarget tgtUseLibffiForAdjustors
|
| ... | ... | @@ -486,7 +486,6 @@ generateSettings settingsFile = do |
| 486 | 486 | [ ("unlit command", ("$topdir/../bin/" <>) <$> expr (programName (ctx { Context.package = unlit })))
|
| 487 | 487 | , ("target RTS linker only supports shared libraries", expr $ yesNo <$> targetRTSLinkerOnlySupportsSharedLibs)
|
| 488 | 488 | , ("Use interpreter", expr $ yesNo <$> ghcWithInterpreter (predStage stage))
|
| 489 | - , ("Support SMP", expr $ yesNo <$> targetSupportsSMP)
|
|
| 490 | 489 | , ("RTS ways", escapeArgs . map show . Set.toList <$> getRtsWays)
|
| 491 | 490 | , ("Relative Global Package DB", pure rel_pkg_db)
|
| 492 | 491 | , ("base unit-id", pure base_unit_id)
|
| 1 | 1 | {-# LANGUAGE RecordWildCards #-}
|
| 2 | 2 | {-# LANGUAGE NamedFieldPuns #-}
|
| 3 | +{-# LANGUAGE MultiWayIf #-}
|
|
| 3 | 4 | module GHC.Toolchain.Target
|
| 4 | 5 | (
|
| 5 | 6 | -- * A Toolchain Target
|
| ... | ... | @@ -7,6 +8,9 @@ module GHC.Toolchain.Target |
| 7 | 8 | |
| 8 | 9 | , WordSize(..), wordSize2Bytes
|
| 9 | 10 | |
| 11 | + -- ** Queries
|
|
| 12 | + , tgtSupportsSMP
|
|
| 13 | + |
|
| 10 | 14 | -- ** Lenses
|
| 11 | 15 | , _tgtCC, _tgtCxx, _tgtCpp, _tgtHsCpp
|
| 12 | 16 | |
| ... | ... | @@ -151,6 +155,34 @@ instance Show Target where |
| 151 | 155 | , "}"
|
| 152 | 156 | ]
|
| 153 | 157 | |
| 158 | +--------------------------------------------------------------------------------
|
|
| 159 | +-- Queries
|
|
| 160 | +--------------------------------------------------------------------------------
|
|
| 161 | + |
|
| 162 | +tgtSupportsSMP :: Target -> Bool
|
|
| 163 | +tgtSupportsSMP Target{..} = do
|
|
| 164 | + let goodArch =
|
|
| 165 | + isARM (archOS_arch tgtArchOs)
|
|
| 166 | + || archOS_arch tgtArchOs `elem`
|
|
| 167 | + [ ArchX86
|
|
| 168 | + , ArchX86_64
|
|
| 169 | + , ArchPPC
|
|
| 170 | + , ArchPPC_64 ELF_V1
|
|
| 171 | + , ArchPPC_64 ELF_V2
|
|
| 172 | + , ArchAArch64
|
|
| 173 | + , ArchS390X
|
|
| 174 | + , ArchRISCV64
|
|
| 175 | + , ArchLoongArch64 ]
|
|
| 176 | + |
|
| 177 | + if -- The THREADED_RTS requires `BaseReg` to be in a register and the
|
|
| 178 | + -- Unregisterised mode doesn't allow that.
|
|
| 179 | + | tgtUnregisterised -> False
|
|
| 180 | + -- We don't support load/store barriers pre-ARMv7. See #10433.
|
|
| 181 | + | ArchARM ver _ _ <- archOS_arch tgtArchOs
|
|
| 182 | + , ver < ARMv7 -> False
|
|
| 183 | + | goodArch -> True
|
|
| 184 | + | otherwise -> False
|
|
| 185 | + |
|
| 154 | 186 | --------------------------------------------------------------------------------
|
| 155 | 187 | -- Lenses
|
| 156 | 188 | --------------------------------------------------------------------------------
|