ARM and AArch64 Target Triples
Introduction
The GCC compiler uses 'triples' when referring to the host system that the compiler runs on or the target system that a compiler will generate binaries to run on.
The term 'triple' refers to the method used in the GNU/Linux operating system to designate a specific host or target. It is separated into the following components:
<arch>-<vendor>-<operatingsystem>
The <operatingsystem> may be further divided into an optionaloperating system _and _ABI _portions. For example the Linux OS and the GNU hardfloat ABI might have the following <_operatingsystem>, "-linux-gnueabihf". Whereas a bare-metal target will not have an OS but only the embedded ABI, "-eabi".
https://gcc.gnu.org/install/specific.html
Little-Endian Triples
Little-endian is the default bit ordering on ARM.
aarch64-linux-gnu
Toolchains for little-endian, 64-bitARMv8for GNU/Linux systems
gcc-linaro-*x86_64_aarch64-linux-gnu.tar.xz
Linux 64-bit binaries for the Aarch64 Linux cross-toolchain
gcc-linaro-*i686_aarch64-linux-gnu.tar.xz
Linux 32-bit binaries for the Aarch64 Linux cross-toolchain
gcc-linaro-*i686-mingw32_aarch64-linux-gnu.tar.xz Windows 32-bit binaries for the Aarch64 Linux cross-toolchain
arm-linux-gnueabihf
Toolchains for little-endian, hard-float, 32-bitARMv7(and earlier) for GNU/Linux systems
gcc-linaro-*x86_64_arm-linux-gnueabihf.tar.xz
Linux 64-bit binaries for the ARMv7 Linux hard float cross-toolchain
gcc-linaro-*xi686_arm-linux-gnueabihf.tar.xz
Linux 32-bit binaries for the ARMv7 Linux hard float cross-toolchain
gcc-linaro-*i686-mingw32_arm-linux-gnueabihf.tar.xz Windows 32-bit binaries for the ARMv7 Linux hard float cross-toolchain
armv8l-linux-gnueabihf
Toolchains for little-endian, 32-bitARMv8for GNU/Linux systems
gcc-linaro-*-x86_64_armv8l-linux-gnueabihf.tar.xz
Linux 64-bit binaries for the Aarch64 Linux cross-toolchain
gcc-linaro-*-i686_armv8l-linux-gnueabihf.tar.xz
Linux 32-bit binaries for the Aarch64 Linux cross-toolchain
gcc-linaro-*-i686-mingw32_armv8l-linux-gnueabihf.tar.xz Windows 32-bit binaries for the Aarch64 Linux cross-toolchain
arm-linux-gnueabi
Toolchains for little-endian, soft-float, 32-bitARMv7(and earlier) for GNU/Linux systems
gcc-linaro-*x86_64_arm-linux-gnueabi.tar.xz
Linux 64-bit binaries for the ARMv7 Linux soft float cross-toolchain
gcc-linaro-*i686_arm-linux-gnueabi.tar.xz
Linux 32-bit binaries for the ARMv7 Linux soft float cross-toolchain
gcc-linaro-*i686-mingw32_arm-linux-gnueabi.tar.xz Windows 32-bit binaries for the ARMv7 Linux soft float cross-toolchain
aarch64-elf
Toolchains for little-endian, 64-bitARMv8for bare-metal systems
gcc-linaro-*x86_64_aarch64-elf.tar.xz
Linux 64-bit binaries for the Aarch64 bare-metal cross-toolchain
gcc-linaro-*i686_aarch64-elf.tar.xz
Linux 32-bit binaries for the Aarch64 bare-metal cross-toolchain
gcc-linaro-*i686-mingw32_aarch64-elf.tar.xz Windows 32-bit binaries for the Aarch64 bare-metal cross-toolchain
arm-eabi
Toolchains for little-endian, soft-float, 32-bitARMv7(and earlier) for bare-metal systems
gcc-linaro-*x86_64_arm-eabi.tar.xz
Linux 64-bit binaries for the ARMv7 bare-metal cross-toolchain
gcc-linaro-*i686_arm-eabi.tar.xz
Linux 32-bit binaries for the ARMv7 bare-metal cross-toolchain
gcc-linaro-*i686-mingw32_arm-eabi.tar.xz Windows 32-bit binaries for the ARMv7 bare-metal cross-toolchain
Big-Endian Triples
aarch64_be-linux-gnu
Toolchains for big-endian, 64-bitARMv8for GNU/Linux systems
gcc-linaro-*x86_64_aarch64_be-linux-gnu.tar.xz
Linux 64-bit binaries for the Aarch64 Linux Big Endian cross-toolchain
gcc-linaro-*i686_aarch64_be-linux-gnu.tar.xz
Linux 32-bit binaries for the Aarch64 Linux Big Endian cross-toolchain
gcc-linaro-*i686-mingw32_aarch64_be-linux-gnu.tar.xz Windows 32-bit binaries for the Aarch64 Linux Big Endian cross-toolchain
armeb-linux-gnueabihf
Toolchains for big-endian, hard-float, 32-bitARMv7(and earlier) for GNU/Linux systems
gcc-linaro-*x86_64_armeb-linux-gnueabihf.tar.xz
Linux 64-bit binaries for the ARMv7 Linux Big Endian hard float cross-toolchain
gcc-linaro-*i686_armeb-linux-gnueabihf.tar.xz
Linux 32-bit binaries for the ARMv7 Linux Big Endian hard float cross-toolchain
gcc-linaro-*i686-mingw32_armeb-linux-gnueabihf.tar.xz Windows 32-bit binaries for the ARMv7 Linux Big Endian hard float cross-toolchain
armeb-linux-gnueabi
Toolchains for big-endian, soft-float, 32-bitARMv7(and earlier) for GNU/Linux systems
gcc-linaro-*x86_64_armeb-linux-gnueabi.tar.xz
Linux 64-bit binaries for the ARMv7 Linux Big Endian soft float cross-toolchain
gcc-linaro-*i686_armeb-linux-gnueabi.tar.xz
Linux 32-bit binaries for the ARMv7 Linux Big Endian soft float cross-toolchain
gcc-linaro-*i686-mingw32_armeb-linux-gnueabi.tar.xz Windows 32-bit binaries for the ARMv7 Linux Big Endian soft float cross-toolchain
aarch64_be-elf
Toolchains for big-endian, 64-bitARMv8for bare-metal systems
gcc-linaro-*x86_64_aarch64_be-elf.tar.xz
Linux 64-bit binaries for the Aarch64 bare-metal Big Endian cross-toolchain
gcc-linaro-*i686_aarch64_be-elf.tar.xz
Linux 32-bit binaries for the Aarch64 bare-metal Big Endian cross-toolchain
gcc-linaro-*i686-mingw32_aarch64_be-elf.tar.xz Windows 32-bit binaries for the Aarch64 bare-metal Big Endian cross-toolchain
armeb-eabi
Toolchains for big-endian, soft-float, 32-bitARMv7(and earlier) for bare-metal systems
gcc-linaro-*x86_64_armeb-eabi.tar.xz
Linux 64-bit binaries for the ARMv7 bare-metal Big Endian cross-toolchain
gcc-linaro-*i686_armeb-eabi.tar.xz
Linux 32-bit binaries for the ARMv7 bare-metal Big Endian cross-toolchain
gcc-linaro-*i686-mingw32_armeb-eabi.tar.xz Windows 32-bit binaries for the ARMv7 bare-metal Big Endian cross-toolchain
Last updated
Was this helpful?