Release notes for
*************************************************
GNU Tools for ARM Embedded Processors 4.8
                               - Q3 2014
*************************************************

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-4_8-branch revision 213147 with cortex-m7 patches
    http://gcc.gnu.org/svn/gcc/branches/ARM/embedded-4_8-branch/

  * binutils : 2.23 with mainline backports and cortex-m7 patches
    git://sourceware.org/git/binutils.git commit 8ea85793ab9a147f826a2d30ff612d6e77d02225

  * newlib : 2.1.0 with mainline backports
    git://sourceware.org/git/newlib.git commit e14046f93c76ef701d8ad133d0ea2b96d3c1b578 

  * gdb : 7.6 with mainline backports but without target sim support
    git://sourceware.org/git/gdb.git commit 7fc7df8816e69c7478d09c6f3447b83f28532711

  * 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.11.1 : ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.11.1.tar.bz2

  * zlib 1.2.5 and a makefile patch :
    http://sourceforge.net/projects/libpng/files/zlib/1.2.5/zlib-1.2.5.tar.bz2/download

  * newlib-nano 2.1 : Included in source package

  * gcc-plugins (with some tweaks):
    http://gcc.gnu.org/ml/gcc-patches/2013-05/msg00667.html

Supported hosts:
* Windows 7 32/64 bits (with installer and alternative zip package)
* Linux 32/64 bits
  - Ubuntu 8.x or later (tarball)
  - Ubuntu 10.04/12.04/13.04/13.10/14.04 (tarball and PPA)
  - RHEL 4/5/6 (tarball)
* Mac OS X 10.7.3 and newer 64 bits (tarball)

Supported target OS:
* Bare metal EABI only

Features:
* Support the new cpu cortex-m7.
* All GCC 4.8 features, plus latest mainline features
  - Cortex-R7 support
* Additional code size optimizations
  - Don't expand multiply instruction for Thumb-1.
  - Avoid unnecessary lr save instruction for Thumb-1.
* Newlib-nano: newlib branch optimized for code size
* Cortex-A profile multilib
* Link Time Optimization (LTO)
* A new compiler option -mslow-flash-data to minimize the literal load to
  boost performance for some armv7-m targets.
* A new compiler option -mpic-data-is-text-relative to enable/disable
  addressing data with PC relative.
* Avoid missing _sbrk issue when .specs is used.
* Support multiple RAM sessions in startup code.
* A GCC plugin to optimize Finite State Machine program.

Tests:
* Tested on a variety of Cortex-M0/M0+/M3/M4/M7/A9 boards
* Tested on Qemu

Important bugs fixed in 4.8 2014q3 update release:
* --var-info-path-expression fails for nested structs
  https://sourceware.org/bugzilla/show_bug.cgi?id=16084
* LTO ignores -fno-short-enums
  https://bugs.launchpad.net/gcc-arm-embedded/+bug/1315810

Important bugs fixed in 4.8 2014q2 update release:
* Mingw GCC file path length issue
  https://answers.launchpad.net/gcc-arm-embedded/+question/237311
* Wildcards support in tool chain on Windows
  https://bugs.launchpad.net/gcc-arm-embedded/+bug/1298958
* skip_manual option doesn't skip the build-manual task in build script
  https://bugs.launchpad.net/gcc-arm-embedded/+bug/1318131
* Fixed a new NAN issue
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60166

Important bugs fixed in 4.8 2014q1 update release:
* Incorrect write to packed field when strict-volatile-bitfields enabled
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56997
  https://bugs.launchpad.net/gcc-arm-embedded/+bug/1197604
* ICE reload1.c:1058 using 4.8 with mthumb fomit-frame-pointer
  https://bugs.launchpad.net/gcc-arm-embedded/+bug/1278004
* Fix ARM NAN fraction bits
  https://sourceware.org/ml/libc-alpha/2014-02/msg00740.html
* Unable to redefine weak function in -flto incrementally-linked executable
  https://sourceware.org/bugzilla/show_bug.cgi?id=15323
* ICE on Windows with due to mingw version too old
  https://bugs.launchpad.net/gcc-arm-embedded/+bug/1267504

Changes:
* Unwanted binaries in Windows tool chain are cleaned, so Windows tool chain
  packages have about 20% size reduction.

Known Issues:
* Unlike the previous releases, this release O2 optimization level doesn't
  unroll loop.  To tune the strategy to get better performance for your
  case, please refer to unrolling related parameters in associated gcc manual.
* The gcc regression test case pr42575.c now fails due to suboptimal code
  on 64-bit integer multiply caused by gcc new rtx cost model.
* Ubuntu 13.10/14.04 PPA release doesn't have documentation due to incompatibility
  to latest texinfo.
* Since Ubuntu 14.04, the Ubuntu official PPA has tool chain with same name as ours.
  Those who install tool chain through our Launchpad PPA will be impacted.  So to
  correctly install our tool chain on 14.04, a corresponding version should be
  appended to apt-get command which looks like
  "sudo apt-get install gcc-arm-none-eabi=4-8-2014q2-0trusty9".
  We are working with relevant Debian/Ubuntu people to consolidate them. Hopefully
  there will be a unified ARM embedded tool chain coming from official PPA.
