authorgravatar for pat.github@tullmann.orgPat Tullmann <pat.github@tullmann.org> 2024-02-19 17:30:39-08:00
committergravatar for pat.github@tullmann.orgPat Tullmann <pat.github@tullmann.org> 2024-06-06 09:36:16-07:00
loged795a907d329487b5fdc6f21e2bace11998e5bf
tree57feb461b66bc7113decabdbf340e8270d06c5b3
parent8bee879fc247e9885202f690aac677717e708402

target.zig: Constrain aarch64 to glibc version 2.17 or later

Had constrained the `aarch64_be` target, but not `aarch64`. This constraint is necessary because earlier versions of glibc do not support the aarch64 architecture. Also, skip unsupported test cases.

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

lib/std/zig/target.zig+1-1
......@@ -12,7 +12,7 @@ pub const available_libcs = [_]ArchOsAbi{
1212 .{ .arch = .aarch64_be, .os = .linux, .abi = .gnu, .glibc_min = .{ .major = 2, .minor = 17, .patch = 0 } },
1313 .{ .arch = .aarch64_be, .os = .linux, .abi = .musl },
1414 .{ .arch = .aarch64_be, .os = .windows, .abi = .gnu },
15 .{ .arch = .aarch64, .os = .linux, .abi = .gnu },
15 .{ .arch = .aarch64, .os = .linux, .abi = .gnu, .glibc_min = .{ .major = 2, .minor = 17, .patch = 0 } },
1616 .{ .arch = .aarch64, .os = .linux, .abi = .musl },
1717 .{ .arch = .aarch64, .os = .windows, .abi = .gnu },
1818 .{ .arch = .aarch64, .os = .macos, .abi = .none, .os_ver = .{ .major = 11, .minor = 0, .patch = 0 } },
test/link/glibc_compat/build.zig+7
......@@ -47,6 +47,13 @@ pub fn build(b: *std.Build) void {
4747
4848 const glibc_ver = target.result.os.version_range.linux.glibc;
4949
50 // only build test if glibc version supports the architecture
51 if (target.result.cpu.arch.isAARCH64()) {
52 if (glibc_ver.order(.{ .major = 2, .minor = 17, .patch = 0 }) == .lt) {
53 continue;
54 }
55 }
56
5057 const exe = b.addExecutable(.{
5158 .name = t,
5259 .target = target,