Skip to content

Commit 1ca12bf

Browse files
Add riscv64gc-unknown-hermit target
1 parent 600820d commit 1ca12bf

File tree

4 files changed

+23
-1
lines changed

4 files changed

+23
-1
lines changed

compiler/rustc_target/src/spec/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -960,6 +960,7 @@ supported_targets! {
960960
("msp430-none-elf", msp430_none_elf),
961961

962962
("aarch64-unknown-hermit", aarch64_unknown_hermit),
963+
("riscv64gc-unknown-hermit", riscv64gc_unknown_hermit),
963964
("x86_64-unknown-hermit", x86_64_unknown_hermit),
964965

965966
("x86_64-unknown-none-hermitkernel", x86_64_unknown_none_hermitkernel),
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
use crate::spec::Target;
2+
use crate::spec::{CodeModel, TlsModel};
3+
4+
pub fn target() -> Target {
5+
let mut base = super::hermit_base::opts();
6+
base.cpu = "generic-rv64".to_string();
7+
base.max_atomic_width = Some(64);
8+
base.features = "+m,+a,+f,+d,+c".to_string();
9+
base.code_model = Some(CodeModel::Medium);
10+
base.tls_model = TlsModel::LocalExec;
11+
base.llvm_abiname = "lp64d".to_string();
12+
13+
Target {
14+
llvm_target: "riscv64-unknown-hermit".to_string(),
15+
pointer_width: 64,
16+
data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".to_string(),
17+
arch: "riscv64".to_string(),
18+
options: base,
19+
}
20+
}

library/std/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ dlmalloc = { version = "0.2.3", features = ['rustc-dep-of-std'] }
4141
[target.x86_64-fortanix-unknown-sgx.dependencies]
4242
fortanix-sgx-abi = { version = "0.3.2", features = ['rustc-dep-of-std'] }
4343

44-
[target.'cfg(all(any(target_arch = "x86_64", target_arch = "aarch64"), target_os = "hermit"))'.dependencies]
44+
[target.'cfg(all(any(target_arch = "x86_64", target_arch = "aarch64", target_arch = "riscv64"), target_os = "hermit"))'.dependencies]
4545
hermit-abi = { version = "0.1.19", features = ['rustc-dep-of-std'] }
4646

4747
[target.wasm32-wasi.dependencies]

src/doc/rustc/src/platform-support.md

+1
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ target | std | host | notes
268268
`riscv32gc-unknown-linux-musl` | | | RISC-V Linux (kernel 5.4, musl + RISCV32 support patches)
269269
`riscv32imc-esp-espidf` | ✓ | | RISC-V ESP-IDF
270270
`riscv64gc-unknown-freebsd` | | | RISC-V FreeBSD
271+
`riscv64gc-unknown-hermit` | ? | |
271272
`riscv64gc-unknown-linux-musl` | | | RISC-V Linux (kernel 4.20, musl 1.2.0)
272273
`s390x-unknown-linux-musl` | | | S390x Linux (kernel 2.6.32, MUSL)
273274
`sparc-unknown-linux-gnu` | ✓ | | 32-bit SPARC Linux

0 commit comments

Comments
 (0)