From 895a3866798bccf9aec6da980c64fe6e6c2b9bb3 Mon Sep 17 00:00:00 2001 From: Cheng Shao <terrorjack@type.dance> Date: Thu, 3 Oct 2024 16:46:15 +0000 Subject: [PATCH] hadrian/compiler: flip on support for shared libs & ghci for wasm This commit flips on the support for shared libs and ghci for the wasm target, given all required support logic has been added in previous commits. (cherry picked from commit 652e72394b715abc931b1104a4b683bb16909695) --- compiler/GHC/Platform.hs | 1 - hadrian/src/Oracles/Flag.hs | 3 +-- hadrian/src/Oracles/Setting.hs | 6 ++++-- hadrian/src/Settings/Builders/RunTest.hs | 2 +- .../driver/T20696/T20696-static.stderr-wasm32-unknown-wasi | 3 +++ 5 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 testsuite/tests/driver/T20696/T20696-static.stderr-wasm32-unknown-wasi diff --git a/compiler/GHC/Platform.hs b/compiler/GHC/Platform.hs index 42f2aa041e3..da74d324e54 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 af4e268fb85..2ca3d0f0507 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 e742b49717c..41ed3eae1a2 100644 --- a/hadrian/src/Oracles/Setting.hs +++ b/hadrian/src/Oracles/Setting.hs @@ -196,12 +196,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 8d47882f1cd..81e2b22c76c 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 00000000000..54d5ad5bddc --- /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 ) -- GitLab