| ... | ... | @@ -3973,6 +3973,16 @@ fn updateStage1Module(comp: *Compilation, main_progress_node: *std.Progress.Node |
| 3973 | 3973 | const id_symlink_basename = "stage1.id"; |
| 3974 | 3974 | const libs_txt_basename = "libs.txt"; |
| 3975 | 3975 | |
| 3976 | // The include_compiler_rt stored in the bin file options here means that we need |
| 3977 | // compiler-rt symbols *somehow*. However, in the context of using the stage1 backend |
| 3978 | // we need to tell stage1 to include compiler-rt only if stage1 is the place that |
| 3979 | // needs to provide those symbols. Otherwise the stage2 infrastructure will take care |
| 3980 | // of it in the linker, by putting compiler_rt.o into a static archive, or linking |
| 3981 | // compiler_rt.a against an executable. In other words we only want to set this flag |
| 3982 | // for stage1 if we are using build-obj. |
| 3983 | const include_compiler_rt = comp.bin_file.options.output_mode == .Obj and |
| 3984 | comp.bin_file.options.include_compiler_rt; |
| 3985 | |
| 3976 | 3986 | // We are about to obtain this lock, so here we give other processes a chance first. |
| 3977 | 3987 | comp.releaseStage1Lock(); |
| 3978 | 3988 | |
| ... | ... | @@ -3994,7 +4004,7 @@ fn updateStage1Module(comp: *Compilation, main_progress_node: *std.Progress.Node |
| 3994 | 4004 | man.hash.add(target.os.getVersionRange()); |
| 3995 | 4005 | man.hash.add(comp.bin_file.options.dll_export_fns); |
| 3996 | 4006 | man.hash.add(comp.bin_file.options.function_sections); |
| 3997 | | man.hash.add(comp.bin_file.options.include_compiler_rt); |
| 4007 | man.hash.add(include_compiler_rt); |
| 3998 | 4008 | man.hash.add(comp.bin_file.options.is_test); |
| 3999 | 4009 | man.hash.add(comp.bin_file.options.emit != null); |
| 4000 | 4010 | man.hash.add(mod.emit_h != null); |
| ... | ... | @@ -4175,7 +4185,7 @@ fn updateStage1Module(comp: *Compilation, main_progress_node: *std.Progress.Node |
| 4175 | 4185 | .valgrind_enabled = comp.bin_file.options.valgrind, |
| 4176 | 4186 | .tsan_enabled = comp.bin_file.options.tsan, |
| 4177 | 4187 | .function_sections = comp.bin_file.options.function_sections, |
| 4178 | | .include_compiler_rt = comp.bin_file.options.include_compiler_rt, |
| 4188 | .include_compiler_rt = include_compiler_rt, |
| 4179 | 4189 | .enable_stack_probing = comp.bin_file.options.stack_check, |
| 4180 | 4190 | .red_zone = comp.bin_file.options.red_zone, |
| 4181 | 4191 | .enable_time_report = comp.time_report, |