Release notes for ************************************************* GNU Tools for ARM Embedded Processors 5 - Q2 2016 ************************************************* This release includes the following items: * Bare metal EABI pre-built binaries for running on a Windows host * Bare metal EABI pre-built binaries for running on a Linux host * Bare metal EABI pre-built binaries for running on a Mac OS X host * Source code package (together with build scripts and instructions to setup build environment), composed of: * gcc : ARM/embedded-5-branch revision 237715 http://gcc.gnu.org/svn/gcc/branches/ARM/embedded-5-branch/ * binutils : 2.26 prerelease with mainline backports git://sourceware.org/git/binutils-gdb.git commit 81dc17df1b58c2b02d5b5e8a9556ae2a266460f5 * newlib and newlib-nano : current master with mainline backports git://sourceware.org/git/newlib-cygwin.git commit 94e3a561d053ca1b00f16d81d4ade2884ea45b54 * gdb : 7.10 without target sim support git://sourceware.org/git/binutils-gdb.git commit 1be8e6826ad559886172ba4e086fc0f280aa3741 * cloog 0.18.0 : ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.0.tar.gz * expat 2.0.1 : http://jaist.dl.sourceforge.net/project/expat/expat/2.0.1/expat-2.0.1.tar.gz * gmp 4.3.2 : ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2 * libelf 0.8.13 : http://www.mr511.de/software/libelf-0.8.13.tar.gz * libiconv 1.14 : http://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz * mpc 0.8.1 : ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz * mpfr 2.4.2 : ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2 * isl 0.12.2 : ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.12.2.tar.bz2 * zlib 1.2.8 http://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.gz/download Supported hosts: * Windows 7 32/64 bits (with installer and alternative zip package) * Linux 32/64 bits - Ubuntu 8.x or later (tarball) - Ubuntu 12.04/14.04/15.04/15.10/16.04 (tarball and PPA) - RHEL 4/5/6/7 (tarball) * Mac OS X 10.7.3 and newer 64 bits (tarball) Supported target OS: * Bare metal EABI only. Features: * All GCC 5 features, plus latest mainline features: + Cortex-R8 support + Cortex-M7 performance tuning + optimization of manual little endian and big endian loads + improved jump threading removing the need for -ftree-switch-shortcut * ARMv8-M Baseline and Mainline alpha support: + atomics not included for ARMv8-M Baseline + ARMv8-M Security Extensions Alpha support * Thumb-1 library optimizations + https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html * CRC optimization + https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html * Smaller terminate handler for newlib-nano * Re-tied the MALLOC_LOCK and MALLOC_UNLOCK to newlib's multithread configuration for newlib-nano. Tests: * Tested on a variety of Cortex-M0/M0+/M3/M4/M7/A9 boards * Tested on Qemu * Tested on ARM Fast Models Important bugs fixed in 5 update 1 release: * https://answers.launchpad.net/gcc-arm-embedded/+question/267037 * https://bugs.launchpad.net/gcc-arm-embedded/+bug/1534360 * https://answers.launchpad.net/gcc-arm-embedded/+question/286502 * A bug that caused gdb's target remote command to behave unexpectedly when debugging simple programs Important bugs fixed in 5 update 2 release: * Fixed code-size regression for Cortex-M0 compared to 4.9 when compiling with -Os * Fix multilib used for armv8-m.main+dsp * Fix use of --gc-sections when building for ARMv8-M with Security Extensions * Fix memcpy used for newlib-nano for pre ARMv6T2 devices * Fix alignment of .data in ldscripts in samples * Fix semihosting for ARMv7-A and ARMv7-R Known Changes and Issues: * Thumb1 code size regression due to new register allocation: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61578 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59535 A workaround is to disable it by option -mno-lra. * The use of 64-bit atomic operations for ARMv8-M Mainline is not supported.