@@ -29,7 +29,7 @@ use crate::utils::helpers::{
29
29
self , exe, get_clang_cl_resource_dir, get_closest_merge_base_commit, is_debug_info, is_dylib,
30
30
symlink_dir, t, up_to_date,
31
31
} ;
32
- use crate :: { CLang , Compiler , DependencyType , GitRepo , Mode , LLVM_TOOLS } ;
32
+ use crate :: { CLang , Compiler , DependencyType , GitRepo , Mode } ;
33
33
34
34
#[ derive( Debug , Clone , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
35
35
pub struct Std {
@@ -1912,52 +1912,20 @@ impl Step for Assemble {
1912
1912
// delegates to the `rust-lld` binary for linking and then runs
1913
1913
// logic to create the final binary. This is used by the
1914
1914
// `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
+ ) ;
1951
1921
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
+ ) ;
1961
1929
1962
1930
// Ensure that `libLLVM.so` ends up in the newly build compiler directory,
1963
1931
// so that it can be found when the newly built `rustc` is run.
0 commit comments