aboutsummaryrefslogtreecommitdiff
path: root/src/Compilation.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-09-29 01:28:48 -0700
committerAndrew Kelley <andrew@ziglang.org>2020-09-29 01:30:35 -0700
commit3efdd7b2ad6cce5985d761240636b3d5eb3b4c84 (patch)
tree130330bddb26b0d4f4f7d39a250552220294f955 /src/Compilation.zig
parentd3a99c7bd5396f2e458d844368ce2743934e43e2 (diff)
downloadzig-3efdd7b2ad6cce5985d761240636b3d5eb3b4c84.tar.gz
zig-3efdd7b2ad6cce5985d761240636b3d5eb3b4c84.zip
don't try to build musl crti.o crtn.o when it's not needed
such as on RISC-V
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 },