| ... | @@ -2323,38 +2323,38 @@ pub const debugger_matrix: []const RunnerTarget = &.{ | ... | @@ -2323,38 +2323,38 @@ pub const debugger_matrix: []const RunnerTarget = &.{ |
| 2323 | }, | 2323 | }, |
| 2324 | }; | 2324 | }; |
| 2325 | | 2325 | |
| 2326 | fn compatible32bitArch(host: *const std.Target) ?std.Target.Cpu.Arch { | 2326 | fn supportedCompatArch(host: *const std.Target, arch: std.Target.Cpu.Arch) bool { |
| 2327 | return switch (host.os.tag) { | 2327 | return switch (host.os.tag) { |
| 2328 | .freebsd => switch (host.cpu.arch) { | 2328 | .freebsd => switch (host.cpu.arch) { |
| 2329 | .aarch64 => .arm, | 2329 | .aarch64 => arch == .arm, |
| 2330 | .powerpc64 => .powerpc, | 2330 | else => false, |
| 2331 | else => null, | | |
| 2332 | }, | 2331 | }, |
| 2333 | .illumos => switch (host.cpu.arch) { | 2332 | .illumos => switch (host.cpu.arch) { |
| 2334 | .x86_64 => .x86, | 2333 | .x86_64 => arch == .x86, |
| 2335 | else => null, | 2334 | else => false, |
| 2336 | }, | 2335 | }, |
| 2337 | .linux => switch (host.cpu.arch) { | 2336 | .linux => switch (host.cpu.arch) { |
| 2338 | .aarch64 => .arm, | 2337 | .aarch64 => arch == .arm or arch == .thumb, |
| 2339 | .aarch64_be => .armeb, | 2338 | .aarch64_be => arch == .armeb or arch == .thumbeb, |
| 2340 | .mips64 => .mips, | 2339 | .mips64 => arch == .mips, |
| 2341 | .mips64el => .mipsel, | 2340 | .mips64el => arch == .mipsel, |
| 2342 | .powerpc64 => .powerpc, | 2341 | .powerpc64 => arch == .powerpc, |
| 2343 | .sparc64 => .sparc, | 2342 | .riscv64 => arch == .riscv32, |
| 2344 | .x86_64 => .x86, | 2343 | .sparc64 => arch == .sparc, |
| 2345 | else => null, | 2344 | .x86_64 => arch == .x86, |
| | 2345 | else => false, |
| 2346 | }, | 2346 | }, |
| 2347 | .netbsd => switch (host.cpu.arch) { | 2347 | .netbsd => switch (host.cpu.arch) { |
| 2348 | .riscv64 => .riscv32, | 2348 | .riscv64 => arch == .riscv32, |
| 2349 | .sparc64 => .sparc, | 2349 | .sparc64 => arch == .sparc, |
| 2350 | .x86_64 => .x86, | 2350 | .x86_64 => arch == .x86, |
| 2351 | else => null, | 2351 | else => false, |
| 2352 | }, | 2352 | }, |
| 2353 | .windows => switch (host.cpu.arch) { | 2353 | .windows => switch (host.cpu.arch) { |
| 2354 | .x86_64 => .x86, | 2354 | .x86_64 => arch == .x86, |
| 2355 | else => null, | 2355 | else => false, |
| 2356 | }, | 2356 | }, |
| 2357 | else => null, | 2357 | else => false, |
| 2358 | }; | 2358 | }; |
| 2359 | } | 2359 | } |
| 2360 | | 2360 | |
| ... | @@ -2362,11 +2362,8 @@ pub fn isNative(actual_target: *const std.Build.ResolvedTarget, host: *const std | ... | @@ -2362,11 +2362,8 @@ pub fn isNative(actual_target: *const std.Build.ResolvedTarget, host: *const std |
| 2362 | if (actual_target.query.isNative()) return true; | 2362 | if (actual_target.query.isNative()) return true; |
| 2363 | const actual = &actual_target.result; | 2363 | const actual = &actual_target.result; |
| 2364 | | 2364 | |
| 2365 | if (actual.cpu.arch != host.cpu.arch and | 2365 | if (actual.cpu.arch != host.cpu.arch and !supportedCompatArch(host, actual.cpu.arch)) |
| 2366 | actual.cpu.arch != compatible32bitArch(host)) | | |
| 2367 | { | | |
| 2368 | return false; | 2366 | return false; |
| 2369 | } | | |
| 2370 | | 2367 | |
| 2371 | if (actual.os.tag != host.os.tag) | 2368 | if (actual.os.tag != host.os.tag) |
| 2372 | return false; | 2369 | return false; |