@@ -29,7 +29,7 @@ use crate::utils::helpers::{
2929 self , exe, get_clang_cl_resource_dir, get_closest_merge_base_commit, is_debug_info, is_dylib,
3030 symlink_dir, t, up_to_date,
3131} ;
32- use crate :: { CLang , Compiler , DependencyType , GitRepo , Mode , LLVM_TOOLS } ;
32+ use crate :: { CLang , Compiler , DependencyType , GitRepo , Mode } ;
3333
3434#[ derive( Debug , Clone , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
3535pub struct Std {
@@ -1912,52 +1912,20 @@ impl Step for Assemble {
19121912 // delegates to the `rust-lld` binary for linking and then runs
19131913 // logic to create the final binary. This is used by the
19141914 // `wasm32-wasip2` target of Rust.
1915- if builder. tool_enabled ( "wasm-component-ld" ) {
1916- let wasm_component_ld_exe =
1917- builder. ensure ( crate :: core:: build_steps:: tool:: WasmComponentLd {
1918- compiler : build_compiler,
1919- target : target_compiler. host ,
1920- } ) ;
1921- builder. copy_link (
1922- & wasm_component_ld_exe,
1923- & libdir_bin. join ( wasm_component_ld_exe. file_name ( ) . unwrap ( ) ) ,
1924- ) ;
1925- }
1926-
1927- if builder. config . llvm_enabled ( target_compiler. host ) {
1928- let llvm:: LlvmResult { llvm_config, .. } =
1929- builder. ensure ( llvm:: Llvm { target : target_compiler. host } ) ;
1930- if !builder. config . dry_run ( ) && builder. config . llvm_tools_enabled {
1931- let llvm_bin_dir =
1932- command ( llvm_config) . arg ( "--bindir" ) . run_capture_stdout ( builder) . stdout ( ) ;
1933- let llvm_bin_dir = Path :: new ( llvm_bin_dir. trim ( ) ) ;
1934-
1935- // Since we've already built the LLVM tools, install them to the sysroot.
1936- // This is the equivalent of installing the `llvm-tools-preview` component via
1937- // rustup, and lets developers use a locally built toolchain to
1938- // build projects that expect llvm tools to be present in the sysroot
1939- // (e.g. the `bootimage` crate).
1940- for tool in LLVM_TOOLS {
1941- let tool_exe = exe ( tool, target_compiler. host ) ;
1942- let src_path = llvm_bin_dir. join ( & tool_exe) ;
1943- // When using `download-ci-llvm`, some of the tools
1944- // may not exist, so skip trying to copy them.
1945- if src_path. exists ( ) {
1946- builder. copy_link ( & src_path, & libdir_bin. join ( & tool_exe) ) ;
1947- }
1948- }
1949- }
1950- }
1915+ dist:: maybe_install_wasm_component_ld (
1916+ builder,
1917+ build_compiler,
1918+ target_compiler. host ,
1919+ & libdir_bin,
1920+ ) ;
19511921
1952- if builder. config . llvm_bitcode_linker_enabled {
1953- let src_path = builder. ensure ( crate :: core:: build_steps:: tool:: LlvmBitcodeLinker {
1954- compiler : build_compiler,
1955- target : target_compiler. host ,
1956- extra_features : vec ! [ ] ,
1957- } ) ;
1958- let tool_exe = exe ( "llvm-bitcode-linker" , target_compiler. host ) ;
1959- builder. copy_link ( & src_path, & libdir_bin. join ( tool_exe) ) ;
1960- }
1922+ dist:: maybe_install_llvm_tools ( builder, target_compiler. host , & libdir_bin) ;
1923+ dist:: maybe_install_llvm_bitcode_linker (
1924+ builder,
1925+ build_compiler,
1926+ target_compiler. host ,
1927+ & libdir_bin,
1928+ ) ;
19611929
19621930 // Ensure that `libLLVM.so` ends up in the newly build compiler directory,
19631931 // so that it can be found when the newly built `rustc` is run.
0 commit comments