From 9e674af66903a82676118a409a3487beb05fbfc9 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Thu, 3 Jun 2021 11:37:17 +0200 Subject: [PATCH] fix testing Miri with --stage 0 --- src/bootstrap/builder.rs | 10 +++++++++- src/bootstrap/test.rs | 4 ++-- src/bootstrap/util.rs | 1 + 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs index f3049a74757..da298f7edb9 100644 --- a/src/bootstrap/builder.rs +++ b/src/bootstrap/builder.rs @@ -709,7 +709,15 @@ pub fn add_rustc_lib_path(&self, compiler: Compiler, cmd: &mut Command) { return; } - add_dylib_path(vec![self.rustc_libdir(compiler)], cmd); + let mut dylib_dirs = vec![self.rustc_libdir(compiler)]; + + // Ensure that the downloaded LLVM libraries can be found. + if self.config.llvm_from_ci { + let ci_llvm_lib = self.out.join(&*compiler.host.triple).join("ci-llvm").join("lib"); + dylib_dirs.push(ci_llvm_lib); + } + + add_dylib_path(dylib_dirs, cmd); } /// Gets a path to the compiler specified. diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs index 16b3c6419e8..7bd29c61b0c 100644 --- a/src/bootstrap/test.rs +++ b/src/bootstrap/test.rs @@ -449,6 +449,7 @@ fn run(self, builder: &Builder<'_>) { SourceType::Submodule, &[], ); + cargo.add_rustc_lib_path(builder, compiler); cargo.arg("--").arg("miri").arg("setup"); // Tell `cargo miri setup` where to find the sources. @@ -500,6 +501,7 @@ fn run(self, builder: &Builder<'_>) { SourceType::Submodule, &[], ); + cargo.add_rustc_lib_path(builder, compiler); // miri tests need to know about the stage sysroot cargo.env("MIRI_SYSROOT", miri_sysroot); @@ -508,8 +510,6 @@ fn run(self, builder: &Builder<'_>) { cargo.arg("--").args(builder.config.cmd.test_args()); - cargo.add_rustc_lib_path(builder, compiler); - let mut cargo = Command::from(cargo); if !try_run(builder, &mut cargo) { return; diff --git a/src/bootstrap/util.rs b/src/bootstrap/util.rs index b4421a82714..4c1cd758f0d 100644 --- a/src/bootstrap/util.rs +++ b/src/bootstrap/util.rs @@ -45,6 +45,7 @@ pub fn libdir(target: TargetSelection) -> &'static str { } /// Adds a list of lookup paths to `cmd`'s dynamic library lookup path. +/// If The dylib_path_par is already set for this cmd, the old value will be overwritten! pub fn add_dylib_path(path: Vec, cmd: &mut Command) { let mut list = dylib_path(); for path in path {