File tree 1 file changed +12
-0
lines changed
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,
476
476
sess. fatal ( "can't perform LTO when using multiple codegen units" ) ;
477
477
}
478
478
479
+ // Sanity check
480
+ assert ! ( trans. modules. len( ) == sess. opts. cg. codegen_units) ;
481
+
479
482
unsafe {
480
483
configure_llvm ( sess) ;
481
484
}
@@ -607,6 +610,15 @@ pub fn run_passes(sess: &Session,
607
610
} ;
608
611
609
612
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
+
610
622
// Some builds of MinGW GCC will pass --force-exe-suffix to ld, which
611
623
// will automatically add a .exe extension if the extension is not
612
624
// already .exe or .dll. To ensure consistent behavior on Windows, we
You can’t perform that action at this time.
0 commit comments