File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -476,6 +476,9 @@ pub fn run_passes(sess: &Session,
476476 sess. fatal ( "can't perform LTO when using multiple codegen units" ) ;
477477 }
478478
479+ // Sanity check
480+ assert ! ( trans. modules. len( ) == sess. opts. cg. codegen_units) ;
481+
479482 unsafe {
480483 configure_llvm ( sess) ;
481484 }
@@ -607,6 +610,15 @@ pub fn run_passes(sess: &Session,
607610 } ;
608611
609612 let link_obj = |output_path : & Path | {
613+ // Running `ld -r` on a single input is kind of pointless.
614+ if sess. opts . cg . codegen_units == 1 {
615+ fs:: copy ( & crate_output. with_extension ( "0.o" ) ,
616+ output_path) . unwrap ( ) ;
617+ // Leave the .0.o file around, to mimic the behavior of the normal
618+ // code path.
619+ return ;
620+ }
621+
610622 // Some builds of MinGW GCC will pass --force-exe-suffix to ld, which
611623 // will automatically add a .exe extension if the extension is not
612624 // already .exe or .dll. To ensure consistent behavior on Windows, we
You can’t perform that action at this time.
0 commit comments