diff options
| author | Ralf Jung <post@ralfj.de> | 2024-11-10 09:29:44 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-10 09:29:44 +0000 |
| commit | a839fbf0a11bcfc2d594daeab3262f540d4b6178 (patch) | |
| tree | a0cb06654acfe3d0136f7e59c87b12f591903512 /compiler/rustc_codegen_ssa/src | |
| parent | 5ff90d069a2d9c1391c811278b9c50550e6861dc (diff) | |
| parent | a01f37c7f49b4bcdd4565bd642f68b289a25d832 (diff) | |
| download | rust-a839fbf0a11bcfc2d594daeab3262f540d4b6178.tar.gz rust-a839fbf0a11bcfc2d594daeab3262f540d4b6178.zip | |
Merge pull request #4021 from RalfJung/rustup
Rustup
Diffstat (limited to 'compiler/rustc_codegen_ssa/src')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/back/link.rs | 17 | ||||
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/back/metadata.rs | 2 |
2 files changed, 1 insertions, 18 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs index 8f754debaf0..3120b5bf0af 100644 --- a/compiler/rustc_codegen_ssa/src/back/link.rs +++ b/compiler/rustc_codegen_ssa/src/back/link.rs @@ -3305,23 +3305,6 @@ fn add_lld_args( let self_contained_cli = sess.opts.cg.link_self_contained.is_linker_enabled(); let self_contained_target = self_contained_components.is_linker_enabled(); - // FIXME: in the future, codegen backends may need to have more control over this process: they - // don't always support all the features the linker expects here, and vice versa. For example, - // at the time of writing this, lld expects a newer style of aarch64 TLS relocations that - // cranelift doesn't implement yet. That in turn can impact whether linking would succeed on - // such a target when using the `cg_clif` backend and lld. - // - // Until interactions between backends and linker features are expressible, we limit target - // specs to opt-in to lld only when we're on the llvm backend, where it's expected to work and - // tested on CI. As usual, the CLI still has precedence over this, so that users and developers - // can still override this default when needed (e.g. for tests). - let uses_llvm_backend = - matches!(sess.opts.unstable_opts.codegen_backend.as_deref(), None | Some("llvm")); - if !uses_llvm_backend && !self_contained_cli && sess.opts.cg.linker_flavor.is_none() { - // We bail if we're not using llvm and lld was not explicitly requested on the CLI. - return; - } - let self_contained_linker = self_contained_cli || self_contained_target; if self_contained_linker && !sess.opts.cg.link_self_contained.is_linker_disabled() { let mut linker_path_exists = false; diff --git a/compiler/rustc_codegen_ssa/src/back/metadata.rs b/compiler/rustc_codegen_ssa/src/back/metadata.rs index 3f3cb8b4073..bdf7030f946 100644 --- a/compiler/rustc_codegen_ssa/src/back/metadata.rs +++ b/compiler/rustc_codegen_ssa/src/back/metadata.rs @@ -212,7 +212,7 @@ pub(crate) fn create_object_file(sess: &Session) -> Option<write::Object<'static "riscv32" => (Architecture::Riscv32, None), "riscv64" => (Architecture::Riscv64, None), "sparc" => { - if sess.target.options.cpu == "v9" { + if sess.unstable_target_features.contains(&sym::v8plus) { // Target uses V8+, aka EM_SPARC32PLUS, aka 64-bit V9 but in 32-bit mode (Architecture::Sparc32Plus, None) } else { |
