mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-28 18:59:04 +08:00
* fix: signal.SIGINT and signal() raise NotImplementedError on wasi - Problem: signal.SIGINT and friends don't exist on wasi, and signal.signal() is hard-stubbed to raise NotImplementedError there - Cause: wasi-libc emulates signal()/raise() in a separate opt-in library that Rust's own wasm32-wasip1 target distribution doesn't ship - Fix: vendor wasi-sdk's prebuilt libwasi-emulated-signal.a, link it for wasm32-wasip1, and wire SIGINT/SIGABRT/SIGFPE/SIGILL/SIGSEGV/SIGTERM, signal()/getsignal()/raise_signal() through it. CPython's own WASI build links the same library Assisted-by: Claude Code:claude-sonnet-5 Signed-off-by: Jiwoo Ahn <ikwydls1314@gmail.com> * Group WASI signal definitions in mod wasm Move WASI-only types, constants, FFI, and handlers into `mod wasm` and re-export them with `#[cfg(target_os = "wasi")]`. Assisted-by: Grok 4.6 --------- Signed-off-by: Jiwoo Ahn <ikwydls1314@gmail.com> Co-authored-by: Jeong YunWon <jeong@youknowone.org>
25 lines
692 B
TOML
25 lines
692 B
TOML
[target.'cfg(target_env = "msvc")']
|
||
rustflags = "-C link-arg=/STACK:8000000"
|
||
|
||
[target.'cfg(all(target_os = "windows", not(target_env = "msvc")))']
|
||
rustflags = "-C link-args=-Wl,--stack,8000000"
|
||
|
||
[target.wasm32-unknown-unknown]
|
||
rustflags = ["--cfg=getrandom_backend=\"wasm_js\""]
|
||
|
||
# Enforce a 1 MB stack limit for WASI targets.
|
||
# (Runaway heap growth is fixed by the smaller DataStack chunk
|
||
# and the size‑optimized wasm‑release profile.)
|
||
|
||
[target.wasm32-wasip1]
|
||
rustflags = [
|
||
"-C", "link-arg=-zstack-size=1048576",
|
||
"-L", "crates/host_env/vendor/wasm32-wasip1",
|
||
"-l", "wasi-emulated-signal",
|
||
]
|
||
|
||
[target.wasm32-wasip2]
|
||
rustflags = [
|
||
"-C", "link-arg=-zstack-size=1048576",
|
||
]
|