File tree Expand file tree Collapse file tree 1 file changed +15
-3
lines changed
src/tools/compiletest/src Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -897,15 +897,27 @@ pub fn make_test_description<R: Read>(
897
897
let has_hwasan = util::HWASAN_SUPPORTED_TARGETS.contains(&&*config.target);
898
898
let has_memtag = util::MEMTAG_SUPPORTED_TARGETS.contains(&&*config.target);
899
899
let has_shadow_call_stack = util::SHADOWCALLSTACK_SUPPORTED_TARGETS.contains(&&*config.target);
900
- // for `-Z gcc-ld=lld`
900
+
901
+ // For tests using the `needs-rust-lld` directive (e.g. for `-Zgcc-ld=lld`), we need to find
902
+ // whether `rust-lld` is present in the compiler under test.
903
+ //
904
+ // The --compile-lib-path is the path to host shared libraries, but depends on the OS. For
905
+ // example:
906
+ // - on linux, it can be <sysroot>/lib
907
+ // - on windows, it can be <sysroot>/bin
908
+ //
909
+ // However, `rust-lld` is only located under the lib path, so we look for it there.
901
910
let has_rust_lld = config
902
911
.compile_lib_path
912
+ .parent()
913
+ .expect("couldn't traverse to the parent of the specified --compile-lib-path")
914
+ .join("lib")
903
915
.join("rustlib")
904
916
.join(&config.target)
905
917
.join("bin")
906
- .join("gcc-ld")
907
- .join(if config.host.contains("windows") { "ld.exe" } else { "ld" })
918
+ .join(if config.host.contains("windows") { "rust-lld.exe" } else { "rust-lld" })
908
919
.exists();
920
+
909
921
iter_header(path, src, &mut |revision, ln| {
910
922
if revision.is_some() && revision != cfg {
911
923
return;
You can’t perform that action at this time.
0 commit comments