authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-08-04 11:04:23+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-08-05 12:20:41+02:00
log27775f1a9eecc6142834affb524eadd33b9e56b7
treea435efb643f82390944f30c627ced253a143ba47
parent4ba9a6f44c07ac4501766704f39c2d749b01d8da
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.Target: Use v9 as the baseline CPU for sparc32.

It is impossible to even build projects like glibc when targeting a generic SPARC v8 CPU; LEON3 is effectively considered the baseline for `sparc-linux-gnu` now, particularly due to it supporting a CASA instruction similar to the one in SPARC v9. However, it's slightly incompatible with SPARC v9 due to having a different ASI tag, so resulting binaries would not be portable to regular SPARC CPUs. So, as the least bad option, make v9 the baseline for sparc32.

1 files changed, 1 insertions(+), 1 deletions(-)

lib/std/Target.zig+1-1
......@@ -1502,7 +1502,7 @@ pub const Cpu = struct {
15021502 .x86 => &x86.cpu.pentium4,
15031503 .nvptx, .nvptx64 => &nvptx.cpu.sm_20,
15041504 .s390x => &s390x.cpu.arch8,
1505 .sparc => &sparc.cpu.v8,
1505 .sparc => &sparc.cpu.v9, // glibc does not work with 'plain' v8.
15061506 .loongarch64 => &loongarch.cpu.loongarch64,
15071507
15081508 else => generic(arch),