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:/
* https:/
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-
* 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:/
* CRC optimization
+ https:/
* 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:/
[2] https:/
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-
to add the new PPA
Step 2: Input "sudo add-apt-repository -r ppa:terry.
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:/
[2/9] Factor our stub creation in ARM backend
https:/
[3/9] Allow stubs without associated input section in ARM backend
https:/
[4/9] Use getters/setters to access ARM branch type
https:/
[5/9] Allow veneers to claim veneered symbols
https:/
[6/9] Add support for ARMv8-M Secure Gateway veneer generation
https:/
[7/9] Add support for creating import libraries
https:/
[8/9] Add support for creating ARM v8-M secure extensions import libraries
https:/
[9/9] Add support for stable secure gateway veneers addresses
https:/
== GCC patches ==
[1/8] Add support for ARMv8-M's Security Extensions flag and intrinsics
https:/
[2/8] Add RTL patterns for thumb1 push/pop
https:/
[3/8] Handling ARMv8-M Security Extension's cmse_nonsecure_
https:/
[4/8] ARMv8-M Security Extension's cmse_nonsecure_
https:/
[5/8] ARMv8-M Security Extension's cmse_nonsecure_
https:/
[6/8] Handling ARMv8-M Security Extension's cmse_nonsecure_call attribute
https:/
[7/8] ARMv8-M Security Extension's cmse_nonsecure_
https:/
[8/8] Added support for ARMV8-M Security Extension cmse_nonsecure_
https:/
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:/
[6/7] Allow extension availability to depend on several architecture bits
https:/
[7/7] Add support for ARMv8-M Mainline with DSP extension
https:/
== GCC patches ==
[1/7] Fix Thumb-1 only == ARMv6-M & Thumb-2 only == ARMv7-M assumptions
https:/
[2/7] Add support for ARMv8-M
https:/
[3/7] Fix indentation of FL_FOR_ARCH* definition after adding support for ARMv8-M
https:/
[4/7] Factor out MOVW/MOVT availability and desirability checks
https:/
[5/7] Add support for MOVT/MOVW to ARMv8-M Baseline
https:/
[6/7] Add support for CB(N)Z and (U|S)DIV to ARMv8-M Baseline
https:/
[7/7] Enable atomics for ARMv8-M Mainline
https:/
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:/
* https:/
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-
* 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:/
* CRC optimization
+ https:/
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:/
* https:/
Features:
* All GCC 4.9 features, plus latest mainline features
- Cortex-M7 support
- Small multiply support with options:
. -mcpu=cortex-
. -mcpu=cortex-
. -mcpu=cortex-
* Dedicated multilib for Cortex-M7
- cortex-m7
- cortex-
- cortex-
- cortex-
- cortex-
* 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-
* 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:/
* Newlib macro mismatch fix.
https:/
* Assembler encoding bug fix.
https:/
It is recommended to update to this release.