All specs
RISC-VNicheSystems2023

RISC-V ELF psABI

OS Interfaces & ABIs·RISC-V International
WHY YOU NEED THIS

Required for writing RISC-V assembly, setting up cross-compilation toolchains, or building compilers and OSes targeting RISC-V.

What It Defines

Defines the procedure call standard and ELF object file ABI for RISC-V: register usage conventions (x0–x31 with ABI aliases a0–a7 for arguments, s0–s11 for saved, t0–t6 for temporaries, ra link register), integer and floating-point calling conventions, ELF relocation types, and linker relaxation. Covers both RV32 and RV64 with ILP32, LP64, and floating-point variants.

Canonical (Normative)

risc-vabicalling-conventionelfcompilercross-compile
Standards Body
RISC-V International

Non-profit global organization that owns and maintains the open, royalty-free RISC-V ISA. Publishes the Unprivileged ISA (base integer and extensions), Privileged Architecture, and ABI/psABI specifications. Members include Google, NVIDIA, Qualcomm, Western Digital, and hundreds of academic and commercial organizations.

Visit

Related Specs

Volume IRISC-VMust Know

RISC-V ISA

RISC-V is the only fully open, royalty-free ISA gaining mainstream adoption — in SiFive/StarFive SoCs, SSD controllers, RISC-V Linux, and embedded MCUs. The base spec is required reading for anyone doing hardware or firmware on RISC-V.

SystemsCPU Architectures & ISAs
Details
Linux FdnShould Know

ELF

Every compiled binary on Linux is ELF. Understanding ELF is essential for debugging, reverse engineering, dynamic linking, build toolchains, binary patching, and tools like readelf, objdump, ldd, and patchelf.

SystemsOS Interfaces & ABIs
Details
IEEE Std 1003.1-2017Open GroupMust Know

POSIX

POSIX defines the lingua franca of Unix/Linux systems programming. Every system call pattern, signal handler, file descriptor idiom, and shell script convention in the Linux/macOS world comes from this spec.

SystemsProductOS Interfaces & ABIs
Details