Application Binary Interface
From ArmadeusWiki
Definition from http://infocenter.arm.com
The Application Binary Interface (ABI) for the ARM Architecture is a collection of standards, some open and some specific to the ARM architecture. The standards regulate the interoperation of binary code, development tools, and a spectrum of ARM core-based execution environments from bare-metal to platform operating systems such as ARM Linux.
ABI for dummies:
At that time there are 2 ABIs used for ARM Linux:
- OABI: Old/Legacy GNU ABI for kernels < 2.6.16 and GCC < 4.1.0
- EABI: new ARM ABI (Embedded ABI) for kernels >= 2.6.16 ang GCC >= 4.1.0
Benefits of new EABI:
- floating point handling is faster when no hardware is available
- system call are more efficient
- compiled objects compatibility
- ?? better Thumb code mixing support ??
- kernel compiled with EABI can be compatible with OABI