GNU ARM Embedded Toolchain 4.9-2015-q2-update

Update 4.9 in Q2 2015

Milestone information

Project:
GNU ARM Embedded Toolchain
Series:
4.9
Version:
4.9-2015-q2-update
Released:
2015-06-23  
Registrant:
Thomas Preud'homme
Release registered:
2015-06-23
Active:
Yes. Drivers can target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
1 Thomas Preud'homme
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
2 Fix Released

Download files for this release

After you've downloaded a file, you can verify its authenticity using its MD5 sum or signature. (How do I verify a download?)

File Description Downloads
download icon release.txt (md5) Release notes 3,816
last downloaded 2 days ago
download icon gcc-arm-none-eabi-4_9-2015q2-20150609-win32.exe (md5) Windows installer 125,323
last downloaded today
download icon gcc-arm-none-eabi-4_9-2015q2-20150609-win32.zip (md5) Windows zip package 148,908
last downloaded today
download icon gcc-arm-none-eabi-4_9-2015q2-20150609-linux.tar.bz2 (md5) Linux installation tarball 155,285
last downloaded today
download icon gcc-arm-none-eabi-4_9-2015q2-20150609-mac.tar.bz2 (md5) Mac installation tarball 24,677
last downloaded today
download icon gcc-arm-none-eabi-4_9-2015q2-20150609-src.tar.bz2 (md5) Source package 37,963
last downloaded 2 days ago
download icon How-to-build-toolchain.pdf (md5) How to build 7,818
last downloaded 2 days ago
download icon readme.txt (md5) README 6,509
last downloaded 24 hours ago
download icon license.txt (md5) Licenses 970
last downloaded 2 days ago
Total downloads: 511,269

Release notes 

Release notes for
*************************************************
GNU Tools for ARM Embedded Processors 4.9
                               - Q2 2015
*************************************************

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_9-branch revision 224288
    http://gcc.gnu.org/svn/gcc/branches/ARM/embedded-4_9-branch/

  * binutils : 2.24 with mainline backports
    git://sourceware.org/git/binutils-gdb.git commit 136a940ac535e464d2a7a86880ce1f1a5554c484

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

  * gdb : 7.8 with mainline backport/without target sim support
    git://sourceware.org/git/binutils-gdb.git commit c9792faa1e25cb54edf55ffce93582370c99e4ac

  * 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.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 LTS 10.04 and later (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:
* All GCC 4.9 features, plus latest mainline features
  - Cortex-M7 support
  - Small multiply support with options:
    . -mcpu=cortex-m1.small-multiply
    . -mcpu=cortex-m0.small-multiply
    . -mcpu=cortex-m0plus.small-multiply
* Dedicated multilib for Cortex-M7
  - cortex-m7
  - cortex-m7/fpu/fpv5-d16
  - cortex-m7/fpu/fpv5-sp-d16
  - cortex-m7/softfp/fpv5-d16
  - cortex-m7/softfp/fpv5-sp-d16
* Define aeabi_memcpy and aeabi_memcpy4 routines in newlib.
* Define aeabi_memmove, aeabi_memset and aeabi_memclr routines in newlib.
* Thumb-1 library optimizations.
* Additional code size optimizations.
* Add gdb python build (arm-none-eabi-gdb-py).
* Object file without attribute section can be linked with any
  others.
* The options -mapcs, -mapcs-frame, -mtpcs-frame and -mtpcs-leaf-frame
  will be deprecated in gcc 5.0, hence recommend to avoid them.

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

Important bugs fixed in 4.9 update 2 release:
* Updated some inline assembly code in Newlib to work with old targets
  https://www.sourceware.org/ml/newlib/2015/msg00386.html
* Avoid wastage caused by section size promotion
  https://answers.launchpad.net/gcc-arm-embedded/+question/262160
* Local register variables don't work correctly with inline asm operands
  https://bugs.launchpad.net/gcc-arm-embedded/+bug/1411655

Important bugs fixed in 4.9 update 1 release:
* LD backport to keep zero length section in final axf file
  https://bugs.launchpad.net/gcc-arm-embedded/+bug/1412384
* Fix GDB crash caused by discarding the grouped debug sections
  https://sourceware.org/ml/binutils/2015-01/msg00007.html
* Add a Thumb1 insn pattern to legalize the instruction that
  moves pc to low register
  https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00458.html
* Update GCC to generate Tag_ABI_HardFP_use per the latest EABI doc
  https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00991.html
* Live high register not saved in function prolog with -Os
  https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00998.html
* --var-info-path-expression fails for nested structs
  https://sourceware.org/bugzilla/show_bug.cgi?id=16084

Important bugs fixed in 4.9 major release:
* LTO ignores -fno-short-enums
  https://bugs.launchpad.net/gcc-arm-embedded/+bug/1315810
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61123
* Incorrect folding of bitfield in a union on big endian targets
  https://bugs.launchpad.net/gcc-arm-embedded/+bug/1330388
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62103
* newlib-nano printf("%.*s",moo) walks off the end of string
  https://bugs.launchpad.net/gcc-arm-embedded/+bug/1385829

Known Changes:
* We now use a gcc pass to implement the function of the plugin mentioned in
  http://gcc.gnu.org/ml/gcc-patches/2013-05/msg00667.html.
  Such pass only exists in embedded-4_9-branch branch and not in upstream
  mainline. A new option -ftree-switch-shortcut can be used to turn on/off
  this pass. By default it is off.

Known 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.

Changelog 

This release does not have a changelog.

0 blueprints and 2 bugs targeted

Bug report Importance Assignee Status
1332079 #1332079 Wrong code generated for big-endian and -O1 3 High Thomas Preud'homme  10 Fix Released
1411655 #1411655 Local variables in specified registers don't work correctly with inline asm operands 1 Undecided   10 Fix Released
This milestone contains Public information
Everyone can see this information.