| ... | @@ -86,15 +86,17 @@ pub const available_libcs = [_]ArchOsAbi{ | ... | @@ -86,15 +86,17 @@ pub const available_libcs = [_]ArchOsAbi{ |
| 86 | pub fn canBuildLibC(target: std.Target) bool { | 86 | pub fn canBuildLibC(target: std.Target) bool { |
| 87 | for (available_libcs) |libc| { | 87 | for (available_libcs) |libc| { |
| 88 | if (target.cpu.arch == libc.arch and target.os.tag == libc.os and target.abi == libc.abi) { | 88 | if (target.cpu.arch == libc.arch and target.os.tag == libc.os and target.abi == libc.abi) { |
| 89 | if (target.os.tag == .macos) { | 89 | if (libc.os_ver) |libc_os_ver| { |
| 90 | const ver = target.os.version_range.semver; | 90 | if (switch (target.os.versionRange()) { |
| 91 | return ver.min.order(libc.os_ver.?) != .lt; | 91 | .semver => |v| v, |
| | 92 | .linux => |v| v.range, |
| | 93 | else => null, |
| | 94 | }) |ver| { |
| | 95 | if (ver.min.order(libc_os_ver) == .lt) return false; |
| | 96 | } |
| 92 | } | 97 | } |
| 93 | // Ensure glibc (aka *-(linux,hurd)-gnu) version is supported | 98 | if (libc.glibc_min) |glibc_min| { |
| 94 | if (target.isGnuLibC()) { | 99 | if (target.os.versionRange().gnuLibCVersion().?.order(glibc_min) == .lt) return false; |
| 95 | const min_glibc_ver = libc.glibc_min orelse return true; | | |
| 96 | const target_glibc_ver = target.os.versionRange().gnuLibCVersion().?; | | |
| 97 | return target_glibc_ver.order(min_glibc_ver) != .lt; | | |
| 98 | } | 100 | } |
| 99 | return true; | 101 | return true; |
| 100 | } | 102 | } |