The toolchains were built according to the instructions of the official RISC-V GNU Compiler Toolchain repository using Ubuntu on a 64-bit x86 machine (actually on Ubuntu on Windows). Most of the provided toolchains (the non-multilib versions) also support standard ISA extensions like A, C and M. These prebuilt toolchains are part of the NEORV32 RISC-V Processor project.
Toolchain prefix: riscv32-unknown-elf
or riscv64-unknown-elf
(see the individual releases)
Release (tag) | Download archive | GCC | binutils | march |
mabi |
c-lib |
---|---|---|---|---|---|---|
🟢 rv32i-4.0.0 | 💾 download | 12.1.0 |
2.39 |
rv32i |
ilp32 |
newlib |
🟢 rv64imc-3.0.0 | 💾 download | 12.1.0 |
2.39 |
multilib: rv32i rv32ic rv32im rv32imc |
ilp32 |
newlib |
🟡 rv32i-2.0.0 | 💾 download | 10.2.0 |
2.35 |
rv32i |
ilp32 |
newlib |
🔴 rv32e-1.0.0 | 💾 download | 10.1.0 |
2.34 |
rv32e |
ilp32e |
newlib |
- 🟢 most recent
- 🟡 outdated
- 🔴 deprecated
git clone
) will not include the release assets and will
not include the actual toolchain archives! The compressed toolchain archives (.tar.gz
) are available as
releases assets only.
Click on the according download link in the table above to directly download the archive of choice from the according release page via the release assets.
You can use wget
to directly download a toolchain archive from the table above. Select the toolchain of
choice, right-click on the "download" link, click "copy link address" and use that as argument for wget
. Example:
wget https://github.com/stnolting/riscv-gcc-prebuilt/releases/download/rv32i-4.0.0/riscv32-unknown-elf.gcc-12.1.0.tar.gz
Create a folder where you want to install the toolchain, for example /opt/riscv
(you might need
sudo
to create this folder and copy data to it).
$ sudo mkdir /opt/riscv
Navigate to the download folder. Decompress your toolchain (replace TOOLCHAIN
with your toolchain archive
of choice). Again, you might have to use sudo
if your target directory is protected.
$ sudo tar -xzf TOOLCHAIN.tar.gz -C /opt/riscv/
Now add the toolchain's bin
folder to your system's PATH
environment variable.
Your can also add this line to your .bashrc
if applicable.
$ export PATH=$PATH:/opt/riscv/bin
Test the toolchain:
$ riscv32-unknown-elf-gcc -v
Using built-in specs.
COLLECT_GCC=riscv32-unknown-elf-gcc
COLLECT_LTO_WRAPPER=/opt/riscv/libexec/gcc/riscv32-unknown-elf/12.1.0/lto-wrapper
Target: riscv32-unknown-elf
Configured with: /tmp/rv_gcc/riscv-gnu-toolchain/gcc/configure --target=riscv32-unknown-elf --prefix=/opt/riscv --disable-shared --disable-threads --enable-languages=c,c++ --with-pkgversion=g1ea978e3066 --with-system-zlib --enable-tls --with-newlib --with-sysroot=/opt/riscv/riscv32-unknown-elf --with-native-system-header-dir=/include --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libgomp --disable-nls --disable-tm-clone-registry --src=/tmp/rv_gcc/riscv-gnu-toolchain/gcc --disable-multilib --with-abi=ilp32 --with-arch=rv32i --with-tune=rocket --with-isa-spec=2.2 'CFLAGS_FOR_TARGET=-Os -mcmodel=medlow' 'CXXFLAGS_FOR_TARGET=-Os -mcmodel=medlow'
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 12.1.0 (g1ea978e3066)
This project is released under the GPL-2.0 license. No copyright infringement intended. Other implied or used projects might have different licensing - see their documentation to get more information.
Our website contains links to the websites of third parties ("external links"). As the content of these websites is not under our control, we cannot assume any liability for such external content. In all cases, the provider of information of the linked websites is liable for the content and accuracy of the information provided. At the point in time when the links were placed, no infringements of the law were recognizable to us. As soon as an infringement of the law becomes known to us, we will immediately remove the link in question.