From 1bca158c6e0a4f301cef18db705d89de78c86bcb Mon Sep 17 00:00:00 2001 From: GasInfinity Date: Sat, 18 Oct 2025 19:23:19 +0200 Subject: [PATCH] fix(std): don't add the default `_start` and `panic` in homebrew targets * even if std supported those targets, they're not posixy to be in that codepath. --- lib/std/debug.zig | 2 +- lib/std/start.zig | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/std/debug.zig b/lib/std/debug.zig index 377028236e..b58bb315db 100644 --- a/lib/std/debug.zig +++ b/lib/std/debug.zig @@ -481,7 +481,7 @@ pub fn defaultPanic( if (use_trap_panic) @trap(); switch (builtin.os.tag) { - .freestanding, .other => { + .freestanding, .other, .@"3ds", .vita => { @trap(); }, .uefi => { diff --git a/lib/std/start.zig b/lib/std/start.zig index 299823a127..318d819d2e 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -91,8 +91,9 @@ comptime { // Only call main when defined. For WebAssembly it's allowed to pass `-fno-entry` in which // case it's not required to provide an entrypoint such as main. if (!@hasDecl(root, start_sym_name) and @hasDecl(root, "main")) @export(&wasm_freestanding_start, .{ .name = start_sym_name }); - } else if (native_os != .other and native_os != .freestanding) { - if (!@hasDecl(root, start_sym_name)) @export(&_start, .{ .name = start_sym_name }); + } else switch (native_os) { + .other, .freestanding, .@"3ds", .vita => {}, + else => if (!@hasDecl(root, start_sym_name)) @export(&_start, .{ .name = start_sym_name }), } } }