Version v7.1.1-1-20170702-0625 is the first GNU MCU Eclipse RISC-V Embedded GCC release. It includes binaries for Windows, macOS and GNU/Linux.
- the riscv/riscv-gcc project, commit 16210e6 from from May 15th, 2017
- the riscv/riscv-binutils-gdb project, commit 3f21b5c from May 5th, 2017
- the riscv/riscv-newlib project, commit ccd8a0a from May 2nd, 2017
The supported architectures (
The supported ABIs (
- ilp32 (32-bit, soft-float)
- ilp32f (32-bit with single-precision in registers and double in memory, niche use only)
- ilp32d (32-bit, hard-float)
- lp64 (64-bit long and pointers, soft-float)
- lp64f (64-bit long and pointers, with single-precision in registers and double in memory, niche use only)
- lp64d (64-bit long and pointers, hard-float).
The supported libraries are:
march=rv32i/mabi=ilp32 march=rv32im/mabi=ilp32 march=rv32iac/mabi=ilp32 march=rv32imac/mabi=ilp32 march=rv32imafc/mabi=ilp32f march=rv64imac/mabi=lp64 march=rv64imafdc/mabi=lp64d
Plese note that not all possible combinations of architecture and ABI have libraries.
Compared to the original RISC-V version, there are no functional changes; the same architecture and API options are supported, and the same combinations of libraries (derived from newlib) are provided.
The only notable addition is support for newlib-nano, using the
--specs=nano.specs option. For better results, this option must be added to both compile and link time (the next release of the GNU MCU Eclipse plug-ins will add support for this).
If no syscalls are needed,
--specs=nosys.specs can be used at link time to provide empty implementations for the POSIX system calls.
The nano versions of the libraries are compiled with
-Os -mcmodel=medlow, while the regular versions are compiled with
Another addition compared to the SiFive distribution is the presence of the documentation, including the PDF manuals for all tools.
Binaries for Windows, macOS and GNU/Linux are provided. For Windows and macOS, separate installable and plain archives are provided. For Windows and GNU/Linux, both 32/64-bit binaries are provided.
Instructions on how to install them are available in the How to install the RISC-V toolchain? page.
For better control and repetability, the build scripts use Docker containers; all files required during builds are available as a separate gnu-mcu-eclipse/riscv-none-gcc-build project.
[2017-09-14 update] Soon after this release was used in real projects, it was discovered that the general configuration of the toolchain was intended more to applications that include a kernel-like environment, and less to bare-metal environments. The main problems are:
newlibconfiguration does not use the
underscoresyscall function, but the direct names (like
_write()), calls that are always forwarded to
- the compiler configuration always links
libglossto the application;
libglossimplements all system calls via traps to a unix like kernel.
Both problems were fixed in the v7.1.1-2-20170912 release.
The SHA-256 hashes for the files are:
a723d8c6870d1808882ea2eaa630a8c60c5cb6bd25dc238091d2f9738298c44a ? gnu-mcu-eclipse-riscv-none-gcc-7.1.1-1-20170702-0625-debian32.tgz 1d36d44221cde15572673019f76727883ce543a7d76d2e10f07ae1a901c07bbb ? gnu-mcu-eclipse-riscv-none-gcc-7.1.1-1-20170702-0625-debian64.tgz 75e71fd37c3749cd892e020a4562c0c10535719e4bb573371d957fb8f16f790e ? gnu-mcu-eclipse-riscv-none-gcc-7.1.1-1-20170702-0625-osx.pkg 7940417bc4fbd537b38866914b20375f89417ac0ba90399a2d2c510d0c802497 ? gnu-mcu-eclipse-riscv-none-gcc-7.1.1-1-20170702-0625-osx.tgz b082bedc09af08ca56e218dba87e8e69b3d100042bdbbe3821fd2ef72f33e9f0 ? gnu-mcu-eclipse-riscv-none-gcc-7.1.1-1-20170702-0625-win32-setup.exe 7fbecec74060be8b4075bed6d2b0f201421614f53dd134ce7ffdd18df79dfce9 ? gnu-mcu-eclipse-riscv-none-gcc-7.1.1-1-20170702-0625-win32.zip ba8fd7b53e2cad2092f39c105c3d4a734546c89f807df8e804dd6db40c23f7fc ? gnu-mcu-eclipse-riscv-none-gcc-7.1.1-1-20170702-0625-win64-setup.exe 30a37efe5c5bfaf9def8d06249ff471c8d81d37e01d33caf4fff928c8cfe7670 ? gnu-mcu-eclipse-riscv-none-gcc-7.1.1-1-20170702-0625-win64.zip