News and announcements

Release GCC ARM Embedded 5 update 1

Written for GNU Arm Embedded Toolchain by Andre Vieira on 2016-04-21

The first 5 release is ready at:
* https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q1-update
* https://launchpad.net/~team-gcc-arm-embedded/+archive/ubuntu/ppa

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

It is recommended to update to this release.

New PPA repository

Written for GNU Arm Embedded Toolchain by Thomas Preud'homme on 2016-01-20

For our 2015Q4 GCC 5 release we decided to move from the old PPA maintained by Terry Guo [1] to a team maintained one [2]. We also took advantage of that move to rename the package from gcc-arm-none-eabi to gcc-arm-embedded.

[1] https://launchpad.net/~terry.guo/+archive/gcc-arm-embedded
[2] https://launchpad.net/~team-gcc-arm-embedded/+archive/ubuntu/ppa

A consequence of that move is that existing users of the old PPA are not automatically upgraded to the 2015Q4 GCC 5 release and need special action to do so:

Step 1: Inside Ubuntu, open a terminal and input
              "sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa"
              to add the new PPA

Step 2: Input "sudo add-apt-repository -r ppa:terry.guo/gcc-arm-embedded"
              to remove the old PPA

Step 3: Input "sudo apt-get update" to update apt's database

Step 4: Input "sudo apt-get remove gcc-arm-none-eabi"
              to remove the 2015Q3 GCC 4.9 package

Step 5: Input "sudo apt-get install gcc-arm-embedded"
              to install the 2015Q4 GCC 5 release

These steps only need to be performed once: upgrade to future release will be done automatically after that.

Status of ARMv8-M support

Written for GNU Arm Embedded Toolchain by Thomas Preud'homme on 2015-12-28

Hi,

As noted in the release notes, the 2015Q4 release of our toolchain comes with initial support for ARMv8-M. However, we did not feel confident enough to include the support for ARMv8-M security extensions. We acknowledge that such support might be important for some of you so we have made the current set of patches for it public on GCC and binutils mailing list. These should therefore be considered alpha quality. Here is the list of patches and their location:

== binutils patches ==

[1/9] Refactor Cortex-A8 erratum workaround in preparation
https://sourceware.org/ml/binutils/2015-12/msg00351.html

[2/9] Factor our stub creation in ARM backend
https://sourceware.org/ml/binutils/2015-12/msg00352.html

[3/9] Allow stubs without associated input section in ARM backend
https://sourceware.org/ml/binutils/2015-12/msg00353.html

[4/9] Use getters/setters to access ARM branch type
https://sourceware.org/ml/binutils/2015-12/msg00354.html

[5/9] Allow veneers to claim veneered symbols
https://sourceware.org/ml/binutils/2015-12/msg00355.html

[6/9] Add support for ARMv8-M Secure Gateway veneer generation
https://sourceware.org/ml/binutils/2015-12/msg00356.html

[7/9] Add support for creating import libraries
https://sourceware.org/ml/binutils/2015-12/msg00357.html

[8/9] Add support for creating ARM v8-M secure extensions import libraries
https://sourceware.org/ml/binutils/2015-12/msg00358.html

[9/9] Add support for stable secure gateway veneers addresses
https://sourceware.org/ml/binutils/2015-12/msg00359.html

== GCC patches ==

[1/8] Add support for ARMv8-M's Security Extensions flag and intrinsics
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg02148.html

[2/8] Add RTL patterns for thumb1 push/pop
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg02149.html

[3/8] Handling ARMv8-M Security Extension's cmse_nonsecure_entry attribute
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg02150.html

[4/8] ARMv8-M Security Extension's cmse_nonsecure_entry: __acle_se label and bxns return
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg02151.html

[5/8] ARMv8-M Security Extension's cmse_nonsecure_entry: clear registers
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg02152.html

[6/8] Handling ARMv8-M Security Extension's cmse_nonsecure_call attribute
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg02153.html

[7/8] ARMv8-M Security Extension's cmse_nonsecure_call: use __gnu_cmse_nonsecure_call
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg02154.html

[8/8] Added support for ARMV8-M Security Extension cmse_nonsecure_caller intrinsic
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg02155.html

For those wanting to try ARMv8-M on GCC trunk, please note that patches for basic support of ARMv8-M need to be applied first since these are only applied on our embedded branch. See below for their list and location

== binutils patches ==

Patches 1/7 to 4/7 are already applied to binutils master branch. Remaining patches are:

[5/7] Add support for ARMv8-M security extensions instructions
https://sourceware.org/ml/binutils/2015-12/msg00298.html

[6/7] Allow extension availability to depend on several architecture bits
https://sourceware.org/ml/binutils/2015-12/msg00299.html

[7/7] Add support for ARMv8-M Mainline with DSP extension
https://sourceware.org/ml/binutils/2015-12/msg00300.html

== GCC patches ==

[1/7] Fix Thumb-1 only == ARMv6-M & Thumb-2 only == ARMv7-M assumptions
https://gcc.gnu.org/ml/gcc-patches/2016-01/msg00677.html

[2/7] Add support for ARMv8-M
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg01689.html

[3/7] Fix indentation of FL_FOR_ARCH* definition after adding support for ARMv8-M
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg01693.html

[4/7] Factor out MOVW/MOVT availability and desirability checks
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg01696.html

[5/7] Add support for MOVT/MOVW to ARMv8-M Baseline
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg01699.html

[6/7] Add support for CB(N)Z and (U|S)DIV to ARMv8-M Baseline
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg01701.html

[7/7] Enable atomics for ARMv8-M Mainline
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg01722.html

For those giving it a try, we welcome any comments you might have.

[edit: add link to trunk/master patches adding basic support for ARMv8-M]

Updated .

Release GCC ARM Embedded 5

Written for GNU Arm Embedded Toolchain by Thomas Preud'homme on 2015-12-23

The first 5 release is ready at:
* https://launchpad.net/gcc-arm-embedded/5.0/5-2015-q4-major
* https://launchpad.net/~team-gcc-arm-embedded/+archive/ubuntu/ppa

Features:
* All GCC 5 features, plus latest mainline features:
  + 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 only supported for assembling and basic linking
* 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

It is recommended to update to this release.

Updated .

Release GCC ARM Embedded 4.9 update 3

Written for GNU Arm Embedded Toolchain by Tejas Belagod on 2015-09-25

The 4.9 2015q3 update release is available at:

* https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update
* https://launchpad.net/~terry.guo/+archive/gcc-arm-embedded

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.

Important bugs fixed in 4.9 update 3 release:
* Newlib format specifier mismatch fix.
  https://answers.launchpad.net/gcc-arm-embedded/+question/269083
* Newlib macro mismatch fix.
  https://answers.launchpad.net/gcc-arm-embedded/+question/269177
* Assembler encoding bug fix.
  https://sourceware.org/ml/binutils/2015-08/msg00028.html

It is recommended to update to this release.

1620 of 36 results