Merge pull request 'add sparc64-linux-none to module test matrix' (#35348) from alexrp/zig:sparc64-linux into master

Reviewed-on: https://codeberg.org/ziglang/zig/pulls/35348
This commit is contained in:
Alex Rønne Petersen
2026-05-19 14:05:21 +02:00
7 changed files with 28 additions and 1 deletions
+2
View File
@@ -149,6 +149,8 @@ test "async with array return type" {
}
test "cancel blocked read from pipe" {
if (builtin.cpu.arch.isSPARC() and builtin.os.tag == .linux) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/35347
const global = struct {
fn readFromPipe(io: Io, pipe: Io.File) !void {
var buf: [1]u8 = undefined;
+2
View File
@@ -350,6 +350,8 @@ test "decompress compressed DNS name" {
}
test "cancel accept" {
if (builtin.cpu.arch.isSPARC() and builtin.os.tag == .linux) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/35347
const io = testing.io;
const localhost: net.IpAddress = .{ .ip4 = .loopback(0) };
+3
View File
@@ -324,6 +324,8 @@ test "Group materializes error.Cancel" {
}
test "Group task receives cancelation unknowingly" {
if (builtin.cpu.arch.isSPARC() and builtin.os.tag == .linux) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/35347
const S = struct {
io: Io,
err: ?Io.Cancelable!void,
@@ -628,6 +630,7 @@ test "randomSecure" {
test "memory mapping" {
if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; // mmap returned EINVAL
if (builtin.cpu.arch.isSPARC()) return error.SkipZigTest; // mmap returned EINVAL
if (builtin.os.tag == .wasi and builtin.link_libc) {
// https://github.com/ziglang/zig/issues/20747 (open fd does not have write permission)
return error.SkipZigTest;
+2
View File
@@ -448,6 +448,8 @@ test "acosBinary128.special" {
}
test "acosBinary128" {
if (builtin.cpu.arch.isSPARC()) return error.SkipZigTest;
try testing.expectApproxEqAbs(0x1.250e9a58f049eeafa99db4360c88p1, acosBinary128(-0x1.511bdb99a3c4373bedf834ef4f68p-1), math.floatEpsAt(f128, 0x1.250e9a58f049eeafa99db4360c88p1));
try testing.expectApproxEqAbs(0x1.2786664b1c676c99437b68590004p1, acosBinary128(-0x1.5879cc3ad6dfd2a52e9891c69808p-1), math.floatEpsAt(f128, 0x1.2786664b1c676c99437b68590004p1));
try testing.expectApproxEqAbs(0x1.cb190cd361c7c03a09c470b4caebp-1, acosBinary128(0x1.3f988ba64a7eb97a751c5f0b3077p-1), math.floatEpsAt(f128, 0x1.cb190cd361c7c03a09c470b4caebp-1));
+2
View File
@@ -442,6 +442,8 @@ test "asinBinary128.special" {
}
test "asinBinary128" {
if (builtin.cpu.arch.isSPARC()) return error.SkipZigTest;
try testing.expectApproxEqAbs(0x1.87e9c740d7837f8e8fa667988fbep-3, asinBinary128(0x1.85868ce287ca0196b01c25fec5ffp-3), math.floatEpsAt(f128, 0x1.87e9c740d7837f8e8fa667988fbep-3));
try testing.expectApproxEqAbs(0x1.bd11a474e864213b48e0f005f1f4p-1, asinBinary128(0x1.8718d6d30b4daed08d04ef59f478p-1), math.floatEpsAt(f128, 0x1.bd11a474e864213b48e0f005f1f4p-1));
try testing.expectApproxEqAbs(0x1.20b56f8b42649fe72d1f8d68a378p-1, asinBinary128(0x1.11a67640cd7f0ba5d5e362f3abfap-1), math.floatEpsAt(f128, 0x1.20b56f8b42649fe72d1f8d68a378p-1));
-1
View File
@@ -749,7 +749,6 @@ test "vector reduce operation" {
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_c and builtin.cpu.arch.isArm()) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isSPARC()) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/23719
const S = struct {
fn testReduce(comptime op: std.builtin.ReduceOp, x: anytype, expected: anytype) !void {
+17
View File
@@ -995,6 +995,23 @@ const module_test_targets = blk: {
.link_libc = true,
},
.{
.target = .{
.cpu_arch = .sparc64,
.os_tag = .linux,
.abi = .none,
},
},
// SPARC linking support is currently incomplete.
// .{
// .target = .{
// .cpu_arch = .sparc64,
// .os_tag = .linux,
// .abi = .gnu,
// },
// .link_libc = true,
// },
// Calls are normally lowered to branch instructions that only support +/- 16 MB range when
// targeting Thumb. This easily becomes insufficient for our test binaries, so use long
// calls to avoid out-of-range relocations.