GH-142234: Allow --enable-wasm-dynamic-linking under WASI (GH-142235)

While CPython doesn't support `--enable-wasm-dynamic-linking`, external tools like componentize-py do and they have to patch around it. Since the flag is off by default, allowing the flag so external users can add/inject dynamic linking support seems acceptable.
This commit is contained in:
Brett Cannon 2025-12-05 15:27:16 -08:00 committed by GitHub
parent d49e6f38a7
commit eba449a198
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 8 additions and 4 deletions

View file

@ -0,0 +1,3 @@
Allow ``--enable-wasm-dynamic-linking`` for WASI. While CPython doesn't
directly support it so external/downstream users do not have to patch in
support for the flag.

5
configure generated vendored
View file

@ -1824,7 +1824,8 @@ Optional Features:
no) no)
--enable-wasm-dynamic-linking --enable-wasm-dynamic-linking
Enable dynamic linking support for WebAssembly Enable dynamic linking support for WebAssembly
(default is no) (default is no); WASI requires an external dynamic
loader to handle imports
--enable-wasm-pthreads Enable pthread emulation for WebAssembly (default is --enable-wasm-pthreads Enable pthread emulation for WebAssembly (default is
no) no)
--enable-shared enable building a shared Python library (default is --enable-shared enable building a shared Python library (default is
@ -7415,7 +7416,7 @@ then :
Emscripten) : Emscripten) :
;; #( ;; #(
WASI) : WASI) :
as_fn_error $? "WASI dynamic linking is not implemented yet." "$LINENO" 5 ;; #( ;; #(
*) : *) :
as_fn_error $? "--enable-wasm-dynamic-linking only applies to Emscripten and WASI" "$LINENO" 5 as_fn_error $? "--enable-wasm-dynamic-linking only applies to Emscripten and WASI" "$LINENO" 5
;; ;;

View file

@ -1323,11 +1323,11 @@ dnl See https://emscripten.org/docs/compiling/Dynamic-Linking.html
AC_MSG_CHECKING([for --enable-wasm-dynamic-linking]) AC_MSG_CHECKING([for --enable-wasm-dynamic-linking])
AC_ARG_ENABLE([wasm-dynamic-linking], AC_ARG_ENABLE([wasm-dynamic-linking],
[AS_HELP_STRING([--enable-wasm-dynamic-linking], [AS_HELP_STRING([--enable-wasm-dynamic-linking],
[Enable dynamic linking support for WebAssembly (default is no)])], [Enable dynamic linking support for WebAssembly (default is no); WASI requires an external dynamic loader to handle imports])],
[ [
AS_CASE([$ac_sys_system], AS_CASE([$ac_sys_system],
[Emscripten], [], [Emscripten], [],
[WASI], [AC_MSG_ERROR([WASI dynamic linking is not implemented yet.])], [WASI], [],
[AC_MSG_ERROR([--enable-wasm-dynamic-linking only applies to Emscripten and WASI])] [AC_MSG_ERROR([--enable-wasm-dynamic-linking only applies to Emscripten and WASI])]
) )
], [ ], [