Skip to content

Rust doesn't work by default on Windows #1587

@alexcrichton

Description

@alexcrichton

I ran across this uptream in cargo-wasi, but this fails to work in this repository, but only on Windows:

$ echo "#[test] fn foo() {}" >> foo.rs
$ rustc foo.rs --target wasm32-wasi --test
$ cargo run foo.wasm
    Finished dev [unoptimized + debuginfo] target(s) in 0.28s
     Running `target\debug\wasmtime.exe foo.wasm`
Error: failed to run main module `foo.wasm`

Caused by:
    0: WebAssembly failed to compile
    1: Compilation error: Implementation limit exceeded

The underlying reason can be found with RUST_LOG:

$ RUST_LOG=warn cargo run foo.wasm
    Finished dev [unoptimized + debuginfo] target(s) in 0.25s
     Running `target\debug\wasmtime.exe foo.wasm`
 WARN  cranelift_codegen::isa::x86::unwind::winx64 > stack frame is too large (288 bytes) to use with Windows x64 SEH when preserving FPRs. This is a Cranelift implementation lim
it, see https://github.com/bytecodealliance/wasmtime/issues/1475
 WARN  cranelift_codegen::isa::x86::unwind::winx64 > stack frame is too large (416 bytes) to use with Windows x64 SEH when preserving FPRs. This is a Cranelift implementation lim
it, see https://github.com/bytecodealliance/wasmtime/issues/1475
Error: failed to run main module `foo.wasm`

Caused by:
    0: WebAssembly failed to compile
    1: Compilation error: Implementation limit exceeded
error: process didn't exit successfully: `target\debug\wasmtime.exe foo.wasm` (exit code: 1)

It looks like it's due to these lines introduced in #1216. cc @iximeow do you know how hard it'd be to fix that warning?

Metadata

Metadata

Assignees

Labels

bugIncorrect behavior in the current implementation that needs fixingcraneliftIssues related to the Cranelift code generatorwasmtimeIssues about wasmtime that don't fall into another label

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions