Release notes for ************************************************* GNU Tools for ARM Embedded Processors 6 - Q2 2017 ************************************************* 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-6-branch revision 249437 svn://gcc.gnu.org/svn/gcc/branches/ARM/embedded-6-branch/ * binutils : 2.28 git://sourceware.org/git/binutils-gdb.git commit c0a558756bcf42dc2554aa778b84bf6e13232819 * newlib and newlib-nano : git://sourceware.org/git/newlib-cygwin.git commit 0d79b021a4ec4e6b9aa1a9f6db0e29a137005ce7 * gdb : 7.12 without target sim support git://sourceware.org/git/binutils-gdb.git commit 17265fcd6b8b6406821d8e6bdcfbb4760bdf28aa Note that some or all of the following prerequisites are downloaded when building from source: * EnvVarUpdate NSIS script : http://nsis.sourceforge.net/mediawiki/images/a/ad/EnvVarUpdate.7z * expat 2.1.1 : http://jaist.dl.sourceforge.net/project/expat/expat/2.1.1/expat-2.1.1.tar.bz2 * gmp 6.1.0 : ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 * isl 0.15 : ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.15.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 1.0.3 : ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz * mpfr 3.1.4 : ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 * python 2.7.13 : https://www.python.org/ftp/python/2.7.13/python-2.7.13.msi * 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 64 bits - Ubuntu 14.04 or later (tarball) - Ubuntu 14.04/16.04/16.10 (tarball and PPA) - RHEL 7 (tarball) * Mac OS X 10.7.3 and newer 64 bits (tarball) Supported target OS: * Bare metal EABI only Features: * All GCC 6 features, plus latest mainline features: + Full ARMv8-M support including atomics and Security Extensions + ARM PURECODE support for ARMv7-M and ARMv8-M Baseline and Mainline + Co-processor intrinsics support + Cortex-M23 and Cortex-M33 support + -mthumb optional for Cortex-M devices * Support for OS-retargeting of locking routines in newlib * Advanced SIMD-optimized memchr implementation in newlib * Enable setting options for Windows installer on command line 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 6 release: * Fix redundant load in loop https://answers.launchpad.net/gcc-arm-embedded/+question/259553 * Fixed stack corruption when using high registers and LR register https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77933 * Fixed internal compiler error when compiling empty FIQ interrupt handler https://bugs.launchpad.net/gcc-arm-embedded/+bug/1454506 * Fix internal compiler error with LTO when building g++.dg/lto/20081219 testcase * Fixed callee-saved register trashing when clobbering SP register https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77904 * Fixed internal compiler error when using -mslow-flash-data and floating-point operations https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71607 * Fixed wrong code generation with indirect sibbling calls https://bugs.launchpad.net/gcc-arm-embedded/+bug/1616992 * Fixed spurious code removal https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78617 Important bugs fixed in 6 update 1 release: * Fix Mac GDB crash with invalid commands https://bugs.launchpad.net/gcc-arm-embedded/+bug/1655778 * Fix Windows wildcard support * Fix selection of newlib.h variant with nano.specs and g++ https://bugs.launchpad.net/gcc-arm-embedded/+bug/1661882 * Allow VCMP immediate without prefix in unified syntax https://bugs.launchpad.net/gcc-arm-embedded/+bug/1641333 Important changes in 6 update 2 release: * GCC incorrectly assumes Cortex-r[578] have 64-bit single-copy atomic LDRD https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80082 * LDR pseudo-op generates MOVS https://bugs.launchpad.net/gcc-arm-embedded/+bug/1682620 * Fixed FPSCR getter and setter builtins * SG import libraries that were created as executable now fixed to relocatable * Enable setting options for Windows installer on command line * PURECODE support enabled for ARMv8-M.Baseline * Advanced SIMD-optimized memchr implementation in newlib Known Changes and Issues: * Thumb1 code size regression due to new register allocation: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59535 * Multilib is now enabled with --with-multilib-list=rmprofile when building the toolchain from source