authorgravatar for michael.dusan@gmail.comMichael Dusan <michael.dusan@gmail.com> 2023-06-23 17:46:57-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-06-23 23:41:29-07:00
log1cf06706be7408a84c7b2ef0530c7a6af51ee41a
treee16dc1c62d248aabd672ed9e5924cd91c3fd8965
parent148e2a5a89c978dab8037e08f940803ff494acbf

openbsd: fix NativeTargetInfo semver

- supply ".0" as .Z component and satisfy semver X.Y.Z requirement - previously only X.Y was supplied and semver parse failed

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

lib/std/zig/system/NativeTargetInfo.zig+9-2
......@@ -132,7 +132,9 @@ pub fn detect(cross_target: CrossTarget) DetectError!NativeTargetInfo {
132132 std.os.KERN.OSRELEASE,
133133 };
134134 var buf: [64]u8 = undefined;
135 var len: usize = buf.len;
135 // consider that sysctl result includes null-termination
136 // reserve 1 byte to ensure we never overflow when appending ".0"
137 var len: usize = buf.len - 1;
136138
137139 std.os.sysctl(&mib, &buf, &len, null, 0) catch |err| switch (err) {
138140 error.NameTooLong => unreachable, // constant, known good value
......@@ -142,7 +144,12 @@ pub fn detect(cross_target: CrossTarget) DetectError!NativeTargetInfo {
142144 error.Unexpected => return error.OSVersionDetectionFail,
143145 };
144146
145 if (std.SemanticVersion.parse(buf[0 .. len - 1])) |ver| {
147 // append ".0" to satisfy semver
148 buf[len - 1] = '.';
149 buf[len] = '0';
150 len += 1;
151
152 if (std.SemanticVersion.parse(buf[0..len])) |ver| {
146153 os.version_range.semver.min = ver;
147154 os.version_range.semver.max = ver;
148155 } else |_| {