aboutsummaryrefslogtreecommitdiff
path: root/src/Compilation.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Compilation.zig')
-rw-r--r--src/Compilation.zig11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 1cd0d6c099..c3cda196de 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -855,9 +855,14 @@ pub fn create(gpa: *Allocator, options: InitOptions) !*Compilation {
try comp.addBuildingGLibCJobs();
}
if (comp.wantBuildMuslFromSource()) {
- try comp.work_queue.write(&[_]Job{
- .{ .musl_crt_file = .crti_o },
- .{ .musl_crt_file = .crtn_o },
+ try comp.work_queue.ensureUnusedCapacity(5);
+ if (target_util.libc_needs_crti_crtn(comp.getTarget())) {
+ comp.work_queue.writeAssumeCapacity(&[_]Job{
+ .{ .musl_crt_file = .crti_o },
+ .{ .musl_crt_file = .crtn_o },
+ });
+ }
+ comp.work_queue.writeAssumeCapacity(&[_]Job{
.{ .musl_crt_file = .crt1_o },
.{ .musl_crt_file = .scrt1_o },
.{ .musl_crt_file = .libc_a },