Add support for NetBSD/riscv64 aka. riscv64gc-unknown-netbsd.
This commit is contained in:
parent
6dab6dc5fc
commit
6cc37bbee0
6 changed files with 32 additions and 2 deletions
|
@ -1325,6 +1325,7 @@ supported_targets! {
|
|||
("armv7-unknown-netbsd-eabihf", armv7_unknown_netbsd_eabihf),
|
||||
("i686-unknown-netbsd", i686_unknown_netbsd),
|
||||
("powerpc-unknown-netbsd", powerpc_unknown_netbsd),
|
||||
("riscv64gc-unknown-netbsd", riscv64gc_unknown_netbsd),
|
||||
("sparc64-unknown-netbsd", sparc64_unknown_netbsd),
|
||||
("x86_64-unknown-netbsd", x86_64_unknown_netbsd),
|
||||
|
||||
|
|
19
compiler/rustc_target/src/spec/riscv64gc_unknown_netbsd.rs
Normal file
19
compiler/rustc_target/src/spec/riscv64gc_unknown_netbsd.rs
Normal file
|
@ -0,0 +1,19 @@
|
|||
use crate::spec::{CodeModel, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
Target {
|
||||
llvm_target: "riscv64-unknown-netbsd".into(),
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-p:64:64-i64:64-i128:128-n32:64-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),
|
||||
mcount: "__mcount".into(),
|
||||
..super::netbsd_base::opts()
|
||||
},
|
||||
}
|
||||
}
|
|
@ -132,7 +132,12 @@ mod c_char_definition {
|
|||
),
|
||||
all(
|
||||
target_os = "netbsd",
|
||||
any(target_arch = "aarch64", target_arch = "arm", target_arch = "powerpc")
|
||||
any(
|
||||
target_arch = "aarch64",
|
||||
target_arch = "arm",
|
||||
target_arch = "powerpc",
|
||||
target_arch = "riscv64"
|
||||
)
|
||||
),
|
||||
all(
|
||||
target_os = "vxworks",
|
||||
|
|
|
@ -380,7 +380,10 @@ impl Step for Llvm {
|
|||
cfg.define("LLVM_LINK_LLVM_DYLIB", "ON");
|
||||
}
|
||||
|
||||
if target.starts_with("riscv") && !target.contains("freebsd") && !target.contains("openbsd")
|
||||
if target.starts_with("riscv")
|
||||
&& !target.contains("freebsd")
|
||||
&& !target.contains("openbsd")
|
||||
&& !target.contains("netbsd")
|
||||
{
|
||||
// RISC-V GCC erroneously requires linking against
|
||||
// `libatomic` when using 1-byte and 2-byte C++
|
||||
|
|
|
@ -305,6 +305,7 @@ target | std | host | notes
|
|||
`riscv64gc-unknown-freebsd` | | | RISC-V FreeBSD
|
||||
`riscv64gc-unknown-fuchsia` | | | RISC-V Fuchsia
|
||||
`riscv64gc-unknown-linux-musl` | | | RISC-V Linux (kernel 4.20, musl 1.2.0)
|
||||
[`riscv64gc-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ? | RISC-V NetBSD
|
||||
[`riscv64gc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/riscv64
|
||||
`s390x-unknown-linux-musl` | | | S390x Linux (kernel 3.2, MUSL)
|
||||
`sparc-unknown-linux-gnu` | ✓ | | 32-bit SPARC Linux
|
||||
|
|
|
@ -22,6 +22,7 @@ are currently defined running NetBSD:
|
|||
| `i686-unknown-netbsd` | [32-bit i386 with SSE](https://wiki.netbsd.org/ports/i386/) |
|
||||
| `mipsel-unknown-netbsd` | [32-bit mips, requires mips32 cpu support](https://wiki.netbsd.org/ports/evbmips/) |
|
||||
| `powerpc-unknown-netbsd` | [Various 32-bit PowerPC systems, e.g. MacPPC](https://wiki.netbsd.org/ports/macppc/) |
|
||||
| `riscv64gc-unknown-netbsd` | [64-bit RISC-V](https://wiki.netbsd.org/ports/riscv/)
|
||||
| `sparc64-unknown-netbsd` | [Sun UltraSPARC systems](https://wiki.netbsd.org/ports/sparc64/) |
|
||||
|
||||
All use the "native" `stdc++` library which goes along with the natively
|
||||
|
|
Loading…
Add table
Reference in a new issue