about summary refs log tree commit diff
path: root/src/bootstrap
diff options
context:
space:
mode:
authorDianQK <dianqk@dianqk.net>2024-06-19 21:32:18 +0800
committerDianQK <dianqk@dianqk.net>2024-06-19 22:33:59 +0800
commit80e43c128cf24f143a1bf58ffa972e78633cf8e9 (patch)
treec4d2a8d62df363042360b08c5c998dccbb33f717 /src/bootstrap
parent4281c2c3d5b6fe4ef4c6cf659c20da42209f2289 (diff)
downloadrust-80e43c128cf24f143a1bf58ffa972e78633cf8e9.tar.gz
rust-80e43c128cf24f143a1bf58ffa972e78633cf8e9.zip
patch an ELF file using `--add-rpath`
Diffstat (limited to 'src/bootstrap')
-rw-r--r--src/bootstrap/src/core/download.rs13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/bootstrap/src/core/download.rs b/src/bootstrap/src/core/download.rs
index 2b11b8c3d4f..fd077ab2d7c 100644
--- a/src/bootstrap/src/core/download.rs
+++ b/src/bootstrap/src/core/download.rs
@@ -173,15 +173,10 @@ impl Config {
         }
 
         let mut patchelf = Command::new(nix_deps_dir.join("bin/patchelf"));
-        let rpath_entries = {
-            // ORIGIN is a relative default, all binary and dynamic libraries we ship
-            // appear to have this (even when `../lib` is redundant).
-            // NOTE: there are only two paths here, delimited by a `:`
-            let mut entries = OsString::from("$ORIGIN/../lib:");
-            entries.push(t!(fs::canonicalize(nix_deps_dir)).join("lib"));
-            entries
-        };
-        patchelf.args(&[OsString::from("--set-rpath"), rpath_entries]);
+        patchelf.args(&[
+            OsString::from("--add-rpath"),
+            OsString::from(t!(fs::canonicalize(nix_deps_dir)).join("lib")),
+        ]);
         if !path_is_dylib(fname) {
             // Finally, set the correct .interp for binaries
             let dynamic_linker_path = nix_deps_dir.join("nix-support/dynamic-linker");