diff options
| author | Shritesh Bhattarai <shritesh@shritesh.com> | 2019-04-13 21:36:53 -0500 |
|---|---|---|
| committer | Shritesh Bhattarai <shritesh@shritesh.com> | 2019-04-13 21:36:53 -0500 |
| commit | fe9cd0b4bc9aaf108d4b226710fa3c83612b62e1 (patch) | |
| tree | b9e055d122810b763ed5baeba1749e6129e9d913 | |
| parent | 72bcd5a4a50787b0407c21e61d660e59fa74e449 (diff) | |
| download | zig-fe9cd0b4bc9aaf108d4b226710fa3c83612b62e1.tar.gz zig-fe9cd0b4bc9aaf108d4b226710fa3c83612b62e1.zip | |
wasi: use __wasi_proc_exit instead of posix.exit
| -rw-r--r-- | std/os/wasi.zig | 2 | ||||
| -rw-r--r-- | std/special/bootstrap.zig | 16 |
2 files changed, 5 insertions, 13 deletions
diff --git a/std/os/wasi.zig b/std/os/wasi.zig index 458669529c..af51b266d9 100644 --- a/std/os/wasi.zig +++ b/std/os/wasi.zig @@ -1,4 +1,4 @@ -use @import("wasi/core.zig"); +pub use @import("wasi/core.zig"); pub const STDIN_FILENO = 0; pub const STDOUT_FILENO = 1; diff --git a/std/special/bootstrap.zig b/std/special/bootstrap.zig index e93a85861d..520561d547 100644 --- a/std/special/bootstrap.zig +++ b/std/special/bootstrap.zig @@ -14,14 +14,16 @@ comptime { @export("main", main, strong_linkage); } else if (builtin.os == builtin.Os.windows) { @export("WinMainCRTStartup", WinMainCRTStartup, strong_linkage); - } else if (builtin.os == builtin.Os.wasi) { - @export("_start", wasiStart, strong_linkage); } else { @export("_start", _start, strong_linkage); } } nakedcc fn _start() noreturn { + if (builtin.os == builtin.Os.wasi) { + std.os.wasi.__wasi_proc_exit(callMain()); + } + switch (builtin.arch) { builtin.Arch.x86_64 => { argc_ptr = asm ("lea (%%rsp), %[argc]" @@ -45,16 +47,6 @@ nakedcc fn _start() noreturn { @noInlineCall(posixCallMainAndExit); } -nakedcc fn wasiStart() noreturn { - // TODO: Decide if alloc at init is acceptable for args and env - // @llvm.wasm.mem.grow.i32 - // __wasi_args_get() - // __wasi_args_sizes_get() - // __wasi_environ_get() - // __wasi_environ_sizes_get() - std.os.posix.exit(callMain()); -} - extern fn WinMainCRTStartup() noreturn { @setAlignStack(16); if (!builtin.single_threaded) { |
