Release notes for
*************************************************
GNU Tools for ARM Embedded Processors 6
                               - Q1 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 245512
    http://gcc.gnu.org/svn/gcc/branches/ARM/embedded-6-branch/

  * binutils : master
    git://sourceware.org/git/binutils-gdb.git commit 82f83aa4df8dbb68b769df3dd96a9375a64ba38f

  * newlib and newlib-nano :
    git://sourceware.org/git/newlib-cygwin.git commit e046e4de145009ae6baf27f8e0553a666e6a8d3d

  * gdb : 7.12 without target sim support
    git://sourceware.org/git/binutils-gdb.git commit 872656e2af9e4220574fd96a65c576a0685f2af8

  * 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

  * 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

  * isl 0.15 : ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.15.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 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 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

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

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
