The ABI for the ARM Architecture is a family of specifications that describes the processor-specific aspects of the translation of a source program into object files. Object files produced by any toolchain that conforms to the relevant aspects of the ABI can be linked together to produce a final executable image or library.
Each document in the specification covers a specific area of compatibility. For example, the C Library ABI for the ARM Architecture (CLIBABI) describes the parts of the C library that are expected to be common to all conforming implementations.
The ABI documents contain several areas that are marked as platform specific. To define a complete execution environment these platform-specific details have to be provided. This gives rise to a number of supplemental specifications, for example the ARM GNU/Linux ABI supplement.
The Base Standard ABI for the ARM Architecture (BSABI) enables you to use ARM, 16-bit Thumb®, and 32-bit Thumb objects and libraries from different producers that support the ABI for the ARM Architecture. The ARM compilation tools fully support the BSABI, including support for Debug With Arbitrary Record Format (DWARF) 3 debug tables (DWARF Debugging Standard Version 3).
The ARM C and C++ libraries conform to the standards described in the BSABI, the CLIBABI, and the C++ ABI (CPPABI) for the ARM Architecture.