This page gives an overview of upstream projects. If you miss information or find mistakes, please edit.


ABIs, APIs, and other conventions

The main document for RISC-V ABI/ELF-related information is the RISC-V ELF psABI document, which can be found here: https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md

An overview of other RISC-V ABI/API related documents can be found here: https://github.com/riscv/riscv-elf-psabi-doc/blob/master/README.md

The following RISC-V ABIs are currently defined:

Calling conventions

There are two calling conventions for GP registers in the RISC-V ecosystem:

Default library path

The rich set of APIs has the consequence, that glibc's default library path includes a subdirectory for the actual ABI (e.g. "/usr/lib64/lp64d" for LP64D).
These default paths are defined here: https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/riscv/configure.ac;


Binutils

The GNU Binutils are a collection of binary tools (GNU linker, GNU assembler, many other excellent tools such as gprof).

RISC-V maintainers

Releases

Rule of thumb: Binutils (GNU linker, GNU assembler, tons of other excellent tools) releases twice per year (mid July and mid January).

RISC-V status


GCC

The GNU Compiler Collection (GCC) includes front ends for C, C++, Objective-C, Fortran, Ada, Go, and D, as well as libraries for these languages (e.g. libstdc).

RISC-V maintainers

GCC RISC-V community meetings

RISC-V GCC Patchwork Sync meetings

Releases

Rule of thumb: GCC closes the merge window for the next release in mid-November (once per year).

After stage 3 has started, new functionality may not be introduced.

The upstream release schedule can be found here.

The upstream release timeline can be found here.

RISC-V status

RV32G and RV64G are mostly implemented. However, there is still some optimization potential.


GDB

GDB is the GNU Project debugger.

RISC-V maintainers

Releases

GDB major releases are approximately annually. There are typically one or two minor releases each year. This is the typical schedule:

At the time of writing the most recent release was 14.1, released on 2020-12-03.

RISC-V status

Debugging works on top of PTRACE syscalls. HW-Breakpoint or HW-Watchpoint support is missing.


Glibc

Glibc is the GNU C library.

RISC-V maintainers

Releases

Rule of thumb: Glibc releases twice per year (February and August).

Previous releases:

RISC-V status


LLVM

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.

RISC-V maintainer

LLVM RISC-V meetings

Releases

The upstream release page can be found here.

RISC-V status


Newlib

Newlib is a C standard library implementation intended for use on embedded systems.

RISC-V maintainer

Releases

Rule of thumb: Newlib releases once per year.

Last releases:

RISC-V status

RV32 and RV64 are supported. Still, there is optimization and completeness potential.