From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Fri, 20 Oct 2023 22:23:15 +0000 (+0200) Subject: [3.12] gh-111046: for wasi-threads, export memory as well via the linker (GH-111099... X-Git-Tag: v3.12.1~252 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=727f8ee31cadf196ecab51762b2e84a884470618;p=thirdparty%2FPython%2Fcpython.git [3.12] gh-111046: for wasi-threads, export memory as well via the linker (GH-111099) (GH-111141) gh-111046: for wasi-threads, export memory as well via the linker (GH-111099) (cherry picked from commit 5dfa71769f547fffa893a89b0b04d963a41b2441) Co-authored-by: YAMAMOTO Takashi --- 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 index 000000000000..446b8b612862 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2023-10-20-15-29-31.gh-issue-111046.2DxQl8.rst @@ -0,0 +1 @@ +For wasi-threads, memory is now exported to fix compatibility issues with some wasm runtimes. diff --git a/configure b/configure index 0240ff86dccb..7c3250729c89 100755 --- a/configure +++ b/configure @@ -9439,10 +9439,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 diff --git a/configure.ac b/configure.ac index 34e0653623dd..3afa9aca8bbd 100644 --- a/configure.ac +++ b/configure.ac @@ -2326,10 +2326,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"]) ])