diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2022-10-13 09:41:25 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-13 09:41:25 +0900 |
| commit | f4c9580c65d47fa3a2866d81f38cb5b0d18648f7 (patch) | |
| tree | b228841813dbf58859d045668866dc9dc851a040 | |
| parent | 6755c2a89d00e159e3af8a102a34f5bf7ba70251 (diff) | |
| parent | 28fdcade79a0ed86f8453e3089a114d38a73e791 (diff) | |
| download | rust-f4c9580c65d47fa3a2866d81f38cb5b0d18648f7.tar.gz rust-f4c9580c65d47fa3a2866d81f38cb5b0d18648f7.zip | |
Rollup merge of #102836 - petrochenkov:jsonspec, r=eholk
rustc_target: Fix json target specs using LLD linker flavors in link args Fixes https://github.com/rust-lang/rust/pull/101988#issuecomment-1272407248 (a regression introduced by https://github.com/rust-lang/rust/pull/101988).
| -rw-r--r-- | compiler/rustc_target/src/spec/mod.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs index 9396d769dc7..8909cf33af9 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs @@ -1739,11 +1739,15 @@ impl TargetOptions { self.lld_flavor_json, self.linker_is_gnu_json, ); - match linker_flavor { - LinkerFlavor::Gnu(_, Lld::Yes) - | LinkerFlavor::Darwin(_, Lld::Yes) - | LinkerFlavor::Msvc(Lld::Yes) => {} - _ => add_link_args_iter(args, linker_flavor, args_json.iter().cloned()), + // Normalize to no lld to avoid asserts. + let linker_flavor = match linker_flavor { + LinkerFlavor::Gnu(cc, _) => LinkerFlavor::Gnu(cc, Lld::No), + LinkerFlavor::Darwin(cc, _) => LinkerFlavor::Darwin(cc, Lld::No), + LinkerFlavor::Msvc(_) => LinkerFlavor::Msvc(Lld::No), + _ => linker_flavor, + }; + if !args.contains_key(&linker_flavor) { + add_link_args_iter(args, linker_flavor, args_json.iter().cloned()); } } } |
