| ... | @@ -12,10 +12,7 @@ pub const ArchOsAbi = struct { | ... | @@ -12,10 +12,7 @@ pub const ArchOsAbi = struct { |
| 12 | abi: std.Target.Abi, | 12 | abi: std.Target.Abi, |
| 13 | os_ver: ?std.SemanticVersion = null, | 13 | os_ver: ?std.SemanticVersion = null, |
| 14 | | 14 | |
| 15 | // Minimum glibc version that provides support for the arch/os (for | 15 | // Minimum glibc version that provides support for the arch/os when ABI is GNU. |
| 16 | // .abi = .gnu). For most entries, the .glibc_min is null, | | |
| 17 | // meaning the Zig minimum required by the standard library (see | | |
| 18 | // glibc_min_version) is sufficient. | | |
| 19 | glibc_min: ?std.SemanticVersion = null, | 16 | glibc_min: ?std.SemanticVersion = null, |
| 20 | }; | 17 | }; |
| 21 | | 18 | |
| ... | @@ -82,9 +79,6 @@ pub const available_libcs = [_]ArchOsAbi{ | ... | @@ -82,9 +79,6 @@ pub const available_libcs = [_]ArchOsAbi{ |
| 82 | .{ .arch = .x86_64, .os = .macos, .abi = .none, .os_ver = .{ .major = 10, .minor = 7, .patch = 0 } }, | 79 | .{ .arch = .x86_64, .os = .macos, .abi = .none, .os_ver = .{ .major = 10, .minor = 7, .patch = 0 } }, |
| 83 | }; | 80 | }; |
| 84 | | 81 | |
| 85 | /// Minimum glibc version, due to dependencies from the Zig standard library on glibc symbols | | |
| 86 | pub const glibc_min_version: std.SemanticVersion = .{ .major = 2, .minor = 17, .patch = 0 }; | | |
| 87 | | | |
| 88 | pub fn libCGenericName(target: std.Target) [:0]const u8 { | 82 | pub fn libCGenericName(target: std.Target) [:0]const u8 { |
| 89 | switch (target.os.tag) { | 83 | switch (target.os.tag) { |
| 90 | .windows => return "mingw", | 84 | .windows => return "mingw", |
| ... | @@ -165,7 +159,7 @@ pub fn canBuildLibC(target: std.Target) bool { | ... | @@ -165,7 +159,7 @@ pub fn canBuildLibC(target: std.Target) bool { |
| 165 | } | 159 | } |
| 166 | // Ensure glibc (aka *-linux-gnu) version is supported | 160 | // Ensure glibc (aka *-linux-gnu) version is supported |
| 167 | if (target.isGnuLibC()) { | 161 | if (target.isGnuLibC()) { |
| 168 | const min_glibc_ver = libc.glibc_min orelse glibc_min_version; | 162 | const min_glibc_ver = libc.glibc_min orelse return true; |
| 169 | const target_glibc_ver = target.os.version_range.linux.glibc; | 163 | const target_glibc_ver = target.os.version_range.linux.glibc; |
| 170 | return target_glibc_ver.order(min_glibc_ver) != .lt; | 164 | return target_glibc_ver.order(min_glibc_ver) != .lt; |
| 171 | } | 165 | } |