mirror of
https://github.com/python/cpython.git
synced 2025-07-23 19:25:40 +00:00
bpo-40280: Build WASM stdlib bundle and more modules for node (GH-30597)
This commit is contained in:
parent
7c770d3350
commit
c8319f7921
3 changed files with 55 additions and 24 deletions
|
@ -2399,6 +2399,7 @@ clean-retain-profile: pycremoval
|
||||||
-rm -f Lib/lib2to3/*Grammar*.pickle
|
-rm -f Lib/lib2to3/*Grammar*.pickle
|
||||||
-rm -f _bootstrap_python
|
-rm -f _bootstrap_python
|
||||||
-rm -f python.html python*.js python.data
|
-rm -f python.html python*.js python.data
|
||||||
|
-rm -rf $(WASM_STDLIB)
|
||||||
-rm -f Programs/_testembed Programs/_freeze_module
|
-rm -f Programs/_testembed Programs/_freeze_module
|
||||||
-rm -f Python/deepfreeze/*.[co]
|
-rm -f Python/deepfreeze/*.[co]
|
||||||
-rm -f Python/frozen_modules/*.h
|
-rm -f Python/frozen_modules/*.h
|
||||||
|
|
34
configure
vendored
34
configure
vendored
|
@ -6577,7 +6577,13 @@ fi
|
||||||
$as_echo "$LDLIBRARY" >&6; }
|
$as_echo "$LDLIBRARY" >&6; }
|
||||||
|
|
||||||
# LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable
|
# LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable
|
||||||
LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)'
|
case $ac_sys_system/$ac_sys_emscripten_target in #(
|
||||||
|
Emscripten/browser) :
|
||||||
|
LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB)' ;; #(
|
||||||
|
*) :
|
||||||
|
LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
LINK_PYTHON_DEPS='$(LIBRARY_DEPS)'
|
LINK_PYTHON_DEPS='$(LIBRARY_DEPS)'
|
||||||
if test "$PY_ENABLE_SHARED" = 1 || test "$enable_framework" ; then
|
if test "$PY_ENABLE_SHARED" = 1 || test "$enable_framework" ; then
|
||||||
LIBRARY_DEPS="\$(LDLIBRARY) $LIBRARY_DEPS"
|
LIBRARY_DEPS="\$(LDLIBRARY) $LIBRARY_DEPS"
|
||||||
|
@ -7669,14 +7675,14 @@ fi
|
||||||
case $ac_sys_system/$ac_sys_emscripten_target in #(
|
case $ac_sys_system/$ac_sys_emscripten_target in #(
|
||||||
Emscripten/browser) :
|
Emscripten/browser) :
|
||||||
|
|
||||||
LDFLAGS_NODIST="$(LDFLAGS_NODIST) -s ASSERTIONS=1 -s ALLOW_MEMORY_GROWTH=1 --preload-file \$(WASM_ASSETS_DIR)"
|
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ASSERTIONS=1 -s ALLOW_MEMORY_GROWTH=1 --preload-file \$(WASM_ASSETS_DIR)"
|
||||||
WASM_ASSETS_DIR=".\$(prefix)"
|
WASM_ASSETS_DIR=".\$(prefix)"
|
||||||
WASM_STDLIB="\$(WASM_ASSETS_DIR)/local/lib/python\$(VERSION)/os.py"
|
WASM_STDLIB="\$(WASM_ASSETS_DIR)/local/lib/python\$(VERSION)/os.py"
|
||||||
;; #(
|
;; #(
|
||||||
Emscripten/node) :
|
Emscripten/node) :
|
||||||
|
|
||||||
LDFLAGS_NODIST="$(LDFLAGS_NODIST) -s ASSERTIONS=1 -s ALLOW_MEMORY_GROWTH=1 -s NODERAWFS=1 -s EXIT_RUNTIME=1 -s USE_PTHREADS -s PROXY_TO_PTHREAD"
|
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ASSERTIONS=1 -s ALLOW_MEMORY_GROWTH=1 -s NODERAWFS=1 -s EXIT_RUNTIME=1 -s USE_PTHREADS -s PROXY_TO_PTHREAD"
|
||||||
CFLAGS_NODIST="$(CFLAGS_NODIST) -pthread"
|
CFLAGS_NODIST="$CFLAGS_NODIST -pthread"
|
||||||
;; #(
|
;; #(
|
||||||
WASI) :
|
WASI) :
|
||||||
|
|
||||||
|
@ -21294,22 +21300,26 @@ $as_echo "yes" >&6; }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
case $ac_sys_system in #(
|
case $ac_sys_system/$ac_sys_emscripten_target in #(
|
||||||
AIX) :
|
AIX/*) :
|
||||||
py_stdlib_not_available="_scproxy spwd" ;; #(
|
py_stdlib_not_available="_scproxy spwd" ;; #(
|
||||||
VxWorks*) :
|
VxWorks*/*) :
|
||||||
py_stdlib_not_available="_scproxy _crypt termios grp" ;; #(
|
py_stdlib_not_available="_scproxy _crypt termios grp" ;; #(
|
||||||
Darwin) :
|
Darwin/*) :
|
||||||
py_stdlib_not_available="ossaudiodev spwd" ;; #(
|
py_stdlib_not_available="ossaudiodev spwd" ;; #(
|
||||||
CYGWIN*) :
|
CYGWIN*/*) :
|
||||||
py_stdlib_not_available="_scproxy nis" ;; #(
|
py_stdlib_not_available="_scproxy nis" ;; #(
|
||||||
QNX*) :
|
QNX*/*) :
|
||||||
py_stdlib_not_available="_scproxy nis" ;; #(
|
py_stdlib_not_available="_scproxy nis" ;; #(
|
||||||
FreeBSD*) :
|
FreeBSD*/*) :
|
||||||
py_stdlib_not_available="_scproxy spwd" ;; #(
|
py_stdlib_not_available="_scproxy spwd" ;; #(
|
||||||
Emscripten) :
|
Emscripten/browser) :
|
||||||
|
|
||||||
py_stdlib_not_available="_ctypes _curses _curses_panel _dbm _gdbm _multiprocessing _posixshmem _posixsubprocess _scproxy _tkinter _xxsubinterpreters fcntl grp nis ossaudiodev resource readline spwd syslog termios"
|
py_stdlib_not_available="_ctypes _curses _curses_panel _dbm _gdbm _multiprocessing _posixshmem _posixsubprocess _scproxy _tkinter _xxsubinterpreters fcntl grp nis ossaudiodev resource readline spwd syslog termios"
|
||||||
|
;; #(
|
||||||
|
Emscripten/node) :
|
||||||
|
|
||||||
|
py_stdlib_not_available="_ctypes _curses _curses_panel _dbm _gdbm _scproxy _tkinter nis ossaudiodev spwd syslog"
|
||||||
;; #(
|
;; #(
|
||||||
*) :
|
*) :
|
||||||
py_stdlib_not_available="_scproxy"
|
py_stdlib_not_available="_scproxy"
|
||||||
|
|
44
configure.ac
44
configure.ac
|
@ -1354,7 +1354,10 @@ fi
|
||||||
AC_MSG_RESULT($LDLIBRARY)
|
AC_MSG_RESULT($LDLIBRARY)
|
||||||
|
|
||||||
# LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable
|
# LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable
|
||||||
LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)'
|
AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
|
||||||
|
[Emscripten/browser], [LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB)'],
|
||||||
|
[LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)']
|
||||||
|
)
|
||||||
LINK_PYTHON_DEPS='$(LIBRARY_DEPS)'
|
LINK_PYTHON_DEPS='$(LIBRARY_DEPS)'
|
||||||
if test "$PY_ENABLE_SHARED" = 1 || test "$enable_framework" ; then
|
if test "$PY_ENABLE_SHARED" = 1 || test "$enable_framework" ; then
|
||||||
LIBRARY_DEPS="\$(LDLIBRARY) $LIBRARY_DEPS"
|
LIBRARY_DEPS="\$(LDLIBRARY) $LIBRARY_DEPS"
|
||||||
|
@ -1839,13 +1842,13 @@ fi
|
||||||
# WASM flags
|
# WASM flags
|
||||||
AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
|
AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
|
||||||
[Emscripten/browser], [
|
[Emscripten/browser], [
|
||||||
LDFLAGS_NODIST="$(LDFLAGS_NODIST) -s ASSERTIONS=1 -s ALLOW_MEMORY_GROWTH=1 --preload-file \$(WASM_ASSETS_DIR)"
|
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ASSERTIONS=1 -s ALLOW_MEMORY_GROWTH=1 --preload-file \$(WASM_ASSETS_DIR)"
|
||||||
WASM_ASSETS_DIR=".\$(prefix)"
|
WASM_ASSETS_DIR=".\$(prefix)"
|
||||||
WASM_STDLIB="\$(WASM_ASSETS_DIR)/local/lib/python\$(VERSION)/os.py"
|
WASM_STDLIB="\$(WASM_ASSETS_DIR)/local/lib/python\$(VERSION)/os.py"
|
||||||
],
|
],
|
||||||
[Emscripten/node], [
|
[Emscripten/node], [
|
||||||
LDFLAGS_NODIST="$(LDFLAGS_NODIST) -s ASSERTIONS=1 -s ALLOW_MEMORY_GROWTH=1 -s NODERAWFS=1 -s EXIT_RUNTIME=1 -s USE_PTHREADS -s PROXY_TO_PTHREAD"
|
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ASSERTIONS=1 -s ALLOW_MEMORY_GROWTH=1 -s NODERAWFS=1 -s EXIT_RUNTIME=1 -s USE_PTHREADS -s PROXY_TO_PTHREAD"
|
||||||
CFLAGS_NODIST="$(CFLAGS_NODIST) -pthread"
|
CFLAGS_NODIST="$CFLAGS_NODIST -pthread"
|
||||||
],
|
],
|
||||||
[WASI], [
|
[WASI], [
|
||||||
AC_DEFINE([_WASI_EMULATED_SIGNAL], [1], [Define to 1 if you want to emulate signals on WASI])
|
AC_DEFINE([_WASI_EMULATED_SIGNAL], [1], [Define to 1 if you want to emulate signals on WASI])
|
||||||
|
@ -6336,14 +6339,14 @@ AC_SUBST(TEST_MODULES)
|
||||||
dnl Modules that are not available on some platforms
|
dnl Modules that are not available on some platforms
|
||||||
dnl AIX has shadow passwords, but access is not via getspent()
|
dnl AIX has shadow passwords, but access is not via getspent()
|
||||||
dnl VxWorks does not provide crypt() function
|
dnl VxWorks does not provide crypt() function
|
||||||
AS_CASE([$ac_sys_system],
|
AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
|
||||||
[AIX], [py_stdlib_not_available="_scproxy spwd"],
|
[AIX/*], [py_stdlib_not_available="_scproxy spwd"],
|
||||||
[VxWorks*], [py_stdlib_not_available="_scproxy _crypt termios grp"],
|
[VxWorks*/*], [py_stdlib_not_available="_scproxy _crypt termios grp"],
|
||||||
[Darwin], [py_stdlib_not_available="ossaudiodev spwd"],
|
[Darwin/*], [py_stdlib_not_available="ossaudiodev spwd"],
|
||||||
[CYGWIN*], [py_stdlib_not_available="_scproxy nis"],
|
[CYGWIN*/*], [py_stdlib_not_available="_scproxy nis"],
|
||||||
[QNX*], [py_stdlib_not_available="_scproxy nis"],
|
[QNX*/*], [py_stdlib_not_available="_scproxy nis"],
|
||||||
[FreeBSD*], [py_stdlib_not_available="_scproxy spwd"],
|
[FreeBSD*/*], [py_stdlib_not_available="_scproxy spwd"],
|
||||||
[Emscripten], [
|
[Emscripten/browser], [
|
||||||
py_stdlib_not_available="m4_normalize([
|
py_stdlib_not_available="m4_normalize([
|
||||||
_ctypes
|
_ctypes
|
||||||
_curses
|
_curses
|
||||||
|
@ -6367,6 +6370,23 @@ AS_CASE([$ac_sys_system],
|
||||||
termios
|
termios
|
||||||
])"
|
])"
|
||||||
],
|
],
|
||||||
|
dnl Some modules like _posixsubprocess do not work. We build them anyway
|
||||||
|
dnl so imports in tests do not fail.
|
||||||
|
[Emscripten/node], [
|
||||||
|
py_stdlib_not_available="m4_normalize([
|
||||||
|
_ctypes
|
||||||
|
_curses
|
||||||
|
_curses_panel
|
||||||
|
_dbm
|
||||||
|
_gdbm
|
||||||
|
_scproxy
|
||||||
|
_tkinter
|
||||||
|
nis
|
||||||
|
ossaudiodev
|
||||||
|
spwd
|
||||||
|
syslog
|
||||||
|
])"
|
||||||
|
],
|
||||||
[py_stdlib_not_available="_scproxy"]
|
[py_stdlib_not_available="_scproxy"]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue