41 lines
1.9 KiB
Diff
41 lines
1.9 KiB
Diff
|
commit 6067315d58ff3d49b305ae3c99810656856c8e21
|
||
|
Author: Josh Stone <jistone@redhat.com>
|
||
|
Date: Mon Mar 30 14:03:39 2020 -0700
|
||
|
|
||
|
Ensure LLVM is in the link path for "fulldeps" tests
|
||
|
|
||
|
This is a follow-up to #70123, which added `llvm-config --libdir` to the
|
||
|
`LIBRARY_PATH` for rustc tools. We need the same for "run-make-fulldeps"
|
||
|
and "ui-fulldeps" tests which depend on compiler libraries, implicitly
|
||
|
needing to link to `-lLLVM` as well.
|
||
|
|
||
|
diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs
|
||
|
index 5b946b05735d..2499856235f1 100644
|
||
|
--- a/src/bootstrap/test.rs
|
||
|
+++ b/src/bootstrap/test.rs
|
||
|
@@ -21,7 +21,7 @@ use crate::flags::Subcommand;
|
||
|
use crate::native;
|
||
|
use crate::tool::{self, SourceType, Tool};
|
||
|
use crate::toolstate::ToolState;
|
||
|
-use crate::util::{self, dylib_path, dylib_path_var};
|
||
|
+use crate::util::{self, add_link_lib_path, dylib_path, dylib_path_var};
|
||
|
use crate::Crate as CargoCrate;
|
||
|
use crate::{envify, DocTests, GitRepo, Mode};
|
||
|
|
||
|
@@ -1178,6 +1178,15 @@ impl Step for Compiletest {
|
||
|
cmd.arg("--system-llvm");
|
||
|
}
|
||
|
|
||
|
+ // Tests that use compiler libraries may inherit the `-lLLVM` link
|
||
|
+ // requirement, but the `-L` library path is not propagated across
|
||
|
+ // separate compilations. We can add LLVM's library path to the
|
||
|
+ // platform-specific environment variable as a workaround.
|
||
|
+ if !builder.config.dry_run && suite.ends_with("fulldeps") {
|
||
|
+ let llvm_libdir = output(Command::new(&llvm_config).arg("--libdir"));
|
||
|
+ add_link_lib_path(vec![llvm_libdir.trim().into()], &mut cmd);
|
||
|
+ }
|
||
|
+
|
||
|
// Only pass correct values for these flags for the `run-make` suite as it
|
||
|
// requires that a C++ compiler was configured which isn't always the case.
|
||
|
if !builder.config.dry_run && suite == "run-make-fulldeps" {
|