@@ -19,6 +19,7 @@ use object::read::archive::ArchiveFile;
1919#[ cfg( feature = "tracing" ) ]
2020use tracing:: instrument;
2121
22+ use crate :: core:: build_steps:: compile:: { get_codegen_backend_file, normalize_codegen_backend_name} ;
2223use crate :: core:: build_steps:: doc:: DocumentationFormat ;
2324use crate :: core:: build_steps:: tool:: { self , RustcPrivateCompilers , Tool } ;
2425use crate :: core:: build_steps:: vendor:: { VENDOR_DIR , Vendor } ;
@@ -1442,35 +1443,29 @@ impl Step for CraneliftCodegenBackend {
14421443 tarball. is_preview ( true ) ;
14431444 tarball. add_legal_and_readme_to ( "share/doc/rustc_codegen_cranelift" ) ;
14441445
1445- builder. ensure ( compile:: CraneliftCodegenBackend { compilers } ) ;
1446+ let stamp = builder. ensure ( compile:: CraneliftCodegenBackend { compilers } ) ;
14461447
14471448 if builder. config . dry_run ( ) {
14481449 return None ;
14491450 }
14501451
1451- let src = builder . sysroot ( self . build_compiler ) ;
1452- let backends_src = builder. sysroot_codegen_backends ( self . build_compiler ) ;
1453- let backends_rel = backends_src
1454- . strip_prefix ( src )
1452+ // Get the relative path of where the codegen backend should be stored.
1453+ let backends_dst = builder. sysroot_codegen_backends ( compilers . target_compiler ( ) ) ;
1454+ let backends_rel = backends_dst
1455+ . strip_prefix ( builder . sysroot ( compilers . target_compiler ( ) ) )
14551456 . unwrap ( )
1456- . strip_prefix ( builder. sysroot_libdir_relative ( self . build_compiler ) )
1457+ . strip_prefix ( builder. sysroot_libdir_relative ( compilers . target_compiler ( ) ) )
14571458 . unwrap ( ) ;
14581459 // Don't use custom libdir here because ^lib/ will be resolved again with installer
14591460 let backends_dst = PathBuf :: from ( "lib" ) . join ( backends_rel) ;
14601461
1461- let mut found_backend = false ;
1462- for backend in fs:: read_dir ( & backends_src) . unwrap ( ) {
1463- let file_name = backend. unwrap ( ) . file_name ( ) ;
1464- if file_name. to_str ( ) . unwrap ( ) . contains ( "rustc_codegen_cranelift" ) {
1465- tarball. add_file (
1466- backends_src. join ( file_name) ,
1467- & backends_dst,
1468- FileType :: NativeLibrary ,
1469- ) ;
1470- found_backend = true ;
1471- }
1472- }
1473- assert ! ( found_backend) ;
1462+ let codegen_backend_dylib = get_codegen_backend_file ( & stamp) ;
1463+ tarball. add_renamed_file (
1464+ & codegen_backend_dylib,
1465+ & backends_dst,
1466+ & normalize_codegen_backend_name ( builder, & codegen_backend_dylib) ,
1467+ FileType :: NativeLibrary ,
1468+ ) ;
14741469
14751470 Some ( tarball. generate ( ) )
14761471 }
0 commit comments