authorgravatar for arandomosdever@noreply.codeberg.orgARandomOSDever <arandomosdever@noreply.codeberg.org> 2026-06-08 18:20:11+03:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-06-17 22:45:00+02:00
logeedf7d92990676922ddbf1d2928d3d2a4d2e7487
tree89203d2d19ca9e5fd0d11ac16aafa95ceb4e3636
parentdab794394ff816e892d757b4c7fe52958f14dfe9
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.Target: add wiiu OS tag


7 files changed, 29 insertions(+), 3 deletions(-)

lib/std/Build/Configuration.zig+3
......@@ -2584,6 +2584,7 @@ pub const TargetQuery = struct {
25842584 windows,
25852585 uefi,
25862586 @"3ds",
2587 wiiu,
25872588 ps3,
25882589 ps4,
25892590 ps5,
......@@ -2632,6 +2633,7 @@ pub const TargetQuery = struct {
26322633 .windows => .windows,
26332634 .uefi => .uefi,
26342635 .@"3ds" => .@"3ds",
2636 .wiiu => .wiiu,
26352637 .ps3 => .ps3,
26362638 .ps4 => .ps4,
26372639 .ps5 => .ps5,
......@@ -2680,6 +2682,7 @@ pub const TargetQuery = struct {
26802682 .windows => .windows,
26812683 .uefi => .uefi,
26822684 .@"3ds" => .@"3ds",
2685 .wiiu => .wiiu,
26832686 .ps3 => .ps3,
26842687 .ps4 => .ps4,
26852688 .ps5 => .ps5,
lib/std/Target.zig+21-1
......@@ -49,6 +49,7 @@ pub const Os = struct {
4949 uefi,
5050
5151 @"3ds",
52 wiiu,
5253
5354 ps3,
5455 ps4,
......@@ -196,6 +197,7 @@ pub const Os = struct {
196197 .uefi,
197198
198199 .@"3ds",
200 .wiiu,
199201
200202 .psp,
201203 .vita,
......@@ -622,6 +624,13 @@ pub const Os = struct {
622624 },
623625 },
624626
627 .wiiu => .{
628 .semver = .{
629 .min = .{ .major = 5, .minor = 5, .patch = 5 }, // Latest global release
630 .max = .{ .major = 5, .minor = 5, .patch = 6 }, // Latest US only release
631 },
632 },
633
625634 .psp => .{
626635 .semver = .{
627636 // https://www.psdevwiki.com/psp/Official_Firmware_(OFW)#1.XX_Kernel
......@@ -933,6 +942,7 @@ pub const Abi = enum {
933942 .windows => .gnu,
934943 .uefi => .msvc,
935944 .@"3ds" => .eabihf,
945 .wiiu => .eabihf,
936946 .psp => .eabihf,
937947 .vita => .eabihf,
938948 .wasi, .emscripten => .musl,
......@@ -2093,7 +2103,7 @@ pub const Cpu = struct {
20932103 .msp430 => &msp430.cpu.msp430,
20942104 .nvptx, .nvptx64 => &nvptx.cpu.sm_52,
20952105 .powerpc => switch (os.tag) {
2096 .openbsd => &powerpc.cpu.@"750",
2106 .openbsd, .wiiu => &powerpc.cpu.@"750",
20972107 else => generic(arch),
20982108 },
20992109 .powerpc64 => switch (os.tag) {
......@@ -2298,6 +2308,7 @@ pub fn requiresLibC(target: *const Target) bool {
22982308 .other,
22992309 .@"3ds",
23002310 .tios,
2311 .wiiu,
23012312 => false,
23022313 };
23032314}
......@@ -2444,6 +2455,7 @@ pub const DynamicLinker = struct {
24442455 .windows,
24452456
24462457 .@"3ds",
2458 .wiiu,
24472459
24482460 .emscripten,
24492461 .wasi,
......@@ -2866,6 +2878,7 @@ pub const DynamicLinker = struct {
28662878 .windows,
28672879
28682880 .@"3ds",
2881 .wiiu,
28692882
28702883 .psp,
28712884 .vita,
......@@ -3422,6 +3435,13 @@ pub fn cTypeBitSize(target: *const Target, c_type: CType) u16 {
34223435 .longlong, .ulonglong, .double, .longdouble => return 64,
34233436 },
34243437
3438 .wiiu => switch (c_type) {
3439 .char => return 8,
3440 .short, .ushort => return 16,
3441 .int, .uint, .float, .long, .ulong => return 32,
3442 .longlong, .ulonglong, .double, .longdouble => return 64,
3443 },
3444
34253445 .ps4, .ps5 => switch (c_type) {
34263446 .char => return 8,
34273447 .short, .ushort => return 16,
lib/std/debug.zig+1-1
......@@ -501,7 +501,7 @@ pub fn defaultPanic(msg: []const u8, first_trace_addr: ?usize) noreturn {
501501 if (use_trap_panic) @trap();
502502
503503 switch (builtin.os.tag) {
504 .freestanding, .other, .@"3ds", .psp, .vita => {
504 .freestanding, .other, .@"3ds", .wiiu, .psp, .vita => {
505505 @trap();
506506 },
507507 .uefi => {
lib/std/start.zig+1-1
......@@ -70,7 +70,7 @@ comptime {
7070 // case it's not required to provide an entrypoint such as main.
7171 if (!@hasDecl(root, start_sym_name) and @hasDecl(root, "main")) @export(&wasm_freestanding_start, .{ .name = start_sym_name });
7272 } else switch (native_os) {
73 .other, .freestanding, .@"3ds", .psp, .vita, .vulkan, .opengl, .opencl => {},
73 .other, .freestanding, .@"3ds", .wiiu, .psp, .vita, .vulkan, .opengl, .opencl => {},
7474 else => if (!@hasDecl(root, start_sym_name)) @export(&_start, .{ .name = start_sym_name }),
7575 }
7676 }
src/Compilation.zig+1
......@@ -6353,6 +6353,7 @@ fn addCommonCCArgs(
63536353 .serenity => try argv.append("__serenity__"),
63546354 // Homebrew targets without LLVM support; use communities's preferred macros.
63556355 .@"3ds" => try argv.append("-D__3DS__"),
6356 .wiiu => try argv.append("-D__WIIU__"),
63566357 .psp => try argv.append("-D__PSP__"),
63576358 .vita => try argv.append("-D__vita__"),
63586359 else => {},
src/codegen/llvm.zig+1
......@@ -246,6 +246,7 @@ pub fn targetTriple(allocator: Allocator, target: *const std.Target) ![]const u8
246246 .psp,
247247 .tios,
248248 .vita,
249 .wiiu,
249250 => "unknown",
250251 };
251252 try llvm_triple.appendSlice(llvm_os);
test/llvm_targets.zig+1
......@@ -192,6 +192,7 @@ const targets = [_]std.Target.Query{
192192 .{ .cpu_arch = .powerpc, .os_tag = .openbsd, .abi = .eabihf },
193193 .{ .cpu_arch = .powerpc, .os_tag = .rtems, .abi = .eabi },
194194 .{ .cpu_arch = .powerpc, .os_tag = .rtems, .abi = .eabihf },
195 .{ .cpu_arch = .powerpc, .os_tag = .wiiu, .abi = .eabihf },
195196
196197 .{ .cpu_arch = .powerpcle, .os_tag = .freestanding, .abi = .eabi },
197198 .{ .cpu_arch = .powerpcle, .os_tag = .freestanding, .abi = .eabihf },