diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs index d9ab18e7250b0..9f6a24228d95f 100644 --- a/src/bootstrap/src/core/build_steps/dist.rs +++ b/src/bootstrap/src/core/build_steps/dist.rs @@ -2026,7 +2026,13 @@ fn install_llvm_file(builder: &Builder<'_>, source: &Path, destination: &Path) { return; } - builder.install(source, destination, 0o644); + if source.is_symlink() { + // Follow symlinks. E.g. if we're linking against libLLVM-18.so, then what gets loaded + // at runtime is libLLVM.so.18.1. + builder.install(&t!(fs::canonicalize(source)), destination, 0o644); + } else { + builder.install(&source, destination, 0o644); + } } /// Maybe add LLVM object files to the given destination lib-dir. Allows either static or dynamic linking. diff --git a/src/bootstrap/src/core/build_steps/llvm.rs b/src/bootstrap/src/core/build_steps/llvm.rs index 9622321a74e7c..9e42102f0221b 100644 --- a/src/bootstrap/src/core/build_steps/llvm.rs +++ b/src/bootstrap/src/core/build_steps/llvm.rs @@ -98,9 +98,6 @@ pub fn prebuilt_llvm_config( let out_dir = builder.llvm_out(target); let mut llvm_config_ret_dir = builder.llvm_out(builder.config.build); - if (!builder.config.build.is_msvc() || builder.ninja()) && !builder.config.llvm_from_ci { - llvm_config_ret_dir.push("build"); - } llvm_config_ret_dir.push("bin"); let build_llvm_config = llvm_config_ret_dir.join(exe("llvm-config", builder.config.build)); let llvm_cmake_dir = out_dir.join("lib/cmake/llvm"); diff --git a/src/tools/opt-dist/src/main.rs b/src/tools/opt-dist/src/main.rs index f9ff1a0a48603..ffb01210e0455 100644 --- a/src/tools/opt-dist/src/main.rs +++ b/src/tools/opt-dist/src/main.rs @@ -270,7 +270,8 @@ fn execute_pipeline( })?; let libdir = env.build_artifacts().join("stage2").join("lib"); - let llvm_lib = io::find_file_in_dir(&libdir, "libLLVM", ".so")?; + // The actual name will be something like libLLVM.so.18.1-rust-dev. + let llvm_lib = io::find_file_in_dir(&libdir, "libLLVM.so", "")?; log::info!("Optimizing {llvm_lib} with BOLT");