The Linaro Binary Toolchain
The Linaro GCC 7.5-2019.12 Release is now available.
Notice: GCC 7.1 ABI change for arm*-*-* targets, and note for aarch64*-*-* targets
From GCC 7.1 release notes:
On ARM targets (arm*-*-*), a bug introduced in GCC 5 that affects conformance to the procedure call standard (AAPCS) has been fixed. The bug affects some C++ code where class objects are passed by value to functions and could result in incorrect or inconsistent code being generated. This is an ABI change. If the option -Wpsabi is enabled (on by default) the compiler will emit a diagnostic note for code that might be affected.
GCC 5 and GCC 6 releases will continue to be affected by the ABI bug, since changing ABI in these releases is not practical. A warning enabled by -Wpsabi option was added to GCC 5 and GCC 6 toolchains to diagnose codebases that might be affected by the ABI bug.
Additionally, this same bug was present in AArch64 backend in development versions of GCC 7. There was no releases of GCC with this bug present in AArch64 backend, therefore the release notes does not mention this. However, be advised that any code bases built with development versions of GCC 7 need to be recompiled with released version of GCC 7 to conform to ABI.
For an explanation of GCC 7 series changes please see the following website:
For help in porting to GCC 7 please see the following explanation:
Download release packages from:
Previous snapshots and release-candidates are at:
Previous releases are at:
A description of the arm and AArch64 target triples can be found at:
Linaro officially supports the current and previous Ubuntu LTS releases (as of the time of this release). This does not mean that the toolchain will not work on other/older Linux distributions. See the following for the life-time of Ubuntu LTS releases.
The host system upon which the cross-compiler will run requires a minimum of glibc 2.14, because of API changes to glibc’s memcpy API.
Linaro GCC 7.5-2019.12
FSF glibc 2.25 (release/2.25)
Newlib 2.5 (newlib-2_5_0 tag)
GNU Binutils 2.28 (users/linaro/binutils-2_28-branch)
FSF GDB 8.3 (gdb-8.3-branch)
Linaro toolchain package git branches are hosted at:
NEWS for GCC 7 (as of Linaro GCC 7.5-2019.12)
- Runtest and gdbserver are no longer installed in the toolchain bin/ directory. Binary releases no longer include runtest at all, and gdbserver is a target tool; it is now shipped in the sysroot under usr/bin/.
LDTS case #2211: gdbserver and runtest in GCC binary release are in the wrong place or have the wrong name
- Gdbserver is no longer linked statically, because this is currently unsupported.
Linaro bugzilla #3344: gdbserver broken in Linaro 2017.02
- The Linaro GCC 7.4-2019.01 snapshot added a fix for Linaro bug 4007: “Internal compiler error with -mcpu=thunderx2t99”.
- The Linaro GCC 7.2-2017.09 snapshot added float and integer moves improvement for AArch64 targets.
- The Linaro GCC 7.1-2017.07 snapshot added prefetching configuration improvement for AArch64 targets and laid groundwork to enabling prefetching in more cases.
- Previous MinGW hosted version of Linaro GCC C preprocessor failed to convert character set used for string, character constants, etc. This is fixed in this release.
Linaro bugzilla #3040 : CC1 and cc1plus cannot convert UTF-8.
- Performance related backports from the following snapshots have been included: Linaro GCC 7.1-2017.05, Linaro GCC 7.1-2017.06, Linaro GCC 7.1-2017.07, Linaro GCC 7.2-2017.08, Linaro GCC 7.2-2017.09, Linaro GCC 7.2-2017.10, Linaro GCC 7.2-2018.04, Linaro GCC 7.4-2019.01 and Linaro GCC 7.5-2019.11.
See the following Linaro GCC snapshots:
File bugs at http://bugs.linaro.org
For Linaro member support see http://support.linaro.org
For Linaro community support email firstname.lastname@example.org