Wasmtime+Cranelift: strip out some dead x86-32 code.#5226
Wasmtime+Cranelift: strip out some dead x86-32 code.#5226cfallin merged 2 commits intobytecodealliance:mainfrom
Conversation
I was recently pointed to fastly/Viceroy#200 where it seems some folks are trying to compile Wasmtime (via Viceroy) for Windows x86-32 and the failures may not be loud enough. I've tried to reproduce this cross-compiling to i686-pc-windows-gnu from Linux and hit build failures (as expected) in several places. Nevertheless, while trying to discern what others may be attempting, I noticed some dead x86-32-specific code in our repo, and figured it would be a good idea to clean this up. Otherwise, it (i) sends some mixed messages -- "hey look, this codebase does support x86-32" -- and (ii) keeps untested code around, which is generally not great. This PR removes x86-32-specific cases in traphandlers and unwind code, and Cranelift's native feature detection. It adds helpful compile-error messages in a few cases. If we ever support x86-32 (contributors welcome! The big missing piece is Cranelift support; see bytecodealliance#1980), these compile errors and git history should be enough to recover any knowledge we are now encoding in the source. I left the x86-32 support in `wasmtime-fiber` alone because that seems like a bit of a special case -- foundation library, separate from the rest of Wasmtime, with specific care to provide a (presumably working) full 32-bit version.
1b13484 to
cc2946f
Compare
alexcrichton
left a comment
There was a problem hiding this comment.
Seems reasonable to me, but I think it's ok to remove the intentional compile_error! for specifically x86 and let it fall back into the other compile_error! blocks we have for platform support. In theory at least all our cfg_if! stuff has an else { compile_error!("...") }
|
This broke doing a check build of cg_clif on x86, which rust's CI does. I use cranelift-native for implementing https://github.com/rust-lang/rust/actions/runs/3999165664/jobs/6862725564#step:26:1343 |
|
@bjorn3 IMHO it's reasonable for |
Probably, but it would also break cross-compiling scenarios where cranelift-native would never be called at runtime. |
|
Hmm, yeah, actually it seems that any other non-supported platform will compile here (returning an |
|
Opened #5627 |
I was recently pointed to fastly/Viceroy#200 where it seems some folks are trying to compile Wasmtime (via Viceroy) for Windows x86-32 and the failures may not be loud enough. I've tried to reproduce this cross-compiling to i686-pc-windows-gnu from Linux and hit build failures (as expected) in several places. Nevertheless, while trying to discern what others may be attempting, I noticed some dead x86-32-specific code in our repo, and figured it would be a good idea to clean this up. Otherwise, it (i) sends some mixed messages -- "hey look, this codebase does support x86-32" -- and (ii) keeps untested code around, which is generally not great.
This PR removes x86-32-specific cases in traphandlers and unwind code, and Cranelift's native feature detection. It adds helpful compile-error messages in a few cases. If we ever support x86-32 (contributors welcome! The big missing piece is Cranelift support; see #1980), these compile errors and git history should be enough to recover any knowledge we are now encoding in the source.
I left the x86-32 support in
wasmtime-fiberalone because that seems like a bit of a special case -- foundation library, separate from the rest of Wasmtime, with specific care to provide a (presumably working) full 32-bit version.