]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-111046: for wasi-threads, export memory as well via the linker (GH-111099)
authorYAMAMOTO Takashi <yamamoto@midokura.com>
Fri, 20 Oct 2023 21:54:03 +0000 (06:54 +0900)
committerGitHub <noreply@github.com>
Fri, 20 Oct 2023 21:54:03 +0000 (14:54 -0700)
Misc/NEWS.d/next/Build/2023-10-20-15-29-31.gh-issue-111046.2DxQl8.rst [new file with mode: 0644]
configure
configure.ac

diff --git a/Misc/NEWS.d/next/Build/2023-10-20-15-29-31.gh-issue-111046.2DxQl8.rst b/Misc/NEWS.d/next/Build/2023-10-20-15-29-31.gh-issue-111046.2DxQl8.rst
new file mode 100644 (file)
index 0000000..446b8b6
--- /dev/null
@@ -0,0 +1 @@
+For wasi-threads, memory is now exported to fix compatibility issues with some wasm runtimes.
index c87f518382f2ece0f898a875c212ef3309ffd98a..3bf92ddb8fcb40c6bbfc09f452245a863a902841 100755 (executable)
--- a/configure
+++ b/configure
@@ -9268,10 +9268,15 @@ then :
       # without this, configure fails to find pthread_create, sem_init,
       # etc because they are only available in the sysroot for
       # wasm32-wasi-threads.
+      # Note: wasi-threads requires --import-memory.
+      # Note: wasi requires --export-memory.
+      # Note: --export-memory is implicit unless --import-memory is given
+      # Note: this requires LLVM >= 16.
       as_fn_append CFLAGS " -target wasm32-wasi-threads -pthread"
       as_fn_append CFLAGS_NODIST " -target wasm32-wasi-threads -pthread"
       as_fn_append LDFLAGS_NODIST " -target wasm32-wasi-threads -pthread"
       as_fn_append LDFLAGS_NODIST " -Wl,--import-memory"
+      as_fn_append LDFLAGS_NODIST " -Wl,--export-memory"
       as_fn_append LDFLAGS_NODIST " -Wl,--max-memory=10485760"
 
 fi
index cd69f0ede5449630628b471f69d6101fee7fdea1..daa59b2737bae99d44368d8107da4541a1b034be 100644 (file)
@@ -2162,10 +2162,15 @@ AS_CASE([$ac_sys_system],
       # without this, configure fails to find pthread_create, sem_init,
       # etc because they are only available in the sysroot for
       # wasm32-wasi-threads.
+      # Note: wasi-threads requires --import-memory.
+      # Note: wasi requires --export-memory.
+      # Note: --export-memory is implicit unless --import-memory is given
+      # Note: this requires LLVM >= 16.
       AS_VAR_APPEND([CFLAGS], [" -target wasm32-wasi-threads -pthread"])
       AS_VAR_APPEND([CFLAGS_NODIST], [" -target wasm32-wasi-threads -pthread"])
       AS_VAR_APPEND([LDFLAGS_NODIST], [" -target wasm32-wasi-threads -pthread"])
       AS_VAR_APPEND([LDFLAGS_NODIST], [" -Wl,--import-memory"])
+      AS_VAR_APPEND([LDFLAGS_NODIST], [" -Wl,--export-memory"])
       AS_VAR_APPEND([LDFLAGS_NODIST], [" -Wl,--max-memory=10485760"])
     ])