The Application Binary Interface (ABI) for the ARM Architecture (Base Standard) (BSABI) is a collection of standards. Some of these standards are open. Some are specific to the ARM architecture. They regulate the inter-operation of binary code and development tools in ARM architecture-based execution environments, ranging from bare metal to major operating systems such as ARM Linux.
By conforming to this standard, objects produced by the toolchain can work together with object libraries from different producers.
The BSABI consists of a family of specifications including:
DWARF for the ARM Architecture. This ABI uses the DWARF 3 standard to govern the exchange of debugging data between object producers and debuggers.
ELF for the ARM Architecture. Builds on the generic ELF standard to govern the exchange of linkable and executable files between producers and consumers.
Procedure Call Standard for the ARM Architecture. Governs the exchange of control and data between functions at runtime. There is a variant of the AAPCS for each of the major execution environment types supported by the toolchain.
Base Platform ABI for the ARM Architecture. Governs the format and content of executable and shared object files generated by static linkers. Supports platform-specific executable files using post linking. Provides a base standard for deriving a platform ABI.
C Library ABI for the ARM Architecture. Defines an ABI to the C library.
C++ ABI for the ARM Architecture. Builds on the generic C++ ABI (originally developed for IA-64) to govern interworking between independent C++ compilers.
Support for Debugging Overlay Programs. Defines an extension to the ABI for the ARM Architecture to support debugging overlaid programs.
Exception Handling ABI for the ARM Architecture. Defines both the language-independent and C++-specific aspects of how exceptions are thrown and handled.
Run-time ABI for the ARM Architecture. Governs what independently produced objects can assume of their execution environments by way of floating-point and compiler helper function support.
If you are upgrading from a previous toolchain release, ensure that you are using the most recent versions of the ARM specifications.
- Other information