diff --git a/compiler/GHC/Platform.hs b/compiler/GHC/Platform.hs index 57b27f1ac27395136f00f3eeb4f3dcdd8958674e..f7cb79c7fadf50bc98f11520fc6fca93bdfec187 100644 --- a/compiler/GHC/Platform.hs +++ b/compiler/GHC/Platform.hs @@ -256,7 +256,6 @@ platformHasRTSLinker p = case archOS_arch (platformArchOS p) of ArchS390X -> False ArchLoongArch64 -> False ArchJavaScript -> False - ArchWasm32 -> False _ -> True diff --git a/hadrian/src/Oracles/Flag.hs b/hadrian/src/Oracles/Flag.hs index 5f2d66f7ec3415b5668e1dd5bbed81d424760013..e1328150c1045d61fc16c5ac3f5670cb7fb9455f 100644 --- a/hadrian/src/Oracles/Flag.hs +++ b/hadrian/src/Oracles/Flag.hs @@ -110,11 +110,10 @@ platformSupportsSharedLibs :: Action Bool -- FIXME: This is querying about the target but is named "platformXXX", targetSupportsSharedLibs would be better platformSupportsSharedLibs = do windows <- isWinTarget - wasm <- anyTargetArch [ ArchWasm32 ] ppc_linux <- (&&) <$> anyTargetArch [ ArchPPC ] <*> anyTargetOs [ OSLinux ] solaris <- (&&) <$> anyTargetArch [ ArchX86 ] <*> anyTargetOs [ OSSolaris2 ] javascript <- anyTargetArch [ ArchJavaScript ] - return $ not (windows || wasm || javascript || ppc_linux || solaris) + return $ not (windows || javascript || ppc_linux || solaris) -- | Does the target support threaded RTS? targetSupportsThreadedRts :: Action Bool diff --git a/hadrian/src/Oracles/Setting.hs b/hadrian/src/Oracles/Setting.hs index ea91a450fa0cc10f00cb3425c0cf38ae7f2d887f..5818750e4073ddd6b88fe329e80923c7e1b88ebd 100644 --- a/hadrian/src/Oracles/Setting.hs +++ b/hadrian/src/Oracles/Setting.hs @@ -200,12 +200,14 @@ ghcWithInterpreter :: Action Bool ghcWithInterpreter = do goodOs <- anyTargetOs [ OSMinGW32, OSLinux, OSSolaris2 -- TODO "cygwin32"?, , OSFreeBSD, OSDragonFly, OSNetBSD, OSOpenBSD - , OSDarwin, OSKFreeBSD ] + , OSDarwin, OSKFreeBSD + , OSWasi ] goodArch <- (||) <$> anyTargetArch [ ArchX86, ArchX86_64, ArchPPC , ArchAArch64, ArchS390X , ArchPPC_64 ELF_V1, ArchPPC_64 ELF_V2 - , ArchRISCV64 ] + , ArchRISCV64 + , ArchWasm32 ] <*> isArmTarget return $ goodOs && goodArch diff --git a/hadrian/src/Settings/Builders/RunTest.hs b/hadrian/src/Settings/Builders/RunTest.hs index 316a9ea6c8eee079ae34562aac2b9e7f7e6d03e9..8032f002af2e8bc6c3942a4d1675917500d20a77 100644 --- a/hadrian/src/Settings/Builders/RunTest.hs +++ b/hadrian/src/Settings/Builders/RunTest.hs @@ -142,7 +142,7 @@ inTreeCompilerArgs stg = do -- For this information, we need to query ghc --info, however, that would -- require building ghc, which we don't want to do here. Therefore, the -- logic from `platformHasRTSLinker` is duplicated here. - let rtsLinker = not $ arch `elem` ["powerpc", "powerpc64", "powerpc64le", "s390x", "loongarch64", "javascript", "wasm32"] + let rtsLinker = not $ arch `elem` ["powerpc", "powerpc64", "powerpc64le", "s390x", "loongarch64", "javascript"] return TestCompilerArgs{..} diff --git a/testsuite/tests/driver/T20696/T20696-static.stderr-wasm32-unknown-wasi b/testsuite/tests/driver/T20696/T20696-static.stderr-wasm32-unknown-wasi new file mode 100644 index 0000000000000000000000000000000000000000..54d5ad5bddccd8c22eccf1b57993d2d0ebacbe71 --- /dev/null +++ b/testsuite/tests/driver/T20696/T20696-static.stderr-wasm32-unknown-wasi @@ -0,0 +1,3 @@ +[1 of 3] Compiling C ( C.hs, C.o, C.dyn_o ) +[2 of 3] Compiling B ( B.hs, B.o ) +[3 of 3] Compiling A ( A.hs, A.o )