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)