about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWANG Rui <wangrui@loongson.cn>2023-07-15 11:07:26 +0800
committerWANG Rui <wangrui@loongson.cn>2023-07-15 21:54:43 +0800
commite326e1ad18acf4ae598b02228232bfd76e3a7fa6 (patch)
tree82fa456191bb93ba20e6b9432fea714c1c7f6132
parentad963232d9b987d66a6f8e6ec4141f672b8b9900 (diff)
downloadrust-e326e1ad18acf4ae598b02228232bfd76e3a7fa6.tar.gz
rust-e326e1ad18acf4ae598b02228232bfd76e3a7fa6.zip
Fix rpath for libdir is specified
Signed-off-by: WANG Rui <wangrui@loongson.cn>
-rw-r--r--src/bootstrap/builder.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
index 535a005c396..c6f88598b56 100644
--- a/src/bootstrap/builder.rs
+++ b/src/bootstrap/builder.rs
@@ -1644,6 +1644,7 @@ impl<'a> Builder<'a> {
         // fun to pass a flag to a tool to pass a flag to pass a flag to a tool
         // to change a flag in a binary?
         if self.config.rpath_enabled(target) && util::use_host_linker(target) {
+            let libdir = self.sysroot_libdir_relative(compiler).to_str().unwrap();
             let rpath = if target.contains("apple") {
                 // Note that we need to take one extra step on macOS to also pass
                 // `-Wl,-instal_name,@rpath/...` to get things to work right. To
@@ -1651,10 +1652,10 @@ impl<'a> Builder<'a> {
                 // so. Note that this is definitely a hack, and we should likely
                 // flesh out rpath support more fully in the future.
                 rustflags.arg("-Zosx-rpath-install-name");
-                Some("-Wl,-rpath,@loader_path/../lib")
+                Some(format!("-Wl,-rpath,@loader_path/../{}", libdir))
             } else if !target.contains("windows") && !target.contains("aix") {
                 rustflags.arg("-Clink-args=-Wl,-z,origin");
-                Some("-Wl,-rpath,$ORIGIN/../lib")
+                Some(format!("-Wl,-rpath,$ORIGIN/../{}", libdir))
             } else {
                 None
             };