| ... | @@ -1282,20 +1282,11 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void { | ... | @@ -1282,20 +1282,11 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void { |
| 1282 | const gc_sections = self.base.options.gc_sections orelse !is_obj; | 1282 | const gc_sections = self.base.options.gc_sections orelse !is_obj; |
| 1283 | const stack_size = self.base.options.stack_size_override orelse 16777216; | 1283 | const stack_size = self.base.options.stack_size_override orelse 16777216; |
| 1284 | const allow_shlib_undefined = self.base.options.allow_shlib_undefined orelse !self.base.options.is_native_os; | 1284 | const allow_shlib_undefined = self.base.options.allow_shlib_undefined orelse !self.base.options.is_native_os; |
| 1285 | const compiler_rt_path: ?[]const u8 = if (self.base.options.include_compiler_rt) blk: { | 1285 | const compiler_rt_path: ?[]const u8 = blk: { |
| 1286 | // TODO: remove when stage2 can build compiler_rt.zig | 1286 | if (comp.compiler_rt_static_lib) |x| break :blk x.full_object_path; |
| 1287 | if (!self.base.options.use_llvm) break :blk null; | 1287 | if (comp.compiler_rt_obj) |x| break :blk x.full_object_path; |
| 1288 | | 1288 | break :blk null; |
| 1289 | // In the case of build-obj we include the compiler-rt symbols directly alongside | 1289 | }; |
| 1290 | // the symbols of the root source file, in the same compilation unit. | | |
| 1291 | if (is_obj) break :blk null; | | |
| 1292 | | | |
| 1293 | if (is_exe_or_dyn_lib) { | | |
| 1294 | break :blk comp.compiler_rt_static_lib.?.full_object_path; | | |
| 1295 | } else { | | |
| 1296 | break :blk comp.compiler_rt_obj.?.full_object_path; | | |
| 1297 | } | | |
| 1298 | } else null; | | |
| 1299 | | 1290 | |
| 1300 | // Here we want to determine whether we can save time by not invoking LLD when the | 1291 | // Here we want to determine whether we can save time by not invoking LLD when the |
| 1301 | // output is unchanged. None of the linker options or the object files that are being | 1292 | // output is unchanged. None of the linker options or the object files that are being |