The GNU Toolchain for the Cortex-A Family is a ready-to-use, open source suite of tools for C, C++ and Assembly programming targeting processors from the Arm Cortex-A family and implementing the Arm A-profile architecture.

The toolchain includes the GNU Compiler (GCC) and is available free of charge directly for Windows and Linux operating systems. Follow the links on this page to download the correct version for your development environment.

See the downloaded package's Release Notes (linked from this page) for full installation instructions.

GNU Toolchain for the A-profile Architecture

Version 8.2-2018.08

Released: August 31, 2018

What's new in 8.2-2018.08

We are pleased to announce the first Arm release of the pre-built GNU cross-toolchain for the A-profile cores: GCC 8.2-2018.08.

This is the same toolchain that was previously distributed by Linaro.

For more information about the GNU Arm toolchain and download the release packages, please go to the Arm Developer website.

In this release

i686-mingw32 hosted cross compilers

AArch32 bare-metal target (arm-eabi)

AArch64 ELF bare-metal target (aarch64-elf)

x86_64 hosted cross compilers

AArch64 GNU/Linux big-endian target (aarch64_be-linux-gnu)

AArch32 bare-metal target (arm-eabi)

AArch32 target with soft float (arm-linux-gnueabi)

AArch32 target with hard float (arm-linux-gnueabihf)

AArch64 ELF bare-metal target (aarch64-elf)

AArch64 ELF bare-metal, big-endian target (aarch64_be-elf)

AArch64 GNU/Linux target (aarch64-linux-gnu)


Release Note for GNU-A Downloads 8.2-2018.08



This release includes the following items:

Component Description
GCC 8.2.1

Repository: svn://

Revision: 263559

Sources provided in release source tar ball.

GCC 8 branch based on revision id r263242 with some additional patches ported on top as described in Features section.

Detail of changes in GCC 8.2.

glibc 2.28

Repository: git://


Release note

newlib 3.0.0

Repository: git://

Revision: newlib-3.0.0

Release note

binutils 2.30

Repository: git://

Revision: e521dc888158a6cdbdccef0397e663c437450a80

Release note

GDB 8.1.1

Repository: git://

Revision: f9812ee2042783bad9e8901cf47c178daee15a00

GDB-with-python support for Python 2.7.6 (x86_64 builds).

GDB-with-python support for Python 2.7.13 (i686-mingw32 builds).

Release note

libiconv 1.15

Repository: git://

Revision: cc881c232cfeb997497b8e7274d19e9ef3dab85e

Release note
libexpat 2.2.5


Revision: R_2_2_5

Release note

libgmp 4.3.2
libisl 0.15
libmpfr 3.1.6
libmpc 0.8.2

Sources provided in release source tar ball.

Host requirements

Host name Host Triplet Notation
Windows 7 32/64 bits or later i686-mingw32
Ubuntu 14.04 LTS x86_64 or later or RHEL 6 x86_64. x86_64

The GNU Toolchains

Toolchain Triplet The GNU Toolchain Description
i686-mingw32-arm-eabi i686-mingw32 hosted cross compiler for AArch32 bare-metal target.
i686-mingw32-aarch64-elf i686-mingw32 hosted cross compiler for AArch64 ELF bare-metal target.
x86_64-aarch64-elf x86_64 hosted cross compiler for AArch64 ELF bare-metal target.
x86_64-aarch64_be-elf x86_64 hosted cross compiler for AArch64 ELF bare-metal, big-endian target.
x86_64-aarch64-linux-gnu x86_64 hosted cross compiler for AArch64 GNU/Linux target.
x86_64-aarch64_be-linux-gnu x86_64 hosted cross compiler for AArch64 GNU/Linux big-endian target.
x86_64-arm-eabi x86_64 hosted cross compiler for AArch32 bare-metal target.
x86_64-arm-linux-gnueabi x86_64 hosted cross compiler for AArch32 target with soft float.
x86_64-arm-linux-gnueabihf x86_64 hosted cross compiler for AArch32 target with hard float.

Installation instructions

Extract XZ compressed release archive using TAR archiving utility:

$ tar -xJf gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu.tar.xz -C /path/to/destination/directory

Compute and check MD5 checksum of XZ compressed release archives using md5sum utility:

$ md5sum --check gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu.tar.xz.asc gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu.tar.xz: OK

The prebuilt binary bundles can be un-tarred and executed in place. Assuming a RHEL6 host. Unpack the Linux cross toolchain:

$ mkdir install-lnx
$ tar x -C install-lnx -f <filename>.tar.xz
$ PATH=`pwd`/install-lnx/aarch64/bin:$PATH

Known issues

  • Spectre v1 mitigations are provided here for early access and thus might have stability issues. On AArch32 we are currently aware of one issue as documented at PR86951.
  • GDB's Python support requires Python compiled with UCS-4 support (built with --enable-unicode=ucs4) for both hosts x86_64 and i686-mingw32.

Ask questions

For any questions, please use the Arm Communities forums.

Report bugs

Please report any bugs via the Linaro Bugzilla.