Rollup merge of #113356 - he32:netbsd-riscv64, r=oli-obk
Add support for NetBSD/riscv64 aka. riscv64gc-unknown-netbsd.
This commit is contained in:
commit
560136f15d
@ -1325,6 +1325,7 @@ supported_targets! {
|
|||||||
("armv7-unknown-netbsd-eabihf", armv7_unknown_netbsd_eabihf),
|
("armv7-unknown-netbsd-eabihf", armv7_unknown_netbsd_eabihf),
|
||||||
("i686-unknown-netbsd", i686_unknown_netbsd),
|
("i686-unknown-netbsd", i686_unknown_netbsd),
|
||||||
("powerpc-unknown-netbsd", powerpc_unknown_netbsd),
|
("powerpc-unknown-netbsd", powerpc_unknown_netbsd),
|
||||||
|
("riscv64gc-unknown-netbsd", riscv64gc_unknown_netbsd),
|
||||||
("sparc64-unknown-netbsd", sparc64_unknown_netbsd),
|
("sparc64-unknown-netbsd", sparc64_unknown_netbsd),
|
||||||
("x86_64-unknown-netbsd", x86_64_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(
|
all(
|
||||||
target_os = "netbsd",
|
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(
|
all(
|
||||||
target_os = "vxworks",
|
target_os = "vxworks",
|
||||||
|
@ -380,7 +380,10 @@ impl Step for Llvm {
|
|||||||
cfg.define("LLVM_LINK_LLVM_DYLIB", "ON");
|
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
|
// RISC-V GCC erroneously requires linking against
|
||||||
// `libatomic` when using 1-byte and 2-byte C++
|
// `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-freebsd` | | | RISC-V FreeBSD
|
||||||
`riscv64gc-unknown-fuchsia` | | | RISC-V Fuchsia
|
`riscv64gc-unknown-fuchsia` | | | RISC-V Fuchsia
|
||||||
`riscv64gc-unknown-linux-musl` | | | RISC-V Linux (kernel 4.20, musl 1.2.0)
|
`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
|
[`riscv64gc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/riscv64
|
||||||
`s390x-unknown-linux-musl` | | | S390x Linux (kernel 3.2, MUSL)
|
`s390x-unknown-linux-musl` | | | S390x Linux (kernel 3.2, MUSL)
|
||||||
`sparc-unknown-linux-gnu` | ✓ | | 32-bit SPARC Linux
|
`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/) |
|
| `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/) |
|
| `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/) |
|
| `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/) |
|
| `sparc64-unknown-netbsd` | [Sun UltraSPARC systems](https://wiki.netbsd.org/ports/sparc64/) |
|
||||||
|
|
||||||
All use the "native" `stdc++` library which goes along with the natively
|
All use the "native" `stdc++` library which goes along with the natively
|
||||||
|
Loading…
x
Reference in New Issue
Block a user