let out_dir = builder.cargo_out(compiler, Mode::Codegen, target);
- let mut cargo =
- builder.cargo(compiler, Mode::Codegen, SourceType::Submodule, target, "build");
+ let mut cargo = builder.cargo(compiler, Mode::Codegen, SourceType::InTree, target, "build");
cargo
.arg("--manifest-path")
.arg(builder.src.join(format!("compiler/rustc_codegen_{}/Cargo.toml", backend)));
// for `-Z gcc-ld=lld`
let gcc_ld_dir = libdir_bin.join("gcc-ld");
t!(fs::create_dir(&gcc_ld_dir));
- builder.copy(
- &lld_install.join("bin").join(&src_exe),
- &gcc_ld_dir.join(exe("ld", target_compiler.host)),
- );
- builder.copy(
- &lld_install.join("bin").join(&src_exe),
- &gcc_ld_dir.join(exe("ld64", target_compiler.host)),
- );
+ for flavor in ["ld", "ld64"] {
+ let lld_wrapper_exe = builder.ensure(crate::tool::LldWrapper {
+ compiler: build_compiler,
+ target: target_compiler.host,
+ flavor_feature: flavor,
+ });
+ builder.copy(&lld_wrapper_exe, &gcc_ld_dir.join(exe(flavor, target_compiler.host)));
+ }
}
// Similarly, copy `llvm-dwp` into libdir for Split DWARF. Only copy it when the LLVM