Skip to content

Commit 298c3a2

Browse files
authored
Rollup merge of rust-lang#62784 - Disasm:riscv32i, r=estebank
Add riscv32i-unknown-none-elf target This target is likely to be useful for constrained FPGA soft-cores, such as picorv32 and HeavyX.
2 parents 4afecf7 + bb9bf0c commit 298c3a2

File tree

4 files changed

+35
-0
lines changed

4 files changed

+35
-0
lines changed

src/ci/docker/dist-various-1/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ ENV TARGETS=$TARGETS,thumbv7em-none-eabihf
112112
ENV TARGETS=$TARGETS,thumbv8m.base-none-eabi
113113
ENV TARGETS=$TARGETS,thumbv8m.main-none-eabi
114114
ENV TARGETS=$TARGETS,thumbv8m.main-none-eabihf
115+
ENV TARGETS=$TARGETS,riscv32i-unknown-none-elf
115116
ENV TARGETS=$TARGETS,riscv32imc-unknown-none-elf
116117
ENV TARGETS=$TARGETS,riscv32imac-unknown-none-elf
117118
ENV TARGETS=$TARGETS,riscv64imac-unknown-none-elf

src/librustc_target/spec/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,7 @@ supported_targets! {
464464
("aarch64-unknown-hermit", aarch64_unknown_hermit),
465465
("x86_64-unknown-hermit", x86_64_unknown_hermit),
466466

467+
("riscv32i-unknown-none-elf", riscv32i_unknown_none_elf),
467468
("riscv32imc-unknown-none-elf", riscv32imc_unknown_none_elf),
468469
("riscv32imac-unknown-none-elf", riscv32imac_unknown_none_elf),
469470
("riscv64imac-unknown-none-elf", riscv64imac_unknown_none_elf),
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
use crate::spec::{LinkerFlavor, LldFlavor, PanicStrategy,
2+
Target, TargetOptions, TargetResult};
3+
4+
pub fn target() -> TargetResult {
5+
Ok(Target {
6+
data_layout: "e-m:e-p:32:32-i64:64-n32-S128".to_string(),
7+
llvm_target: "riscv32".to_string(),
8+
target_endian: "little".to_string(),
9+
target_pointer_width: "32".to_string(),
10+
target_c_int_width: "32".to_string(),
11+
target_os: "none".to_string(),
12+
target_env: String::new(),
13+
target_vendor: "unknown".to_string(),
14+
arch: "riscv32".to_string(),
15+
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
16+
17+
options: TargetOptions {
18+
linker: Some("rust-lld".to_string()),
19+
cpu: "generic-rv32".to_string(),
20+
max_atomic_width: None,
21+
atomic_cas: false,
22+
features: String::new(),
23+
executables: true,
24+
panic_strategy: PanicStrategy::Abort,
25+
relocation_model: "static".to_string(),
26+
emit_debug_gdb_scripts: false,
27+
abi_blacklist: super::riscv_base::abi_blacklist(),
28+
eliminate_frame_pointer: false,
29+
.. Default::default()
30+
},
31+
})
32+
}

src/tools/build-manifest/src/main.rs

+1
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ static TARGETS: &[&str] = &[
9292
"powerpc-unknown-linux-gnu",
9393
"powerpc64-unknown-linux-gnu",
9494
"powerpc64le-unknown-linux-gnu",
95+
"riscv32i-unknown-none-elf",
9596
"riscv32imc-unknown-none-elf",
9697
"riscv32imac-unknown-none-elf",
9798
"riscv64imac-unknown-none-elf",

0 commit comments

Comments
 (0)