authorgravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2026-04-25 19:19:04+01:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-04-25 21:49:38+02:00
log9ba89394df62b8b080d667075e3a592c5a9594a5
treeadee580b4c2f72f8754aed0e58bf8356c1ab6849
parent31bc385a96b98858889837f8b8256b7e2bf7be4c
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

compiler: raise FD limit before opening link inputs


1 files changed, 5 insertions(+), 2 deletions(-)

src/main.zig+5-2
......@@ -977,6 +977,11 @@ fn buildOutputType(
977977 var cc_argv: std.ArrayList([]const u8) = .empty;
978978 var deps: std.ArrayList(CliModule.Dep) = .empty;
979979
980 // We need to raise the FD limit *before* CLI parsing, because we open link inputs during CLI
981 // parsing (in `createModule`), so a large number of link inputs could push us past the limit on
982 // targets with a low soft limit (e.g. macOS has a default limit of 256).
983 process.raiseFileDescriptorLimit();
984
980985 // Contains every module specified via -M. The dependencies are added
981986 // after argument parsing is completed. We use a StringArrayHashMap to make
982987 // error output consistent. "root" is special.
......@@ -3534,8 +3539,6 @@ fn buildOutputType(
35343539 break :b .whole;
35353540 };
35363541
3537 process.raiseFileDescriptorLimit();
3538
35393542 var file_system_inputs: std.ArrayList(u8) = .empty;
35403543 defer file_system_inputs.deinit(gpa);
35413544