commit 492efd4c06541ca8add4147dfc2d766c1ba54693 (tree)
parent c2cbb944ba377db141e3dc5a890d955932accea2
Author: Mason Remaley <mason@gamesbymason.com>
Date: Thu, 9 Apr 2026 16:33:15 -0700
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
Diffstat:
2 files changed, 19 insertions(+), 5 deletions(-)
diff --git 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
@@ -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(