zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 9b509dad30a9e7fa6f59e656c0df2b7e265b400a (tree)
parent 70c6a9fba67a10838cfbbc7554cfa164e9b06462
Author: Matthew Lugg <mlugg@mlugg.co.uk>
Date:   Mon,  4 Aug 2025 16:23:58 +0100

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

build runner: fix FTBFS on targets without `--watch` implementation
Diffstat:
Mlib/compiler/build_runner.zig | 3+++
Msrc/main.zig | 18++++++++++++++++++
2 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/lib/compiler/build_runner.zig b/lib/compiler/build_runner.zig @@ -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 diff --git a/src/main.zig b/src/main.zig @@ -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,