Overview of the ARM Compiler toolchain
ARM DUI 0529C Copyright © 2010-2011 ARM. All rights reserved. 2-12
ID080411 Non-Confidential
2.8 Compliance with the ABI for the ARM Architecture (Base Standard)
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:
AADWARF DWARF for the ARM Architecture,
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0040-/index.html
. This
ABI uses DWARF 3 standard to govern the exchange of debugging data between
object producers and debuggers.
AAELF ELF for the ARM Architecture,
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0044-/index.html
.
Builds on the generic ELF standard to govern the exchange of linkable and
executable files between producers and consumers.
AAPCS Procedure Call Standard for the ARM Architecture,
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042-/index.html
.
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.
BPABI Base Platform ABI for the ARM Architecture,
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0037-/index.html
.
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 that is used to derive a platform ABI.
CLIBABI C Library ABI for the ARM Architecture,
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0039-/index.html
.
Defines an ABI to the C library.
CPPABI C++ ABI for the ARM Architecture,
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0041-/index.html
.
Builds on the generic C++ ABI (originally developed for IA-64) to govern
interworking between independent C++ compilers.
DBGOVL Support for Debugging Overlay Programs,
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0049-/index.html
.
Defines an extension to the ABI for the ARM Architecture to support debugging
overlaid programs.
EHABI Exception Handling ABI for the ARM Architecture,
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0038-/index.html
.
Defines both the language-independent and C++-specific aspects of how
exceptions are thrown and handled.
RTABI Run-time ABI for the ARM Architecture,
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0043-/index.html
.
Governs what independently produced objects can assume of their execution
environments by way of floating-point and compiler helper function support.