@@ -469,7 +469,6 @@ impl Step for Rustc {
469
469
fn prepare_image ( builder : & Builder < ' _ > , compiler : Compiler , image : & Path ) {
470
470
let host = compiler. host ;
471
471
let src = builder. sysroot ( compiler) ;
472
- let libdir = builder. rustc_libdir ( compiler) ;
473
472
474
473
// Copy rustc/rustdoc binaries
475
474
t ! ( fs:: create_dir_all( image. join( "bin" ) ) ) ;
@@ -481,20 +480,26 @@ impl Step for Rustc {
481
480
482
481
// Copy runtime DLLs needed by the compiler
483
482
if libdir_relative. to_str ( ) != Some ( "bin" ) {
483
+ let libdir = builder. rustc_libdir ( compiler) ;
484
484
for entry in builder. read_dir ( & libdir) {
485
485
let name = entry. file_name ( ) ;
486
486
if let Some ( s) = name. to_str ( ) {
487
487
if is_dylib ( s) {
488
- builder. install ( & entry. path ( ) , & image. join ( & libdir_relative) , 0o644 ) ;
488
+ // Don't use custom libdir here because ^lib/ will be resolved again
489
+ // with installer
490
+ builder. install ( & entry. path ( ) , & image. join ( "lib" ) , 0o644 ) ;
489
491
}
490
492
}
491
493
}
492
494
}
493
495
494
496
// Copy over the codegen backends
495
497
let backends_src = builder. sysroot_codegen_backends ( compiler) ;
496
- let backends_rel = backends_src. strip_prefix ( & src) . unwrap ( ) ;
497
- let backends_dst = image. join ( & backends_rel) ;
498
+ let backends_rel = backends_src. strip_prefix ( & src) . unwrap ( )
499
+ . strip_prefix ( builder. sysroot_libdir_relative ( compiler) ) . unwrap ( ) ;
500
+ // Don't use custom libdir here because ^lib/ will be resolved again with installer
501
+ let backends_dst = image. join ( "lib" ) . join ( & backends_rel) ;
502
+
498
503
t ! ( fs:: create_dir_all( & backends_dst) ) ;
499
504
builder. cp_r ( & backends_src, & backends_dst) ;
500
505
0 commit comments