File tree 1 file changed +19
-2
lines changed
1 file changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -604,17 +604,34 @@ pub fn run_passes(sess: &Session,
604
604
} ;
605
605
606
606
let link_obj = |output_path : & Path | {
607
- let mut cmd = Command :: new ( "ld" ) ;
607
+ let pname = get_cc_prog ( sess) ;
608
+ let mut cmd = Command :: new ( pname. as_slice ( ) ) ;
609
+
610
+ cmd. args ( sess. targ_cfg . target_strs . cc_args . as_slice ( ) ) ;
611
+ cmd. arg ( "-nostdlib" ) ;
608
612
609
613
for index in range ( 0 , trans. modules . len ( ) ) {
610
614
cmd. arg ( crate_output. with_extension ( format ! ( "{}.o" , index) . as_slice ( ) ) ) ;
611
615
}
612
616
613
617
cmd. arg ( "-r" ) . arg ( "-o" ) . arg ( output_path) ;
618
+
619
+ if ( sess. opts . debugging_opts & config:: PRINT_LINK_ARGS ) != 0 {
620
+ println ! ( "{}" , & cmd) ;
621
+ }
622
+
614
623
cmd. stdin ( :: std:: io:: process:: Ignored )
615
624
. stdout ( :: std:: io:: process:: InheritFd ( 1 ) )
616
625
. stderr ( :: std:: io:: process:: InheritFd ( 2 ) ) ;
617
- cmd. status ( ) . unwrap ( ) ;
626
+ match cmd. status ( ) {
627
+ Ok ( _) => { } ,
628
+ Err ( e) => {
629
+ sess. err ( format ! ( "could not exec the linker `{}`: {}" ,
630
+ pname,
631
+ e) . as_slice ( ) ) ;
632
+ sess. abort_if_errors ( ) ;
633
+ } ,
634
+ }
618
635
} ;
619
636
620
637
// Flag to indicate whether the user explicitly requested bitcode.
You can’t perform that action at this time.
0 commit comments