Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ea4c160

Browse files
committed
feat: succinct-zkvm target
1 parent 93257e2 commit ea4c160

File tree

5 files changed

+48
-0
lines changed

5 files changed

+48
-0
lines changed

‎compiler/rustc_target/src/spec/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1954,6 +1954,7 @@ supported_targets! {
19541954

19551955
("riscv32i-unknown-none-elf", riscv32i_unknown_none_elf),
19561956
("riscv32im-risc0-zkvm-elf", riscv32im_risc0_zkvm_elf),
1957+
("riscv32im-succinct-zkvm-elf", riscv32im_succinct_zkvm_elf),
19571958
("riscv32im-unknown-none-elf", riscv32im_unknown_none_elf),
19581959
("riscv32ima-unknown-none-elf", riscv32ima_unknown_none_elf),
19591960
("riscv32imc-unknown-none-elf", riscv32imc_unknown_none_elf),
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
use crate::spec::{
2+
Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, TargetMetadata, TargetOptions,
3+
};
4+
5+
pub(crate) fn target() -> Target {
6+
Target {
7+
data_layout: "e-m:e-p:32:32-i64:64-n32-S128".into(),
8+
llvm_target: "riscv32".into(),
9+
metadata: TargetMetadata {
10+
description: Some("Succinct's zero-knowledge Virtual Machine (RV32IM ISA)".into()),
11+
tier: Some(3),
12+
host_tools: Some(false),
13+
std: None,
14+
},
15+
pointer_width: 32,
16+
arch: "riscv32".into(),
17+
18+
options: TargetOptions {
19+
os: "succinct-zkvm".into(),
20+
vendor: "succinct".into(),
21+
linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes),
22+
linker: Some("rust-lld".into()),
23+
cpu: "generic-rv32".into(),
24+
25+
// The zkvm is singlethreaded and all operations are atomic.
26+
// The std-lib is compiled with lowered atomicsa and the default Succinct build tools
27+
// enforce this on programs.
28+
max_atomic_width: Some(64),
29+
atomic_cas: true,
30+
31+
features: "+m".into(),
32+
llvm_abiname: "ilp32".into(),
33+
executables: true,
34+
panic_strategy: PanicStrategy::Abort,
35+
relocation_model: RelocModel::Static,
36+
emit_debug_gdb_scripts: false,
37+
eh_frame_header: false,
38+
singlethread: true,
39+
..Default::default()
40+
},
41+
}
42+
}

‎src/bootstrap/src/core/sanity.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ pub struct Finder {
3535
const STAGE0_MISSING_TARGETS: &[&str] = &[
3636
// just a dummy comment so the list doesn't get onelined
3737
"wasm32-wali-linux-musl",
38+
"riscv32im-succinct-zkvm-elf"
3839
];
3940

4041
/// Minimum version threshold for libstdc++ required when using prebuilt LLVM

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ static TARGETS: &[&str] = &[
138138
"powerpc64le-unknown-linux-musl",
139139
"riscv32i-unknown-none-elf",
140140
"riscv32im-risc0-zkvm-elf",
141+
"riscv32im-succinct-zkvm-elf",
141142
"riscv32im-unknown-none-elf",
142143
"riscv32ima-unknown-none-elf",
143144
"riscv32imc-unknown-none-elf",

‎tests/assembly/targets/targets-elf.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,9 @@
421421
//@ revisions: riscv32im_risc0_zkvm_elf
422422
//@ [riscv32im_risc0_zkvm_elf] compile-flags: --target riscv32im-risc0-zkvm-elf
423423
//@ [riscv32im_risc0_zkvm_elf] needs-llvm-components: riscv
424+
//@ revisions: riscv32im_succinct_zkvm_elf
425+
//@ [riscv32im_succinct_zkvm_elf] compile-flags: --target riscv32im-succinct-zkvm-elf
426+
//@ [riscv32im_succinct_zkvm_elf] needs-llvm-components: riscv
424427
//@ revisions: riscv32im_unknown_none_elf
425428
//@ [riscv32im_unknown_none_elf] compile-flags: --target riscv32im-unknown-none-elf
426429
//@ [riscv32im_unknown_none_elf] needs-llvm-components: riscv

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /