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-aset 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 -staticpour pas se battre avec les bibliothèques partagées (dont libc)
Option 1
- Utiliser l’option
-Lde 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.jarpour lancer la GUI- Important : passez en mode 64bits (dans settings)
java -jar rars.jar hpour l’aide en ligne de commandejava -jar rars.jar rv64 prog.s lib1.s lib2.spour assembler et exécuter en ligne de commande