summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/support/os_helper.py2
-rw-r--r--Lib/test/test_builtin.py5
-rw-r--r--Misc/NEWS.d/next/Build/2022-05-12-10-19-15.gh-issue-90473.-syvqK.rst1
-rwxr-xr-xconfigure25
-rw-r--r--configure.ac21
5 files changed, 44 insertions, 10 deletions
diff --git a/Lib/test/support/os_helper.py b/Lib/test/support/os_helper.py
index eee37ef..ed4ec15 100644
--- a/Lib/test/support/os_helper.py
+++ b/Lib/test/support/os_helper.py
@@ -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())
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index ba7a7e2..efa9459 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -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.
diff --git a/Misc/NEWS.d/next/Build/2022-05-12-10-19-15.gh-issue-90473.-syvqK.rst b/Misc/NEWS.d/next/Build/2022-05-12-10-19-15.gh-issue-90473.-syvqK.rst
new file mode 100644
index 0000000..29ce3de
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2022-05-12-10-19-15.gh-issue-90473.-syvqK.rst
@@ -0,0 +1 @@
+Disable pymalloc and increase stack size on ``wasm32-wasi``.
diff --git a/configure b/configure
index 010ad32..0281088 100755
--- a/configure
+++ b/configure
@@ -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
+
+
;; #(
*) :
;;
diff --git a/configure.ac b/configure.ac
index 65b9697..eab3262 100644
--- a/configure.ac
+++ b/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])]