From e326e1ad18acf4ae598b02228232bfd76e3a7fa6 Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Sat, 15 Jul 2023 11:07:26 +0800 Subject: [PATCH] Fix rpath for libdir is specified Signed-off-by: WANG Rui --- src/bootstrap/builder.rs | 5 +++-- 1 file 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 @@ pub fn cargo( // 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 @@ pub fn cargo( // 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 };