diff --git a/compiler/GHC/Platform.hs b/compiler/GHC/Platform.hs index 42f2aa041e33b9f3c0c4e3ccd064cb725b0f7a6a..da74d324e54acb295edc1d1c9732864cbac12efb 100644 --- a/compiler/GHC/Platform.hs +++ b/compiler/GHC/Platform.hs @@ -253,7 +253,6 @@ platformHasRTSLinker p = case archOS_arch (platformArchOS p) of ArchRISCV64 -> False ArchLoongArch64 -> False ArchJavaScript -> False - ArchWasm32 -> False _ -> True diff --git a/hadrian/src/Oracles/Flag.hs b/hadrian/src/Oracles/Flag.hs index af4e268fb85d365f8f3e5d0e7f725058fe69b6c8..2ca3d0f0507b3f8f1baa294a160360f0a0d46a13 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 5d7e19baa604188bcc73f4ecb43aa38cffae3d47..0e2e48bc187458923daaedc850326e9d6dbd5f84 100644 --- a/hadrian/src/Oracles/Setting.hs +++ b/hadrian/src/Oracles/Setting.hs @@ -198,12 +198,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 8d47882f1cdd5b720af92c1fe9f4bd4434eb533a..81e2b22c76cb579eb1e07664fa348ce2b48de55a 100644 --- a/hadrian/src/Settings/Builders/RunTest.hs +++ b/hadrian/src/Settings/Builders/RunTest.hs @@ -141,7 +141,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", "riscv64", "loongarch64", "javascript", "wasm32"] + let rtsLinker = not $ arch `elem` ["powerpc", "powerpc64", "powerpc64le", "s390x", "riscv64", "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 )