Rollup merge of #101025 - semarie:openbsd-archs, r=petrochenkov
Add tier-3 support for powerpc64 and riscv64 openbsd # powerpc64 - MCP for [powerpc64-unknown-openbsd tier-3 support](https://github.com/rust-lang/compiler-team/issues/551) - only need to add spec definition in rustc_target # riscv64 - MCP for [riscv64-unknown-openbsd tier-3 support](https://github.com/rust-lang/compiler-team/issues/552) - add spec definition in rustc_target - follow freebsd about avoiding linking with `libatomic`
This commit is contained in:
commit
0fee731a95
7 changed files with 47 additions and 5 deletions
|
@ -944,9 +944,11 @@ supported_targets! {
|
|||
|
||||
("aarch64-unknown-openbsd", aarch64_unknown_openbsd),
|
||||
("i686-unknown-openbsd", i686_unknown_openbsd),
|
||||
("powerpc-unknown-openbsd", powerpc_unknown_openbsd),
|
||||
("powerpc64-unknown-openbsd", powerpc64_unknown_openbsd),
|
||||
("riscv64gc-unknown-openbsd", riscv64gc_unknown_openbsd),
|
||||
("sparc64-unknown-openbsd", sparc64_unknown_openbsd),
|
||||
("x86_64-unknown-openbsd", x86_64_unknown_openbsd),
|
||||
("powerpc-unknown-openbsd", powerpc_unknown_openbsd),
|
||||
|
||||
("aarch64-unknown-netbsd", aarch64_unknown_netbsd),
|
||||
("armv6-unknown-netbsd-eabihf", armv6_unknown_netbsd_eabihf),
|
||||
|
|
17
compiler/rustc_target/src/spec/powerpc64_unknown_openbsd.rs
Normal file
17
compiler/rustc_target/src/spec/powerpc64_unknown_openbsd.rs
Normal file
|
@ -0,0 +1,17 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::openbsd_base::opts();
|
||||
base.cpu = "ppc64".into();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m64"]);
|
||||
base.max_atomic_width = Some(64);
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc64-unknown-openbsd".into(),
|
||||
pointer_width: 64,
|
||||
data_layout: "E-m:e-i64:64-n32:64".into(),
|
||||
arch: "powerpc64".into(),
|
||||
options: TargetOptions { endian: Endian::Big, mcount: "_mcount".into(), ..base },
|
||||
}
|
||||
}
|
18
compiler/rustc_target/src/spec/riscv64gc_unknown_openbsd.rs
Normal file
18
compiler/rustc_target/src/spec/riscv64gc_unknown_openbsd.rs
Normal file
|
@ -0,0 +1,18 @@
|
|||
use crate::spec::{CodeModel, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "riscv64-unknown-openbsd".into(),
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(),
|
||||
arch: "riscv64".into(),
|
||||
options: TargetOptions {
|
||||
code_model: Some(CodeModel::Medium),
|
||||
cpu: "generic-rv64".into(),
|
||||
features: "+m,+a,+f,+d,+c".into(),
|
||||
llvm_abiname: "lp64d".into(),
|
||||
max_atomic_width: Some(64),
|
||||
..super::openbsd_base::opts()
|
||||
},
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue