RISC-V sur Linux
Cette documentation fonctionne pour Debian12. Adaptez en fonction de votre distribution.
Natif RISC-V
- Rien à faire !
Compilation croisée
apt install gcc-riscv64-linux-gnu
- Donne accès à
riscv64-linux-gnu-gcc
,riscv64-linux-gnu-as
et de nombreux autres outils - Exemple:
riscv64-linux-gnu-gcc -static hello.c -o hello
Qemu
apt install qemu-user
- Donne accès à
qemu-riscv64
- Exemple:
qemu-riscv64 hello
Libs partagées RISC-V
qemu a besoin d’un peu d’aide pour trouver les bibliothèques partagées.
S’il ne les trouve pas, il affiche une erreur du genre Could not open '/lib/ld-linux-riscv64-lp64d.so.1': No such file or directory
.
Option 0
- Compiler avec
gcc -static
pour pas se battre avec les bibliothèques partagées (dont libc)
Option 1
- Utiliser l’option
-L
de qemu - Exemple:
qemu-riscv64 -L /usr/riscv64-linux-gnu hello
Option 2
- Fournir un chemin par défaut pour l’architecture RV64, cela dépend malheureusement de votre version de qemu
- Exécutez
qemu-riscv64 -h
- Regardez la ligne
QEMU_LD_PREFIX=...
. Par exempleQEMU_LD_PREFIX = /etc/qemu-binfmt/riscv64
- Appelons ce chemin
QEMU_LD_PREFIX
- Créez un lien symbolique
mkdir -p $(dirname "$QEMU_LD_PREFIX")
sudo ln -s /usr/riscv64-linux-gnu "$QEMU_LD_PREFIX"
RARS
- Installer le JAR depuis le dépôt git
java -jar rars.jar
pour lancer la GUI- Important : passez en mode 64bits (dans settings)
java -jar rars.jar h
pour l’aide en ligne de commandejava -jar rars.jar rv64 prog.s lib1.s lib2.s
pour assembler et exécuter en ligne de commande