Mangle "main" as "__main_void" on wasm32-wasi
On wasm, the age-old C trick of having a main function which can either have no arguments or argc+argv doesn't work, because wasm requires caller and callee signatures to match. WASI's current strategy is to have compilers mangle main's name to indicate which signature they're using. Rust uses the no-argument form, which should be mangled as `__main_void`. This is needed on wasm32-wasi as of #105395.
This commit is contained in:
parent
7632db0e87
commit
98ae83daae
1 changed files with 4 additions and 0 deletions
|
@ -104,6 +104,10 @@ pub fn target() -> Target {
|
||||||
// `args::args()` makes the WASI API calls itself.
|
// `args::args()` makes the WASI API calls itself.
|
||||||
options.main_needs_argc_argv = false;
|
options.main_needs_argc_argv = false;
|
||||||
|
|
||||||
|
// And, WASI mangles the name of "main" to distinguish between different
|
||||||
|
// signatures.
|
||||||
|
options.entry_name = "__main_void".into();
|
||||||
|
|
||||||
Target {
|
Target {
|
||||||
llvm_target: "wasm32-wasi".into(),
|
llvm_target: "wasm32-wasi".into(),
|
||||||
pointer_width: 32,
|
pointer_width: 32,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue