about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJesus Checa Hidalgo <jchecahi@redhat.com>2025-05-07 16:32:46 +0200
committerJesus Checa Hidalgo <jchecahi@redhat.com>2025-05-07 16:32:46 +0200
commitcd2dc67eadb6105790520223965deef6c5887f7a (patch)
tree6a2fbc36bbf52463c87b34d2ec36a053d8598ece
parent891b8525477f5c41a9e56d7b70d64b41e7c344e3 (diff)
downloadrust-cd2dc67eadb6105790520223965deef6c5887f7a.tar.gz
rust-cd2dc67eadb6105790520223965deef6c5887f7a.zip
run-make-support: set rustc dylib path for cargo wrapper
Some run-make tests invoke Cargo via run_make_support::cargo(), but fail to
execute correctly when rustc is built without rpath. In these setups, runtime
loading of rustc’s shared libraries fails unless the appropriate dynamic library
path is set manually.

This commit updates the cargo() wrapper to call set_host_compiler_dylib_path(),
aligning its behavior with the existing rustc() wrapper:
https://github.com/rust-lang/rust/blob/f76c7367c6363d33ddb5a93b5de0d158b2d827f6/src/tools/run-make-support/src/external_deps/rustc.rs#L39

This ensures that Cargo invocations during tests inherit the necessary dylib
paths, avoiding errors related to missing shared libraries in rpath-less builds.

Fixes part of #140738
-rw-r--r--src/tools/run-make-support/src/external_deps/cargo.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/tools/run-make-support/src/external_deps/cargo.rs b/src/tools/run-make-support/src/external_deps/cargo.rs
index e91d101cb99..8da9f002c41 100644
--- a/src/tools/run-make-support/src/external_deps/cargo.rs
+++ b/src/tools/run-make-support/src/external_deps/cargo.rs
@@ -1,8 +1,11 @@
 use crate::command::Command;
 use crate::env_var;
+use crate::util::set_host_compiler_dylib_path;
 
 /// Returns a command that can be used to invoke cargo. The cargo is provided by compiletest
 /// through the `CARGO` env var.
 pub fn cargo() -> Command {
-    Command::new(env_var("CARGO"))
+    let mut cmd = Command::new(env_var("CARGO"));
+    set_host_compiler_dylib_path(&mut cmd);
+    cmd
 }