diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig index 85257b9560..7dd9c17273 100644 --- a/lib/std/Build/Step/Compile.zig +++ b/lib/std/Build/Step/Compile.zig @@ -135,6 +135,9 @@ link_z_common_page_size: ?u64 = null, /// Maximum page size link_z_max_page_size: ?u64 = null, +/// Force a fatal error if any undefined symbols remain. +link_z_defs: bool = false, + /// (Darwin) Install name for the dylib install_name: ?[]const u8 = null, @@ -1550,6 +1553,10 @@ fn getZigArgs(compile: *Compile, fuzz: bool) ![][]const u8 { try zig_args.append("-z"); try zig_args.append(b.fmt("max-page-size={d}", .{size})); } + if (compile.link_z_defs) { + try zig_args.append("-z"); + try zig_args.append("defs"); + } if (compile.libc_file) |libc_file| { try zig_args.append("--libc");