| ... | @@ -201,8 +201,15 @@ pub const NativeTargetInfo = struct { | ... | @@ -201,8 +201,15 @@ pub const NativeTargetInfo = struct { |
| 201 | switch (Target.current.os.tag) { | 201 | switch (Target.current.os.tag) { |
| 202 | .linux => { | 202 | .linux => { |
| 203 | const uts = std.os.uname(); | 203 | const uts = std.os.uname(); |
| 204 | const release = mem.toSliceConst(u8, @ptrCast([*:0]const u8, &uts.release)); | 204 | const release = mem.toSliceConst(u8, &uts.release); |
| 205 | if (std.builtin.Version.parse(release)) |ver| { | 205 | // The release field may have several other fields after the |
| | 206 | // kernel version |
| | 207 | const kernel_version = if (mem.indexOfScalar(u8, release, '-')) |pos| |
| | 208 | release[0..pos] |
| | 209 | else |
| | 210 | release; |
| | 211 | |
| | 212 | if (std.builtin.Version.parse(kernel_version)) |ver| { |
| 206 | os.version_range.linux.range.min = ver; | 213 | os.version_range.linux.range.min = ver; |
| 207 | os.version_range.linux.range.max = ver; | 214 | os.version_range.linux.range.max = ver; |
| 208 | } else |err| switch (err) { | 215 | } else |err| switch (err) { |