Skip to content

Commit f77bc29

Browse files
committed
Add target page for riscv64a23-unknown-linux-gnu
1 parent c2a6cc4 commit f77bc29

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@ target | std | host | notes
388388
[`riscv64gc-unknown-nuttx-elf`](platform-support/nuttx.md) | ✓ | | RISC-V 64bit with NuttX
389389
[`riscv64gc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/riscv64
390390
[`riscv64imac-unknown-nuttx-elf`](platform-support/nuttx.md) | ✓ | | RISC-V 64bit with NuttX
391+
[`riscv64a23-unknown-linux-gnu`](platform-support/riscv64a23-unknown-linux-gnu.md) | ✓ | ✓ | RISC-V Linux (kernel 4.20+, glibc 2.29)
391392
[`s390x-unknown-linux-musl`](platform-support/s390x-unknown-linux-musl.md) | ✓ | | S390x Linux (kernel 3.2, musl 1.2.3)
392393
`sparc-unknown-linux-gnu` | ✓ | | 32-bit SPARC Linux
393394
[`sparc-unknown-none-elf`](./platform-support/sparc-unknown-none-elf.md) | * | | Bare 32-bit SPARC V7+
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# `riscv64a23-unknown-linux-gnu`
2+
3+
**Tier: 3**
4+
5+
RISC-V targets using the ratified [RVA23 Profile](https://github.com/riscv/riscv-profiles/blob/main/rva23-profile.adoc).
6+
This target will enable all mandary features of rva23u64 and rva23s64 by default.
7+
8+
9+
## Target maintainers
10+
11+
[@ZhongyaoChen](https://github.com/ZhongyaoChen)
12+
[@CaiWeiran](https://github.com/CaiWeiran)
13+
14+
## Requirements
15+
16+
This target requires:
17+
18+
* Linux Kernel version 4.20 or later
19+
* glibc 2.17 or later
20+
21+
22+
## Building the target
23+
24+
The target is distributed through `rustup`, and otherwise require no
25+
special configuration.
26+
27+
If you need to build your own Rust for some reason though, the target can be build with:
28+
29+
```bash
30+
./x build --target riscv64a23-unknown-linux-gnu
31+
```
32+
33+
## Building Rust programs
34+
35+
Add the target:
36+
37+
```bash
38+
rustup target add riscv64a23-unknown-linux-gnu
39+
```
40+
41+
Then cross compile crates with:
42+
43+
```bash
44+
cargo build --target riscv64a23-unknown-linux-gnu
45+
```
46+
47+
## Cross-compilation toolchains and Testing
48+
49+
On Ubuntu 24.04, we can install compilation dependencies with:
50+
51+
```bash
52+
apt install -y git python3 g++ g++-riscv64-linux-gnu
53+
```
54+
55+
Then build target with:
56+
57+
```bash
58+
./x build --target=riscv64a23-unknown-linux-gnu
59+
```
60+
61+
There are no special requirements for testing and running the targets.
62+
For testing cross-builds on the host, you can use the docker image. It will automatically set up a RISC-V QEMU emulator and run all the test suite.
63+
64+
```bash
65+
DEPLOY=1 ./src/ci/docker/run.sh riscv64a23-gnu
66+
```

0 commit comments

Comments
 (0)