By Jim Wilson, software engineer at SiFive
Over the past few years the RISC-V ecosystem has grown tremendously. The RISC-V Foundation now has more than 100 member organizations and we’ve seen a number of innovative RISC-V solutions hit the market. Meanwhile, the community has been hard at work contributing to the development of the RISC-V software toolchain to make it even easier to use the free and open instruction set architecture (ISA).
As part of this development, companies and individuals from around the world have been working to bring RISC-V ports upstream so the ports can be more easily maintained. Initially, updating RISC-V toolchain ports was done on copies of the official source trees before the updates were ready to be submitted upstream. Now, most of the ports have been submitted to the upstream trees so RISC-V development work is primarily happening in the upstream trees where developers are tracking release branches and backporting bug fix patches onto them.
Below is an update on the development activities for the RISC-V software toolchain.
GCC: Support for GCC, the popular compiler for GNU/Linux systems, is fully upstream. A robust compiler underpins almost all software development, so the availability of the GCC port will accelerate the development of applications, runtime libraries and operating systems for RISC-V. Find out more here: https://gcc.gnu.org.
Binutils: Support for the GNU Binutils, a set of programming tools capable of creating and managing binary program files, is fully upstream. Find out more here: https://sourceware.org/binutils.
Newlib: Support for Newlib, a C library used for embedded systems, is fully upstream. Find out more here: https://sourceware.org/newlib/.
GDB: Support for the GNU Project debugger GDB is partly upstream. While the embedded support is in place, developers are working to bring it fully upstream. Support for a RISC-V Linux native port is also in progress. Additionally, the community submited a patch for the GDB 8.3 release, which will likely come out in Q1 2019. Find out more here: https://sourceware.org/gdb/.
Glibc: Support for glibc, a GNU C library, is partly upstream. The 64-bit support is upstream, while the 32-bit support is still being worked on. The community is working to get this resolved before the next glibc release. Find out more here: gnu.org/software/libc.
QEMU: Support for the free and open source emulator QEMU, which performs hardware virtualization, is upstream although it has a patch backlog. The riscv-qemu is up to date and has the backlogged patches applied. Find out more here: qemu.org.
Linux kernel: Support for the Linux kernel is partly upstream. The core port is there, but the drivers still need to be updated. Additionally, riscv-linux is up to date, and has all of the drivers required. There is a lot of movement underway, so stay tuned to hear more as the status of this changes regularly.
The ecosystem also has active ports in progress for Debian, Fedora, OpenSuse, OpenEmbedded, Gentoo, FreeBSD and other systems, building from the upstream trees.
To stay up-to-date on the toolchain activities in the RISC-V community and get involved, please visit the group for the RISC-V Foundation’s Software Task Group: https://groups.google.com/a/groups.riscv.org/forum/#!forum/sw-dev.