victorpaleologue opened issue #4137:
I am packaging an application using using the toolchain
i686-unknown-linux-musl
. Like @ifreund I had an issue because somelibc
details used bywasmtime
are absent in that toolchain.error[E0425]: cannot find value `REG_EIP` in crate `libc` --> /Users/victor.paleologue/.cargo/registry/src/github.com-1ecc6299db9ec823/wasmtime-runtime-0.33.1/src/traphandlers/unix.rs:173:40 | 173 | cx.uc_mcontext.gregs[libc::REG_EIP as usize] as *const u8 | ^^^^^^^ not found in `libc` error[E0609]: no field `gregs` on type `mcontext_t` --> /Users/victor.paleologue/.cargo/registry/src/github.com-1ecc6299db9ec823/wasmtime-runtime-0.33.1/src/traphandlers/unix.rs:173:28 | 173 | cx.uc_mcontext.gregs[libc::REG_EIP as usize] as *const u8 | ^^^^^ unknown field
Reading
the following code, it looks like wasmtime is intended to support x86 on linux:} else if #[cfg(all(target_os = "linux", target_arch = "x86"))] { let cx = &*(cx as *const libc::ucontext_t); cx.uc_mcontext.gregs[libc::REG_EIP as usize] as *const u8
I'm using rust 1.61.0 and wasmtime 0.33.1.
victorpaleologue edited issue #4137:
I am packaging an application using using the toolchain
i686-unknown-linux-musl
. Like @ifreund I had an issue because somelibc
details used bywasmtime
are absent in that toolchain.error[E0425]: cannot find value `REG_EIP` in crate `libc` --> /Users/victor.paleologue/.cargo/registry/src/github.com-1ecc6299db9ec823/wasmtime-runtime-0.33.1/src/traphandlers/unix.rs:173:40 | 173 | cx.uc_mcontext.gregs[libc::REG_EIP as usize] as *const u8 | ^^^^^^^ not found in `libc` error[E0609]: no field `gregs` on type `mcontext_t` --> /Users/victor.paleologue/.cargo/registry/src/github.com-1ecc6299db9ec823/wasmtime-runtime-0.33.1/src/traphandlers/unix.rs:173:28 | 173 | cx.uc_mcontext.gregs[libc::REG_EIP as usize] as *const u8 | ^^^^^ unknown field
Reading
the following code, it looks like wasmtime is intended to support x86 on linux:} else if #[cfg(all(target_os = "linux", target_arch = "x86"))] { let cx = &*(cx as *const libc::ucontext_t); cx.uc_mcontext.gregs[libc::REG_EIP as usize] as *const u8
I'm using rust 1.61.0 and wasmtime 0.33.1.
Do you think this is an issue of the toolchain, or of wasmtime?
victorpaleologue edited issue #4137:
I am packaging an application using using the toolchain
i686-unknown-linux-musl
. Like @ifreund I had an issue because somelibc
details used bywasmtime
are absent in that toolchain.error[E0425]: cannot find value `REG_EIP` in crate `libc` --> /Users/victor.paleologue/.cargo/registry/src/github.com-1ecc6299db9ec823/wasmtime-runtime-0.33.1/src/traphandlers/unix.rs:173:40 | 173 | cx.uc_mcontext.gregs[libc::REG_EIP as usize] as *const u8 | ^^^^^^^ not found in `libc` error[E0609]: no field `gregs` on type `mcontext_t` --> /Users/victor.paleologue/.cargo/registry/src/github.com-1ecc6299db9ec823/wasmtime-runtime-0.33.1/src/traphandlers/unix.rs:173:28 | 173 | cx.uc_mcontext.gregs[libc::REG_EIP as usize] as *const u8 | ^^^^^ unknown field
Reading
the following code, it looks like wasmtime is intended to support x86 on linux:} else if #[cfg(all(target_os = "linux", target_arch = "x86"))] { let cx = &*(cx as *const libc::ucontext_t); cx.uc_mcontext.gregs[libc::REG_EIP as usize] as *const u8
I'm using rust 1.61.0 and wasmtime 0.33.1.
Do you think this is an issue of the toolchain, or of wasmtime?
bjorn3 commented on issue #4137:
It looks like that will need to be changed in the libc crate. https://github.com/rust-lang/libc
cfallin commented on issue #4137:
@victorpaleologue unfortunately, Wasmtime does not support 32-bit x86.
The code in the trap handler support that you link to was probably written in anticipation of x86-32, or copied from somewhere else, or I'm not sure, but... our compiler (Cranelift) does not support the platform, so that's the most fundamental issue. We are tracking this in #1980.
We'd love to fix that, but it's a nontrivial amount of work and no one has had the time so far; volunteers welcome!
In the meantime I'll go ahead and close this in favor of #1980.
cfallin closed issue #4137:
I am packaging an application using using the toolchain
i686-unknown-linux-musl
. Like @ifreund I had an issue because somelibc
details used bywasmtime
are absent in that toolchain.error[E0425]: cannot find value `REG_EIP` in crate `libc` --> /Users/victor.paleologue/.cargo/registry/src/github.com-1ecc6299db9ec823/wasmtime-runtime-0.33.1/src/traphandlers/unix.rs:173:40 | 173 | cx.uc_mcontext.gregs[libc::REG_EIP as usize] as *const u8 | ^^^^^^^ not found in `libc` error[E0609]: no field `gregs` on type `mcontext_t` --> /Users/victor.paleologue/.cargo/registry/src/github.com-1ecc6299db9ec823/wasmtime-runtime-0.33.1/src/traphandlers/unix.rs:173:28 | 173 | cx.uc_mcontext.gregs[libc::REG_EIP as usize] as *const u8 | ^^^^^ unknown field
Reading
the following code, it looks like wasmtime is intended to support x86 on linux:} else if #[cfg(all(target_os = "linux", target_arch = "x86"))] { let cx = &*(cx as *const libc::ucontext_t); cx.uc_mcontext.gregs[libc::REG_EIP as usize] as *const u8
I'm using rust 1.61.0 and wasmtime 0.33.1.
Do you think this is an issue of the toolchain, or of wasmtime?
Last updated: Dec 23 2024 at 12:05 UTC