tests: fix 32-bit compatible arch selection

This commit is contained in:
mlugg 2025-09-13 17:54:31 +01:00
parent f5c8d80e08
commit 2fefe0e4b3
No known key found for this signature in database
GPG key ID: 3F5B7DCCBF4AF02E

View file

@ -1866,18 +1866,26 @@ fn nativeAndCompatible32bit(b: *std.Build, skip_non_native: bool) []const std.Bu
const host = b.graph.host.result;
const only_native = (&b.graph.host)[0..1];
if (skip_non_native) return only_native;
const arch32: std.Target.Cpu.Arch = switch (host.cpu.arch) {
const arch32: std.Target.Cpu.Arch = switch (host.os.tag) {
.windows => switch (host.cpu.arch) {
.x86_64 => .x86,
.aarch64 => .thumb,
.aarch64_be => .thumbeb,
else => return only_native,
},
.freebsd => switch (host.cpu.arch) {
.aarch64 => .arm,
.aarch64_be => .armeb,
else => return only_native,
},
.linux, .netbsd => switch (host.cpu.arch) {
.x86_64 => .x86,
.aarch64 => .arm,
.aarch64_be => .armeb,
else => return only_native,
};
switch (host.os.tag) {
.windows => if (arch32.isArm()) return only_native,
.macos, .freebsd => if (arch32 == .x86) return only_native,
.linux, .netbsd => {},
},
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 }),