GCC ARM Embedded Changelog

What's new in GCC ARM Embedded 9-2019q4

Nov 6, 2019
  • Important changes in 9-2019Q4 major release:
  • * Windows package only tested on Windows 10.
  • * Fixed https://sourceware.org/bugzilla/show_bug.cgi?id=24289
  • MEMORY regions can no longer use LENGTH and ORIGIN.
  • * Fixed https://community.arm.com/developer/tools-software/oss-platforms/f/gnu-toolchain-forum/13503/gcc-g-version-8-very-slow-to-compile GCC 8 very slow to compile
  • * Fixed https://sourceware.org/bugzilla/show_bug.cgi?id=25081
  • Discrepancy between VMA and LMA after ALIGN
  • * Additional armv7-r multilib directory: thumb/v7-r+fp.sp
  • * Added AArch64 Linux host package
  • * Windows installer now accepts the following options when running in silent mode:
  • - /P Adds the installation bin directory to the system PATH
  • - /R Adds an InstallFolder registry entry for the install.

New in GCC ARM Embedded 8-2019q3 (Jul 12, 2019)

  • https://sourceware.org/bugzilla/show_bug.cgi?id=23699
  • https://bugs.launchpad.net/gcc-arm-embedded/+bug/1813553
  • https://bugs.launchpad.net/gcc-arm-embedded/+bug/1814397
  • Fix debug info loss for CMSE entry functions (https://www.sourceware.org/ml/binutils/2019-07/msg00018.html)

New in GCC ARM Embedded 7-2018-q2 (Jun 29, 2018)

  • Fixed powf/expf/exp2f/logf/log2f performance regression
  • Added support for Arm Cortex-M33 without DSP via -mcpu=cortex-m33+nodsp
  • Added Armv8-R multilib mappings
  • Fix build requirements for GDB tui support
  • Enabled C99 IO format specifier in newlib
  • Fixed cmse_nonsecure_caller Armv8-M Security Extension intrinsic
  • Fix crash in __builtin_arm_set_fpscr GCC builtin
  • LTO bug https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966 was fixed in previous release. Release note updated to reflect the change.
  • Fixed issue with building libgcc's cmse.c without headers
  • Fixed issue with arm_cmse.h C99 compatibility

New in GCC ARM Embedded 7-2017-q4 (Dec 27, 2017)

  • Armv8-R and Cortex-R52 support.
  • Fix for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69866
  • GDB built with C++ enabled for Mac OS X

New in GCC ARM Embedded 6.2 (Jun 29, 2017)

  • 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 Baseline and 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
  • Advanced SIMD-optimized memchr implementation in newlib
  • Enable setting options for Windows installer on command line
  • Important changes in 6 update 2 release:
  • GCC incorrectly assumes Cortex-r[578] have 64-bit single-copy atomic LDRD https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80082
  • LDR pseudo-op generates MOVS https://bugs.launchpad.net/gcc-arm-embedded/+bug/1682620
  • Fixed FPSCR getter and setter builtins
  • SG import libraries that were created as executable now fixed to relocatable
  • Enable setting options for Windows installer on command line
  • PURECODE support enabled for ARMv8-M.Baseline
  • Advanced SIMD-optimized memchr implementation in newlib

New in GCC ARM Embedded 5.4 (Sep 29, 2016)

  • New Features:
  • ARMv8-M Baseline and Mainline beta support:
  • ARMv8-M Baseline atomics support
  • ARM PureCode support
  • Thumb-2 long branch veneers
  • Important bugs fixed in 5 update 3 release:
  • Removed MSP_S and PSP_S MRS/MSR special registers
  • Fixed Thumb version detection in veneer generation
  • Fixed documentation about newlib-nano in release.txt

New in GCC ARM Embedded 5.3 (Apr 21, 2016)

  • 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

New in GCC ARM Embedded 5.2 (Dec 23, 2015)

  • 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

New in GCC ARM Embedded 4.9 Update 3 (Sep 28, 2015)

  • 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

New in GCC ARM Embedded 4.9 Update 2 (Jun 23, 2015)

  • 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 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

New in GCC ARM Embedded 4.9 Update 1 (Mar 20, 2015)

  • 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 1 release:
  • LD backport to keep zero length section in final axf file
  • Fix GDB crash caused by discarding the grouped debug sections
  • Add a Thumb1 insn pattern to legalize the instruction that moves pc to low register
  • Update GCC to generate Tag_ABI_HardFP_use per the latest EABI doc
  • Live high register not saved in function prolog with -Os
  • --var-info-path-expression fails for nested structs

New in GCC ARM Embedded 4.8 (Dec 23, 2013)

  • Branch to symbol defined in linker script http://sourceware.org/bugzilla/show_bug.cgi?id=15302
  • GDB is upgraded to 7.6 to better support dwarf-3 and later standard https://answers.launchpad.net/gcc-arm-embedded/+question/234131 https://bugs.launchpad.net/gcc-arm-embedded/+bug/1248981
  • ICE when use high register as PIC base register for thumb-1 target

New in GCC ARM Embedded 4.7 Update 3 (Sep 26, 2013)

  • Crash when compile fixed-point app with LTO https://answers.launchpad.net/gcc-arm-embedded/+question/235582
  • Branch to target specified by a linker script symbol https://sourceware.org/bugzilla/show_bug.cgi?id=15302
  • Windows hosted gdb hang at some breakpoint https://bugs.launchpad.net/gcc-arm-embedded/+bug/1197615
  • Nano missing reference to _mallopt_r https://mbed.org/forum/mbed/topic/2701/?page=3#comment-22549

New in GCC ARM Embedded 4.7 Update 2 (Jun 28, 2013)

  • Upgrade doc/*.texi to the latest texinfo package https://answers.launchpad.net/gcc-arm-embedded/+question/227685
  • Fix ICE with -mtune option https://answers.launchpad.net/gcc-arm-embedded/+question/227667
  • Fix --debug option in build script https://answers.launchpad.net/gcc-arm-embedded/+question/229127
  • Fix unnecessary lr save in thumb1 leaf function

New in GCC ARM Embedded 4.7 Update 1 (Mar 29, 2013)

  • This update release fixes a couple of issues found in 4.7 major:
  • Mac OS host version has python dependence
  • LTO failure when installed in directory with space in path name http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293
  • Load address of data sections containing aligned data http://sourceware.org/bugzilla/show_bug.cgi?id=15222
  • libnosys doesn't check stack overflow https://answers.launchpad.net/gcc-arm-embedded/+question/218972
  • librdimon.a doesn't match newlib-nano
  • It also gets the build configuration adjusted to enable:
  • Basic Cortex-A profile multilib
  • LTO (Link Time Optimization)