authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-01-04 23:20:02-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-01-05 00:19:16-08:00
log36044a0e81702954e0ad5d5bd14a8b23929e7db8
treebfaeaabd5241e09aa21895bb93a23157f495dac0
parent75f417108c20f6bf8403202b6ec177f69497bcd8

test-standalone: explicitly link to advapi32 sometimes

Now, nearly every object produced by zig has a dependency on advapi32.dll due to the dependency on RtlGenRandom due to the implementation of dirCreateFileAtomic which is now analyzed whether or not it is used.

3 files changed, 3 insertions(+), 0 deletions(-)

test/standalone/issue_5825/build.zig+1
...@@ -32,6 +32,7 @@ pub fn build(b: *std.Build) void {...@@ -32,6 +32,7 @@ pub fn build(b: *std.Build) void {
32 }),32 }),
33 });33 });
34 exe.subsystem = .console;34 exe.subsystem = .console;
35 exe.root_module.linkSystemLibrary("advapi32", .{}); // for RtlGenRandom
35 exe.root_module.linkSystemLibrary("kernel32", .{});36 exe.root_module.linkSystemLibrary("kernel32", .{});
36 exe.root_module.linkSystemLibrary("ntdll", .{});37 exe.root_module.linkSystemLibrary("ntdll", .{});
37 exe.root_module.addObject(obj);38 exe.root_module.addObject(obj);
test/standalone/test_obj_link_run/build.zig+1
...@@ -12,6 +12,7 @@ pub fn build(b: *std.Build) void {...@@ -12,6 +12,7 @@ pub fn build(b: *std.Build) void {
12 test_obj.root_module.linkSystemLibrary("ntdll", .{});12 test_obj.root_module.linkSystemLibrary("ntdll", .{});
13 test_obj.root_module.linkSystemLibrary("kernel32", .{});13 test_obj.root_module.linkSystemLibrary("kernel32", .{});
14 test_obj.root_module.linkSystemLibrary("ws2_32", .{});14 test_obj.root_module.linkSystemLibrary("ws2_32", .{});
15 test_obj.root_module.linkSystemLibrary("advapi32", .{}); // for RtlGenRandom
15 }16 }
1617
17 const test_exe_mod = b.createModule(.{18 const test_exe_mod = b.createModule(.{
test/standalone/windows_argv/build.zig+1
...@@ -86,6 +86,7 @@ pub fn build(b: *std.Build) !void {...@@ -86,6 +86,7 @@ pub fn build(b: *std.Build) !void {
86 .optimize = optimize,86 .optimize = optimize,
87 }),87 }),
88 });88 });
89 lib_msvc.root_module.linkSystemLibrary("advapi32", .{}); // for RtlGenRandom
89 const verify_msvc = b.addExecutable(.{90 const verify_msvc = b.addExecutable(.{
90 .name = "verify-msvc",91 .name = "verify-msvc",
91 .root_module = b.createModule(.{92 .root_module = b.createModule(.{