authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-12-18 09:50:07-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-12-23 22:15:10-08:00
log1264469a41e89e72635c3b60b4cd3dca17876964
treefaf1a8ae1dc20b72abd562d101684c1151732662
parent54865e0483bf02bc1ace9f06c00071fce32534cc

compiler: fix build from source on macOS


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

lib/std/zig/LibCInstallation.zig+2-2
......@@ -177,9 +177,9 @@ pub fn findNative(gpa: Allocator, io: Io, args: FindNativeOptions) FindError!Lib
177177 var self: LibCInstallation = .{};
178178
179179 if (is_darwin and args.target.os.tag.isDarwin()) {
180 if (!std.zig.system.darwin.isSdkInstalled(gpa))
180 if (!std.zig.system.darwin.isSdkInstalled(gpa, io))
181181 return error.DarwinSdkNotFound;
182 const sdk = std.zig.system.darwin.getSdk(gpa, args.target) orelse
182 const sdk = std.zig.system.darwin.getSdk(gpa, io, args.target) orelse
183183 return error.DarwinSdkNotFound;
184184 defer gpa.free(sdk);
185185
lib/std/zig/system/NativePaths.zig+7-6
......@@ -1,11 +1,12 @@
1const std = @import("../../std.zig");
1const NativePaths = @This();
22const builtin = @import("builtin");
3
4const std = @import("../../std.zig");
5const Io = std.Io;
36const Allocator = std.mem.Allocator;
47const process = std.process;
58const mem = std.mem;
69
7const NativePaths = @This();
8
910arena: Allocator,
1011include_dirs: std.ArrayList([]const u8) = .empty,
1112lib_dirs: std.ArrayList([]const u8) = .empty,
......@@ -13,7 +14,7 @@ framework_dirs: std.ArrayList([]const u8) = .empty,
1314rpaths: std.ArrayList([]const u8) = .empty,
1415warnings: std.ArrayList([]const u8) = .empty,
1516
16pub fn detect(arena: Allocator, native_target: *const std.Target) !NativePaths {
17pub fn detect(arena: Allocator, io: Io, native_target: *const std.Target) !NativePaths {
1718 var self: NativePaths = .{ .arena = arena };
1819 var is_nix = false;
1920 if (process.getEnvVarOwned(arena, "NIX_CFLAGS_COMPILE")) |nix_cflags_compile| {
......@@ -115,8 +116,8 @@ pub fn detect(arena: Allocator, native_target: *const std.Target) !NativePaths {
115116
116117 // TODO: consider also adding macports paths
117118 if (builtin.target.os.tag.isDarwin()) {
118 if (std.zig.system.darwin.isSdkInstalled(arena)) sdk: {
119 const sdk = std.zig.system.darwin.getSdk(arena, native_target) orelse break :sdk;
119 if (std.zig.system.darwin.isSdkInstalled(arena, io)) sdk: {
120 const sdk = std.zig.system.darwin.getSdk(arena, io, native_target) orelse break :sdk;
120121 try self.addLibDir(try std.fs.path.join(arena, &.{ sdk, "usr/lib" }));
121122 try self.addFrameworkDir(try std.fs.path.join(arena, &.{ sdk, "System/Library/Frameworks" }));
122123 try self.addIncludeDir(try std.fs.path.join(arena, &.{ sdk, "usr/include" }));
src/link/MachO.zig+3-3
......@@ -617,7 +617,7 @@ pub fn flush(
617617 else => |e| return diags.fail("failed to write code signature: {s}", .{@errorName(e)}),
618618 };
619619 const emit = self.base.emit;
620 invalidateKernelCache(emit.root_dir.handle, emit.sub_path) catch |err| switch (err) {
620 invalidateKernelCache(io, emit.root_dir.handle, emit.sub_path) catch |err| switch (err) {
621621 else => |e| return diags.fail("failed to invalidate kernel cache: {t}", .{e}),
622622 };
623623 }
......@@ -3621,11 +3621,11 @@ pub fn getTarget(self: *const MachO) *const std.Target {
36213621/// into a new inode, remove the original file, and rename the copy to match
36223622/// the original file. This is super messy, but there doesn't seem any other
36233623/// way to please the XNU.
3624pub fn invalidateKernelCache(dir: Io.Dir, sub_path: []const u8) !void {
3624pub fn invalidateKernelCache(io: Io, dir: Io.Dir, sub_path: []const u8) !void {
36253625 const tracy = trace(@src());
36263626 defer tracy.end();
36273627 if (builtin.target.os.tag.isDarwin() and builtin.target.cpu.arch == .aarch64) {
3628 try dir.copyFile(sub_path, dir, sub_path, .{});
3628 try dir.copyFile(sub_path, dir, sub_path, io, .{});
36293629 }
36303630}
36313631
src/main.zig+2-3
......@@ -3985,9 +3985,8 @@ fn createModule(
39853985 resolved_target.is_native_os and resolved_target.is_native_abi and
39863986 create_module.want_native_include_dirs)
39873987 {
3988 var paths = std.zig.system.NativePaths.detect(arena, target) catch |err| {
3989 fatal("unable to detect native system paths: {s}", .{@errorName(err)});
3990 };
3988 var paths = std.zig.system.NativePaths.detect(arena, io, target) catch |err|
3989 fatal("unable to detect native system paths: {t}", .{err});
39913990 for (paths.warnings.items) |warning| {
39923991 warn("{s}", .{warning});
39933992 }