Home

EABI

Embedded Application Binary Interface (EABI) is a family of application binary interfaces for the ARM architecture that defines the conventions used when code, libraries, and runtime environments interact. It specifies how binaries are linked, how data types are sized and aligned, how functions receive arguments and return values, and how exceptions and interrupts are handled. EABI was introduced to replace the older OABI and to provide a consistent, cross‑platform ABI across ARM-compatible systems and toolchains. It is closely aligned with the ARM Architecture Procedure Call Standard (AAPCS) and the ELF object file format.

Core elements of the EABI include a standardized calling convention, stack frame layout, and register usage,

Adoption and usage: ARM Linux, Android, and many bare-metal toolchains support ARM EABI. Target triplets include

along
with
the
chosen
object
file
format.
In
32-bit
ARM
EABI,
arguments
are
typically
passed
in
registers
r0–r3,
with
r0
used
for
return
values;
r4–r11
are
callee‑saved,
and
the
stack
grows
downward
with
a
defined
alignment.
The
interface
also
defines
floating-point
handling,
which
exists
in
soft-float
and
hard-float
variants.
In
hard-float
ABIs,
floating-point
arguments
and
results
may
be
passed
in
VFP/NEON
registers;
in
soft-float
ABIs
they
are
passed
in
general-purpose
registers
and
computed
in
software.
arm-eabi
for
bare-metal
environments
and
arm-linux-gnueabi
or
arm-linux-gnueabihf
for
Linux
systems.
The
EABI
is
a
practical
implementation
of
the
ARM
calling
standard
and
related
ARM
ABI
specifications,
with
extensions
such
as
AAPCS-VFP
to
cover
floating-point
support.