diff --git a/lib/std/start.zig b/lib/std/start.zig index d10b7561603a5ed017a4c74203771e646840753f..39f0fd35253dbab8360a06e2be096631f4df7a0b 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -30,6 +30,8 @@ comptime { } } else if (builtin.os.tag == .windows) { @export(wWinMainCRTStartup2, .{ .name = "wWinMainCRTStartup" }); + } else if (builtin.os.tag == .wasi) { + @export(wasmMain2, .{ .name = "_start" }); } else { if (!@hasDecl(root, "_start")) { @export(_start2, .{ .name = "_start" }); @@ -98,6 +100,11 @@ fn callMain2() noreturn { exit2(0); } +fn wasmMain2() u8 { + root.main(); + return 0; +} + fn wWinMainCRTStartup2() callconv(.C) noreturn { root.main(); exit2(0);