authorgravatar for enfipy@gmail.comDavid <enfipy@gmail.com> 2026-10-21 18:57:44+05:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-10-23 02:16:42+02:00
logd760b840ec08ee5485354b113ebddcf8672b1cf4
tree531bc848392257525b8a3ccc72782880c3c08a76
parenta4695d4db91763b5aabe15c8cc4c906325815d50
signature Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

link: read the Darwin SDK version from `Version`

Simulator SDKs set `MinimalDisplayName` to "Simulator - 27.0", so linking with one as the libc failed with "failed to parse Darwin SDK version". Every SDK has a plain `Version`, which is also what clang reads.

2 files changed, 4 insertions(+), 4 deletions(-)

lib/libc/darwin/SDKSettings.json+1-1
...@@ -1 +1 @@...@@ -1 +1 @@
1{"MinimalDisplayName":"27.0"}1{"Version":"27.0"}
src/link.zig+3-3
...@@ -1270,16 +1270,16 @@ pub const File = struct {...@@ -1270,16 +1270,16 @@ pub const File = struct {
1270 else => return diags.failParse(sdk_settings_path, "failed to parse Darwin SDK settings: file is not a JSON object", .{}),1270 else => return diags.failParse(sdk_settings_path, "failed to parse Darwin SDK settings: file is not a JSON object", .{}),
1271 };1271 };
12721272
1273 const version_json = parsed_object.get("MinimalDisplayName") orelse return diags.failParse(1273 const version_json = parsed_object.get("Version") orelse return diags.failParse(
1274 sdk_settings_path,1274 sdk_settings_path,
1275 "failed to parse Darwin SDK settings: 'MinimalDisplayName' missing",1275 "failed to parse Darwin SDK settings: 'Version' missing",
1276 .{},1276 .{},
1277 );1277 );
1278 const version_str: []const u8 = switch (version_json) {1278 const version_str: []const u8 = switch (version_json) {
1279 .string => |str| str,1279 .string => |str| str,
1280 else => return diags.failParse(1280 else => return diags.failParse(
1281 sdk_settings_path,1281 sdk_settings_path,
1282 "failed to parse Darwin SDK settings: 'MinimalDisplayName' not a string",1282 "failed to parse Darwin SDK settings: 'Version' not a string",
1283 .{},1283 .{},
1284 ),1284 ),
1285 };1285 };