GCC Newspaper
OCTOBER 6, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
gccrs

gccrs: Add basic ABI support for unadjusted and platform-intrinsic

gccrs gains basic support for `unadjusted` and `platform-intrinsic` ABIs.

This commit introduces basic Application Binary Interface (ABI) support in gccrs for the unadjusted and platform-intrinsic variants. The changes involve updating the ABI utility class in rust-abi.h and rust-abi.cc to recognize and handle these ABI specifiers, which are used to control how types are passed and laid out.

In Details

The ABI utility in gccrs has been extended to handle two new ABI specifiers: PLATFORM_INTRINSIC and UNADJUSTED. Modifications in rust-abi.cc add logic to get_abi_from_string and get_string_from_abi to correctly parse and serialize these variants. This is foundational for correctly representing Rust types that have specific calling conventions or memory layout requirements dictated by the target platform or intrinsic functions.

For Context
ABI
Application Binary Interface. Defines how low-level data structures are laid out in memory, how functions are called, and how parameters are passed between different software components, such as between a program and the operating system or between compiled modules.
unadjusted ABI
A Rust ABI that indicates a type should be passed or represented without any platform-specific adjustments. This often means adhering closely to the C ABI or a minimal representation.
platform-intrinsic ABI
A Rust ABI used for types that are intrinsically tied to the specific capabilities or calling conventions of the target platform, often involving low-level hardware operations or specific processor instructions.
Filed Under: gccrsrustabicompiler