File tree Expand file tree Collapse file tree 1 file changed +19
-2
lines changed Expand file tree Collapse file tree 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,
604604 } ;
605605
606606 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" ) ;
608612
609613 for index in range ( 0 , trans. modules . len ( ) ) {
610614 cmd. arg ( crate_output. with_extension ( format ! ( "{}.o" , index) . as_slice ( ) ) ) ;
611615 }
612616
613617 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+
614623 cmd. stdin ( :: std:: io:: process:: Ignored )
615624 . stdout ( :: std:: io:: process:: InheritFd ( 1 ) )
616625 . 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+ }
618635 } ;
619636
620637 // Flag to indicate whether the user explicitly requested bitcode.
You can’t perform that action at this time.
0 commit comments