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?