Merge pull request #24689 from mlugg/build-no-watch-regression

build runner: fix FTBFS on targets without `--watch` implementation
This commit is contained in:
Matthew Lugg 2025-08-04 16:23:58 +01:00 committed by GitHub
commit 9b509dad30
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 0 deletions

View File

@ -502,6 +502,9 @@ pub fn main() !void {
};
}
// Comptime-known guard to prevent including the logic below when `!Watch.have_impl`.
if (!Watch.have_impl) unreachable;
try w.update(gpa, run.step_stack.keys());
// Wait until a file system notification arrives. Read all such events

View File

@ -4893,6 +4893,7 @@ fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
var fetch_mode: Package.Fetch.JobQueue.Mode = .needed;
var system_pkg_dir_path: ?[]const u8 = null;
var debug_target: ?[]const u8 = null;
var debug_libc_paths_file: ?[]const u8 = null;
const argv_index_exe = child_argv.items.len;
_ = try child_argv.addOne();
@ -5016,6 +5017,14 @@ fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
} else {
warn("Zig was compiled without debug extensions. --debug-target has no effect.", .{});
}
} else if (mem.eql(u8, arg, "--debug-libc")) {
if (i + 1 >= args.len) fatal("expected argument after '{s}'", .{arg});
i += 1;
if (build_options.enable_debug_extensions) {
debug_libc_paths_file = args[i];
} else {
warn("Zig was compiled without debug extensions. --debug-libc has no effect.", .{});
}
} else if (mem.eql(u8, arg, "--verbose-link")) {
verbose_link = true;
} else if (mem.eql(u8, arg, "--verbose-cc")) {
@ -5103,6 +5112,14 @@ fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
.is_explicit_dynamic_linker = false,
};
};
// Likewise, `--debug-libc` allows overriding the libc installation.
const libc_installation: ?*const LibCInstallation = lci: {
const paths_file = debug_libc_paths_file orelse break :lci null;
if (!build_options.enable_debug_extensions) unreachable;
const lci = try arena.create(LibCInstallation);
lci.* = try .parse(arena, paths_file, &resolved_target.result);
break :lci lci;
};
process.raiseFileDescriptorLimit();
@ -5367,6 +5384,7 @@ fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
}
const comp = Compilation.create(gpa, arena, .{
.libc_installation = libc_installation,
.dirs = dirs,
.root_name = "build",
.config = config,