authorgravatar for shritesh@shritesh.comShritesh Bhattarai <shritesh@shritesh.com> 2019-04-13 21:54:50-05:00
committergravatar for shritesh@shritesh.comShritesh Bhattarai <shritesh@shritesh.com> 2019-04-13 21:54:50-05:00
log93528be6b19d608b4a02944e7e599554fc9f1378
tree981a293b787470b46f5cf0ff015742e799fae4f1
parentfe9cd0b4bc9aaf108d4b226710fa3c83612b62e1

wasi: sigabrt at panic


2 files changed, 11 insertions(+), 2 deletions(-)

std/os/wasi/core.zig+5
......@@ -1,12 +1,17 @@
11pub const __wasi_errno_t = u16;
22pub const __wasi_exitcode_t = u32;
33pub const __wasi_fd_t = u32;
4pub const __wasi_signal_t = u8;
45
56pub const __wasi_ciovec_t = extern struct {
67 buf: [*]const u8,
78 buf_len: usize,
89};
910
11pub const __WASI_SIGABRT: __wasi_signal_t = 6;
12
13pub extern fn __wasi_proc_raise(sig: __wasi_signal_t) __wasi_errno_t;
14
1015pub extern fn __wasi_proc_exit(rval: __wasi_exitcode_t) noreturn;
1116
1217pub extern fn __wasi_fd_write(fd: __wasi_fd_t, iovs: *const __wasi_ciovec_t, iovs_len: usize, nwritten: *usize) __wasi_errno_t;
std/special/panic.zig+6-2
......@@ -10,10 +10,14 @@ pub fn panic(msg: []const u8, error_return_trace: ?*builtin.StackTrace) noreturn
1010 @setCold(true);
1111 switch (builtin.os) {
1212 // TODO: fix panic in zen
13 // TODO: fix panic in wasi
14 builtin.Os.freestanding, builtin.Os.zen, builtin.Os.wasi => {
13 builtin.Os.freestanding, builtin.Os.zen => {
1514 while (true) {}
1615 },
16 builtin.Os.wasi => {
17 std.debug.warn("{}", msg);
18 _ = std.os.wasi.__wasi_proc_raise(std.os.wasi.__WASI_SIGABRT);
19 unreachable;
20 },
1721 builtin.Os.uefi => {
1822 // TODO look into using the debug info and logging helpful messages
1923 std.os.abort();