From 948bc91d12e147b46d54d82af5e9a9bc2ce25573 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Fri, 2 Aug 2024 09:52:19 +0200 Subject: [PATCH] std.Target.VersionRange: Make default() respect the minimum glibc version. --- lib/std/Target.zig | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/std/Target.zig b/lib/std/Target.zig index 8d9f596072..87bdffa5a0 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -483,7 +483,21 @@ pub const Os = struct { .min = .{ .major = 4, .minor = 19, .patch = 0 }, .max = .{ .major = 6, .minor = 5, .patch = 7 }, }, - .glibc = .{ .major = 2, .minor = 28, .patch = 0 }, + .glibc = blk: { + const default_min = .{ .major = 2, .minor = 28, .patch = 0 }; + + for (std.zig.target.available_libcs) |libc| { + // We don't know the ABI here. We can get away with not checking it + // for now, but that may not always remain true. + if (libc.os != tag or libc.arch != arch) continue; + + if (libc.glibc_min) |min| { + if (min.order(default_min) == .gt) break :blk min; + } + } + + break :blk default_min; + }, }, },