mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
gh-141172: Update to wasi-sdk-29 (GH-141684)
This commit updates CI and configuration from wasi-sdk-25 to wasi-sdk-29 which was released recently. This notably includes stubs for pthreads which all return errors, so some adjustment in logic is necessary to retain knowledge that WASI cannot yet spawn threads for example. This additionally increases the wasm stack allowance to 32MiB from 16MiB to accomodate the `test_recursive_pickle` test in the `test_functools.py` file. It looks like the Clang/LLVM update that happened in wasi-sdk-29 relative to wasi-sdk-25 is likely the cause of this where presumably functions have more locals than before and/or a slightly adjusted stack space requirement which overflows the stack.
This commit is contained in:
parent
4bcab461c2
commit
9b69a55be3
5 changed files with 7 additions and 7 deletions
2
.github/workflows/reusable-wasi.yml
vendored
2
.github/workflows/reusable-wasi.yml
vendored
|
|
@ -13,7 +13,7 @@ jobs:
|
|||
timeout-minutes: 60
|
||||
env:
|
||||
WASMTIME_VERSION: 38.0.3
|
||||
WASI_SDK_VERSION: 25
|
||||
WASI_SDK_VERSION: 29
|
||||
WASI_SDK_PATH: /opt/wasi-sdk
|
||||
CROSS_BUILD_PYTHON: cross-build/build
|
||||
CROSS_BUILD_WASI: cross-build/wasm32-wasip1
|
||||
|
|
|
|||
|
|
@ -504,6 +504,7 @@ extern "C" {
|
|||
* Thread support is stubbed and any attempt to create a new thread fails.
|
||||
*/
|
||||
#if (!defined(HAVE_PTHREAD_STUBS) && \
|
||||
!defined(__wasi__) && \
|
||||
(!defined(__EMSCRIPTEN__) || defined(__EMSCRIPTEN_PTHREADS__)))
|
||||
# define Py_CAN_START_THREADS 1
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -730,14 +730,12 @@ def test_thread_info(self):
|
|||
self.assertEqual(len(info), 3)
|
||||
self.assertIn(info.name, ('nt', 'pthread', 'pthread-stubs', 'solaris', None))
|
||||
self.assertIn(info.lock, ('pymutex', None))
|
||||
if sys.platform.startswith(("linux", "android", "freebsd")):
|
||||
if sys.platform.startswith(("linux", "android", "freebsd", "wasi")):
|
||||
self.assertEqual(info.name, "pthread")
|
||||
elif sys.platform == "win32":
|
||||
self.assertEqual(info.name, "nt")
|
||||
elif sys.platform == "emscripten":
|
||||
self.assertIn(info.name, {"pthread", "pthread-stubs"})
|
||||
elif sys.platform == "wasi":
|
||||
self.assertEqual(info.name, "pthread-stubs")
|
||||
|
||||
def test_abi_info(self):
|
||||
info = sys.abi_info
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
Update to WASI SDK 29.
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
b"# Required to statically build extension modules."
|
||||
)
|
||||
|
||||
WASI_SDK_VERSION = 25
|
||||
WASI_SDK_VERSION = 29
|
||||
|
||||
WASMTIME_VAR_NAME = "WASMTIME"
|
||||
WASMTIME_HOST_RUNNER_VAR = f"{{{WASMTIME_VAR_NAME}}}"
|
||||
|
|
@ -419,8 +419,8 @@ def main():
|
|||
f"{WASMTIME_HOST_RUNNER_VAR} run "
|
||||
# Make sure the stack size will work for a pydebug
|
||||
# build.
|
||||
# Use 16 MiB stack.
|
||||
"--wasm max-wasm-stack=16777216 "
|
||||
# Use 32 MiB stack.
|
||||
"--wasm max-wasm-stack=33554432 "
|
||||
# Enable thread support; causes use of preview1.
|
||||
# "--wasm threads=y --wasi threads=y "
|
||||
# Map the checkout to / to load the stdlib from /Lib.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue