Skip to end of banner
Go to start of banner

ARM and AArch64 Target Triples

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Current »

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 optional operating 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

For default configuration of each 'triples', see ARM and AArch64 Target Triples default options.

Little-Endian Triples

Little-endian is the default bit ordering on ARM. 

aarch64-linux-gnu

Toolchains for little-endian, 64-bit ARMv8 for 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

Default command line options (gcc -v -c): '-march=armv8-a' '-mlittle-endian' '-mabi=lp64'

arm-linux-gnueabihf

Toolchains for little-endian, hard-float, 32-bit ARMv7 (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

Default command line options (gcc -v -c): '-march=armv7-a' '-mtune=cortex-a9' '-mfloat-abi=hard' '-mfpu=vfpv3-d16' '-mthumb' '-mtls-dialect=gnu'

armv8l-linux-gnueabihf

Toolchains for little-endian, 32-bit ARMv8 for 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

Default command line options (gcc -v -c): '-march=armv8-a' '-mfloat-abi=hard' '-mfpu=neon-fp-armv8' '-mthumb' '-mtls-dialect=gnu'

arm-linux-gnueabi

Toolchains for little-endian, soft-float, 32-bit ARMv7 (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

Default command line options (gcc -v -c): '-march=armv7-a' '-mtune=cortex-a9' '-mfloat-abi=soft' '-mthumb' '-mtls-dialect=gnu'

aarch64-elf

Toolchains for little-endian, 64-bit ARMv8 for 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

Default command line options (gcc -v -c): '-march=armv8-a' '-mlittle-endian' '-mabi=lp64'

arm-eabi

Toolchains for little-endian, soft-float, 32-bit ARMv7 (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

Default command line options (gcc -v -c): ''

Big-Endian Triples

aarch64_be-linux-gnu

Toolchains for big-endian, 64-bit ARMv8 for 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

Default command line options (gcc -v -c): '-march=armv8-a' '-mbig-endian' '-mabi=lp64'

armeb-linux-gnueabihf

Toolchains for big-endian, hard-float, 32-bit ARMv7 (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

Default command line options (gcc -v -c): '-march=armv7-a' '-mtune=cortex-a9' '-mfloat-abi=hard' '-mfpu=vfpv3-d16' '-mthumb' '-mtls-dialect=gnu'

armeb-linux-gnueabi

Toolchains for big-endian, soft-float, 32-bit ARMv7 (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

Default command line options (gcc -v -c): '-march=armv7-a' '-mtune=cortex-a9' '-mfloat-abi=soft' '-mthumb' '-mtls-dialect=gnu'

aarch64_be-elf

Toolchains for big-endian, 64-bit ARMv8 for 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

Default command line options (gcc -v -c): '-march=armv8-a' '-mbig-endian' '-mabi=lp64'

armeb-eabi

Toolchains for big-endian, soft-float, 32-bit ARMv7 (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

Default command line options (gcc -v -c): ''



  • No labels