From 492efd4c06541ca8add4147dfc2d766c1ba54693 Mon Sep 17 00:00:00 2001 From: Mason Remaley Date: Thu, 9 Apr 2026 16:33:15 -0700 Subject: [PATCH] Adds support for running stack and error trace tests through Wine Also fixes minor bug that was preventing existing tests from passing on 32 bit Windows --- lib/std/debug/SelfInfo/Windows.zig | 2 +- test/tests.zig | 22 ++++++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/lib/std/debug/SelfInfo/Windows.zig b/lib/std/debug/SelfInfo/Windows.zig index ccf7263461..710b13c122 100644 --- a/lib/std/debug/SelfInfo/Windows.zig +++ b/lib/std/debug/SelfInfo/Windows.zig @@ -368,7 +368,7 @@ const Module = struct { /// iteration, e.g. because they only wanted the topmost call. inline_sites: std.ArrayList(*align(1) const std.pdb.InlineSiteSym), }, - dwarf: struct { addr: usize }, + dwarf: struct { addr: u64 }, none: void, fn init(di: *DebugInfo, vaddr: usize) Error!Symbols { diff --git a/test/tests.zig b/test/tests.zig index 97f99cffed..a4c0bbcf6e 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -2016,10 +2016,24 @@ fn nativeAndCompatible32bit(b: *std.Build, skip_non_native: bool) []const std.Bu }, else => return only_native, }; - return b.graph.arena.dupe(std.Build.ResolvedTarget, &.{ - b.graph.host, - b.resolveTargetQuery(.{ .cpu_arch = arch32, .os_tag = host.os.tag }), - }) catch @panic("OOM"); + var targets = std.ArrayList(std.Build.ResolvedTarget).initCapacity(b.graph.arena, 2) + catch @panic("OOM"); + targets.appendAssumeCapacity(b.graph.host); + targets.appendAssumeCapacity(b.resolveTargetQuery(.{ + .cpu_arch = arch32, + .os_tag = host.os.tag, + })); + if (b.enable_wine and b.graph.host.result.os.tag != .windows) { + targets.append(b.graph.arena, b.resolveTargetQuery(.{ + .cpu_arch = host.cpu.arch, + .os_tag = .windows, + })) catch @panic("OOM"); + targets.append(b.graph.arena, b.resolveTargetQuery(.{ + .cpu_arch = arch32, + .os_tag = .windows, + })) catch @panic("OOM"); + } + return targets.toOwnedSlice(b.graph.arena) catch @panic("OOM"); } pub fn addStackTraceTests(