linker: Bail out of rpath logic early if the target doesn't support r… · rust-lang/rust@5f9a0d3 (original) (raw)
File tree
3 files changed
lines changed
- compiler/rustc_codegen_ssa/src/back
3 files changed
lines changed
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -2096,6 +2096,10 @@ fn add_rpath_args( | ||
| 2096 | 2096 | codegen_results: &CodegenResults, |
| 2097 | 2097 | out_filename: &Path, |
| 2098 | 2098 | ) { |
| 2099 | +if !sess.target.has_rpath { | |
| 2100 | +return; | |
| 2101 | +} | |
| 2102 | + | |
| 2099 | 2103 | // FIXME (#2397): At some point we want to rpath our guesses as to |
| 2100 | 2104 | // where extern libraries might live, based on the |
| 2101 | 2105 | // add_lib_search_paths |
| @@ -2114,7 +2118,6 @@ fn add_rpath_args( | ||
| 2114 | 2118 | let rpath_config = RPathConfig { |
| 2115 | 2119 | libs: &*libs, |
| 2116 | 2120 | out_filename: out_filename.to_path_buf(), |
| 2117 | -has_rpath: sess.target.has_rpath, | |
| 2118 | 2121 | is_like_osx: sess.target.is_like_osx, |
| 2119 | 2122 | linker_is_gnu: sess.target.linker_flavor.is_gnu(), |
| 2120 | 2123 | }; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -9,16 +9,10 @@ pub struct RPathConfig<'a> { | ||
| 9 | 9 | pub libs: &'a [&'a Path], |
| 10 | 10 | pub out_filename: PathBuf, |
| 11 | 11 | pub is_like_osx: bool, |
| 12 | -pub has_rpath: bool, | |
| 13 | 12 | pub linker_is_gnu: bool, |
| 14 | 13 | } |
| 15 | 14 | |
| 16 | 15 | pub fn get_rpath_flags(config: &RPathConfig<'_>) -> Vec<OsString> { |
| 17 | -// No rpath on windows | |
| 18 | -if !config.has_rpath { | |
| 19 | -return Vec::new(); | |
| 20 | -} | |
| 21 | - | |
| 22 | 16 | debug!("preparing the RPATH!"); |
| 23 | 17 | |
| 24 | 18 | let rpaths = get_rpaths(config); |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -37,7 +37,6 @@ fn test_rpath_relative() { | ||
| 37 | 37 | if cfg!(target_os = "macos") { |
| 38 | 38 | let config = &mut RPathConfig { |
| 39 | 39 | libs: &[], |
| 40 | -has_rpath: true, | |
| 41 | 40 | is_like_osx: true, |
| 42 | 41 | linker_is_gnu: false, |
| 43 | 42 | out_filename: PathBuf::from("bin/rustc"), |
| @@ -48,7 +47,6 @@ fn test_rpath_relative() { | ||
| 48 | 47 | let config = &mut RPathConfig { |
| 49 | 48 | libs: &[], |
| 50 | 49 | out_filename: PathBuf::from("bin/rustc"), |
| 51 | -has_rpath: true, | |
| 52 | 50 | is_like_osx: false, |
| 53 | 51 | linker_is_gnu: true, |
| 54 | 52 | }; |
| @@ -62,7 +60,6 @@ fn test_rpath_relative_issue_119571() { | ||
| 62 | 60 | let config = &mut RPathConfig { |
| 63 | 61 | libs: &[], |
| 64 | 62 | out_filename: PathBuf::from("rustc"), |
| 65 | -has_rpath: true, | |
| 66 | 63 | is_like_osx: false, |
| 67 | 64 | linker_is_gnu: true, |
| 68 | 65 | }; |