mirror of https://github.com/python/cpython
gh-90473: Increase stack size, disable obmalloc on WASI (GH-92732)
(cherry picked from commit d81d57e959
)
Co-authored-by: Christian Heimes <christian@python.org>
This commit is contained in:
parent
715b070dcc
commit
c41667e71b
|
@ -50,7 +50,7 @@ if os.name == 'nt':
|
|||
% (TESTFN_UNENCODABLE, sys.getfilesystemencoding()))
|
||||
TESTFN_UNENCODABLE = None
|
||||
# macOS and Emscripten deny unencodable filenames (invalid utf-8)
|
||||
elif sys.platform not in {'darwin', 'emscripten'}:
|
||||
elif sys.platform not in {'darwin', 'emscripten', 'wasi'}:
|
||||
try:
|
||||
# ascii and utf-8 cannot encode the byte 0xff
|
||||
b'\xff'.decode(sys.getfilesystemencoding())
|
||||
|
|
|
@ -393,7 +393,10 @@ class BuiltinTest(unittest.TestCase):
|
|||
msg=f"source={source} mode={mode}")
|
||||
|
||||
|
||||
@unittest.skipIf(support.is_emscripten, "socket.accept is broken")
|
||||
@unittest.skipIf(
|
||||
support.is_emscripten or support.is_wasi,
|
||||
"socket.accept is broken"
|
||||
)
|
||||
def test_compile_top_level_await(self):
|
||||
"""Test whether code some top level await can be compiled.
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Disable pymalloc and increase stack size on ``wasm32-wasi``.
|
|
@ -7922,6 +7922,8 @@ $as_echo "#define _WASI_EMULATED_PROCESS_CLOCKS 1" >>confdefs.h
|
|||
LIBS="$LIBS -lwasi-emulated-signal -lwasi-emulated-getpid -lwasi-emulated-process-clocks"
|
||||
echo "#define _WASI_EMULATED_SIGNAL 1" >> confdefs.h
|
||||
|
||||
as_fn_append LDFLAGS_NODIST " -z stack-size=524288 -Wl,--stack-first -Wl,--initial-memory=10485760"
|
||||
|
||||
;; #(
|
||||
*) :
|
||||
;;
|
||||
|
@ -14231,19 +14233,26 @@ int domain = AF_INET6;
|
|||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
ipv6=yes
|
||||
|
||||
else
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
ipv6=no
|
||||
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
|
||||
case $ac_sys_system in #(
|
||||
WASI) :
|
||||
ipv6=no
|
||||
;; #(
|
||||
*) :
|
||||
;;
|
||||
esac
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ipv6" >&5
|
||||
$as_echo "$ipv6" >&6; }
|
||||
|
||||
if test "$ipv6" = "yes"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if RFC2553 API is available" >&5
|
||||
$as_echo_n "checking if RFC2553 API is available... " >&6; }
|
||||
|
@ -14557,6 +14566,8 @@ then
|
|||
case $ac_sys_system in #(
|
||||
Emscripten) :
|
||||
with_pymalloc="no" ;; #(
|
||||
WASI) :
|
||||
with_pymalloc="no" ;; #(
|
||||
*) :
|
||||
with_pymalloc="yes"
|
||||
;;
|
||||
|
@ -22597,6 +22608,12 @@ case $ac_sys_system in #(
|
|||
;; #(
|
||||
WASI/*) :
|
||||
|
||||
|
||||
|
||||
py_cv_module__ctypes_test=n/a
|
||||
py_cv_module_=n/a
|
||||
|
||||
|
||||
;; #(
|
||||
*) :
|
||||
;;
|
||||
|
|
21
configure.ac
21
configure.ac
|
@ -1994,6 +1994,10 @@ AS_CASE([$ac_sys_system],
|
|||
AC_DEFINE([_WASI_EMULATED_PROCESS_CLOCKS], [1], [Define to 1 if you want to emulate process clocks on WASI])
|
||||
LIBS="$LIBS -lwasi-emulated-signal -lwasi-emulated-getpid -lwasi-emulated-process-clocks"
|
||||
echo "#define _WASI_EMULATED_SIGNAL 1" >> confdefs.h
|
||||
|
||||
dnl increase initial memory and stack size, move stack first
|
||||
dnl https://github.com/WebAssembly/wasi-libc/issues/233
|
||||
AS_VAR_APPEND([LDFLAGS_NODIST], [" -z stack-size=524288 -Wl,--stack-first -Wl,--initial-memory=10485760"])
|
||||
]
|
||||
)
|
||||
|
||||
|
@ -4046,13 +4050,17 @@ dnl the check does not work on cross compilation case...
|
|||
#include <sys/types.h>
|
||||
#include <sys/socket.h>]],
|
||||
[[int domain = AF_INET6;]])],[
|
||||
AC_MSG_RESULT(yes)
|
||||
ipv6=yes
|
||||
],[
|
||||
AC_MSG_RESULT(no)
|
||||
ipv6=no
|
||||
])
|
||||
|
||||
AS_CASE([$ac_sys_system],
|
||||
[WASI], [ipv6=no]
|
||||
)
|
||||
|
||||
AC_MSG_RESULT([$ipv6])
|
||||
|
||||
if test "$ipv6" = "yes"; then
|
||||
AC_MSG_CHECKING(if RFC2553 API is available)
|
||||
AC_COMPILE_IFELSE([
|
||||
|
@ -4232,9 +4240,10 @@ AC_ARG_WITH(pymalloc,
|
|||
|
||||
if test -z "$with_pymalloc"
|
||||
then
|
||||
dnl default to yes except for wasm32-emscripten
|
||||
dnl default to yes except for wasm32-emscripten and wasm32-wasi.
|
||||
AS_CASE([$ac_sys_system],
|
||||
[Emscripten], [with_pymalloc="no"],
|
||||
[WASI], [with_pymalloc="no"],
|
||||
[with_pymalloc="yes"]
|
||||
)
|
||||
fi
|
||||
|
@ -6680,7 +6689,11 @@ AS_CASE([$ac_sys_system],
|
|||
)
|
||||
],
|
||||
[Emscripten/node*], [],
|
||||
[WASI/*], []
|
||||
[WASI/*], [
|
||||
PY_STDLIB_MOD_SET_NA(
|
||||
[_ctypes_test],
|
||||
)
|
||||
]
|
||||
)
|
||||
],
|
||||
[PY_STDLIB_MOD_SET_NA([_scproxy])]
|
||||
|
|
Loading…
Reference in New Issue