diff options
| author | Mary <mary@mary.zone> | 2022-08-09 11:04:48 +0200 |
|---|---|---|
| committer | Mary <mary@mary.zone> | 2022-08-09 11:04:48 +0200 |
| commit | a725250806b90db15bc4f6bb239ceae989eeb302 (patch) | |
| tree | 26d0a1d0d034579093df702071aa88cdc239a00d /compiler/rustc_codegen_ssa/src | |
| parent | f03ce30962cf1b2a5158667eabae8bf6e8d1cb03 (diff) | |
| download | rust-a725250806b90db15bc4f6bb239ceae989eeb302.tar.gz rust-a725250806b90db15bc4f6bb239ceae989eeb302.zip | |
Add support for link-flavor rust-lld for macOS
Also refactor iOS, watchOS and tvOS common code.
Diffstat (limited to 'compiler/rustc_codegen_ssa/src')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/back/link.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs index 63207803e32..468d034e635 100644 --- a/compiler/rustc_codegen_ssa/src/back/link.rs +++ b/compiler/rustc_codegen_ssa/src/back/link.rs @@ -2674,11 +2674,16 @@ fn add_apple_sdk(cmd: &mut dyn Linker, sess: &Session, flavor: LinkerFlavor) { let os = &sess.target.os; let llvm_target = &sess.target.llvm_target; if sess.target.vendor != "apple" - || !matches!(os.as_ref(), "ios" | "tvos" | "watchos") + || !matches!(os.as_ref(), "ios" | "tvos" | "watchos" | "macos") || (flavor != LinkerFlavor::Gcc && flavor != LinkerFlavor::Lld(LldFlavor::Ld64)) { return; } + + if os == "macos" && flavor != LinkerFlavor::Lld(LldFlavor::Ld64) { + return; + } + let sdk_name = match (arch.as_ref(), os.as_ref()) { ("aarch64", "tvos") => "appletvos", ("x86_64", "tvos") => "appletvsimulator", @@ -2694,6 +2699,7 @@ fn add_apple_sdk(cmd: &mut dyn Linker, sess: &Session, flavor: LinkerFlavor) { ("aarch64", "watchos") if llvm_target.ends_with("-simulator") => "watchsimulator", ("aarch64", "watchos") => "watchos", ("arm", "watchos") => "watchos", + (_, "macos") => "macosx", _ => { sess.err(&format!("unsupported arch `{}` for os `{}`", arch, os)); return; |
