官方readme教程里面指导了如何自己编译生成工具链,但是尝试以后并不成功。其实仓库中也给出了编译好的结果,可以直接使用。
1: 下载交叉编译器
下载地址: https://github.com/riscv-collab/riscv-gnu-toolchain/releases
有若干个版本, 建议下载glibc的:
riscv32-elf-ubuntu-18.04-nightly-2021.09.21-nightly.tar.gz 377 MB
riscv32-elf-ubuntu-20.04-nightly-2021.09.21-nightly.tar.gz 450 MB
riscv32-glibc-ubuntu-18.04-nightly-2021.09.21-nightly.tar.gz 494 MB
riscv32-glibc-ubuntu-20.04-nightly-2021.09.21-nightly.tar.gz 582 MB
riscv64-elf-ubuntu-18.04-nightly-2021.09.21-nightly.tar.gz 377 MB
riscv64-elf-ubuntu-20.04-nightly-2021.09.21-nightly.tar.gz 450 MB
riscv64-glibc-ubuntu-18.04-nightly-2021.09.21-nightly.tar.gz 496 MB
riscv64-glibc-ubuntu-20.04-nightly-2021.09.21-nightly.tar.gz 584 MB
2: 解压
tar -xzvf riscv32-glibc-ubuntu-20.04-nightly-2021.09.21-nightly.tar.gz
3: 编译
在riscv/bin目录下有全套工具:
如果不想配置环境变量,直接指定编译器为xx\riscv\bin\riscv32-unknown-linux-xxx
例如我想编译内核, 生成sys_call_table.i文件, 在linux目录中运行:
make ARCH=riscv CROSS_COMPILE=/riscv/bin/riscv32-unknown-linux-gnu- arch/riscv/kernel/syscall_table.i
4: 特别感谢
chy