Appendix A. Sourcery CodeBench Lite Release Notes

This appendix contains information about changes in this release of Sourcery CodeBench Lite for ARM GNU/Linux. You should read through these notes to learn about new features and bug fixes.

Table of Contents

A.1. Changes in Sourcery CodeBench Lite for ARM GNU/Linux

A.1. Changes in Sourcery CodeBench Lite for ARM GNU/Linux

This section documents Sourcery CodeBench Lite changes for each released revision.

A.1.1. Changes in Sourcery CodeBench Lite 2014.05-29

-fuse-caller-save fix.  A bug in -fuse-caller-save that caused the compiler to generate incorrect code has been fixed.

Instrumentation bug fix.  A bug that caused GCC to instrument functions tagged with __attribute__((no_instrument_function)) when compiling with -fprofile-arcs has been fixed.

GCC version 4.8.3 prerelease.  Sourcery CodeBench Lite for ARM GNU/Linux is now based on a GCC 4.8.3 prerelease snapshot from Mar 20th, 2014, SVN revision 208690. This version includes numerous other bug fixes. For more information about changes from GCC version 4.8.1 that was included in previous releases, see http://gcc.gnu.org/gcc-4.8/changes.html.

-Weffc++ and -Wnon-virtual-dtor interaction.  The two C++ warning options -Weffc++ and -Wnon-virtual-dtor have been updated to interoperate correctly and warn about the lack of virtual destructors only in polymorphic classes.

Thread-local storage code generation fix.  A GCC bug that caused an internal compiler error or wrong code for thread-local storage with the -fPIC option has been fixed.

Thumb-2 PLT entry support.  The linker now generates correct PLT entries for Thumb-2-only targets.

Binutils update.  The binutils package has been updated to version 2.24.51.20140217 from the FSF trunk, git revision 024a23103f04282872d4352302b1bfe04391a7a4. This update includes numerous bug fixes.

sys/ptrace.h bug fix.  A bug that caused GCC to issue errors of the form error: redefinition of 'struct ptrace_peeksiginfo_args' when including sys/ptrace.h has been fixed.

Linux kernel headers update.  Linux kernel header files have been updated to version 3.13.

GDB memory manipulation fix.  A bug has been fixed that caused GDB to read incorrect contents from breakpoint addresses, leading to unpredictable behavior and erroneous backtraces.

Fix for GDB crashes.  GDB has been made more robust to handle executables with incorrect DWARF-2 .debug_line information. Previously, GDB crashed on programs that referenced missing include directory information.

GDB update.  The version of GDB has been updated to 7.7.50-cvs, git revision 024a23103f04282872d4352302b1bfe04391a7a4. This update adds numerous bug fixes and features. Refer to http://www.gnu.org/software/gdb/news for more information.

Installer help.  The installer now displays help on Microsoft Windows hosts when invoked from the command line with the --help option. Formerly, this command-line option only worked on GNU/Linux hosts.

Installer error dialog.  On Microsoft Windows hosts the installer now displays an error dialog during a GUI installation if a fatal error occurs.

Installer logging improved.  The installer now logs information related to the progress of the installation and also errors when it fails to start.

Installer 32-bit library detection.  The installer checks for required 32-bit compatibility libraries on supported 64-bit GNU/Linux hosts.

Microsoft Windows XP host no longer supported.  The minimum required Microsoft Windows OS needed to run Sourcery CodeBench Lite is now Windows Vista.

Installer disk space calculation.  The installer for GNU/Linux hosts now correctly calculates the temporary disk space required.

Installer temp path.  The installer now allows you to change the directory where it is extracted using the P2_INSTALLER_TEMP_PATH environment variable. See Section 2.4, “Installing Sourcery CodeBench Lite”.

Compile caching now works on Windows XP.  A bug has been fixed that made compile caching incompatible with Microsoft Windows versions prior to Vista.

A.1.2. Changes in Sourcery CodeBench Lite 2013.11-33

GCC -fremove-local-statics option.  GCC no longer supports the -fremove-local-statics command-line option. The optimizations formerly controlled by this option are now carried out automatically by other optimization passes.

GCC version 4.8.1.  Sourcery CodeBench Lite for ARM GNU/Linux is now based on GCC version 4.8.1. For more information about changes from GCC version 4.7 that was included in previous releases, see http://gcc.gnu.org/gcc-4.8/changes.html.

Binutils update.  The binutils package has been updated to version 2.23.52.20130912 from the FSF trunk. This update includes numerous bug fixes.

EGLIBC version 2.18.  Sourcery CodeBench Lite for ARM GNU/Linux now includes EGLIBC version 2.18 library which is based on GNU C Library version 2.18. For more information about changes, see http://www.eglibc.org/news#eglibc_2_18.

Linux kernel headers update.  Linux kernel header files have been updated to version 3.11.

GDB update.  The version of GDB has been updated to 7.6.50.20130726-cvs. This update adds numerous bug fixes and features. Refer to http://www.gnu.org/software/gdb/news for more information.

Improved GDB diagnostic.  GDB now issues an error message when an invalid option is passed to the add-symbol-file command.

New GDB command.  GDB now supports the remove-symbol-file command.

Compile caching on Windows hosts.  Compile caching is now available on both Linux and Windows hosts.

New installer.  The installer has changed. Please refer to Section 2.4, “Installing Sourcery CodeBench Lite” for more details. Previous versions of Sourcery CodeBench Lite cannot be updated. You must uninstall the previous version or choose a different directory during installation.

A.1.3. Changes in Sourcery CodeBench Lite 2013.05-71

-fvect-cost-model enabled at -O3 GCC now turns on -fvect-cost-model by default at the -O3 optimization level, enabling better auto-vectorization results.

VFP/Neon code generation improvements.  GCC now generates more efficient memory load/store code of floating-point values when targeting VFP and Neon FPU hardware.

Incorrect optimization fix.  A bug in GCC that caused it to generate wrong code for some conditionally-executed statements has been fixed.

A.1.4. Changes in Sourcery CodeBench Lite 2013.05-58

Prefetch assert bug fix.  A bug that could cause an internal compiler error when prefetch instructions were generated has been fixed.

Linker compatibility option. A --icf option has been added to the linker for compatibility with the gold linker. The option has no effect.

A.1.5. Changes in Sourcery CodeBench Lite 2013.05-47

Cortex-A9 erratum.  A workaround has been implemented for an erratum in Cortex-A9 MPCore processors that can cause successive reads from volatile variables to appear out of program order. To enable the workaround use the -mfix-cortex-a9-volatile-hazards option. For more information see the ARM Information Center.

Add AF_BUS definition.  GLIBC now supports the AF_BUS socket address family for kernel interprocess communication. It complies with the GENIVI 3.0 specification. For more information, refer to Section 3.12, “GENIVI 3.0 Compliance”.

GLIBC NaN string conversion bug fix.  A bug in GLIBC's strtof, strtod, and strtold functions has been fixed that caused them to incorrectly return a signaling NaN rather than a quiet NaN given input of the form "nan(N)". The bug also affected the nanf, nan, and nanl functions given a non-empty input string.

GDB support for removing symbols.  GDB now supports the remove-symbol-file command. Refer to the GDB manual for full documentation.

cs-rm -f bug fix.  A bug that caused cs-rm -f on Windows hosts to incorrectly issue an error when passed a glob pattern that matched nothing has been fixed.

A.1.6. Changes in Sourcery CodeBench Lite 2013.05-24

GCC version 4.7.3.  Sourcery CodeBench Lite for ARM GNU/Linux is now based on GCC version 4.7.3. This update incorporates numerous bug fixes. For more information, see http://gcc.gnu.org/gcc-4.7/changes.html.

Installer warnings fixed.  A bug that caused Gtk warnings relating to libappmenu.so when running the installer on 64-bit Ubuntu GNU/Linux hosts has been fixed.

New GLIBC macro issignaling A new <math.h> macro named issignaling to check for a signaling Not a Number (sNaN) has been added to GLIBC. Please see the manual for further information.

A.1.7. Changes in Sourcery CodeBench Lite 2013.05-5

Pointer comparison bug fixed.  A bug in GCC that caused it to incorrectly optimize away a pointer comparison has been fixed.

Atomic operations.  A bug has been fixed that caused several built-in atomic functions (e.g. __sync_val_compare_and_swap) to operate incorrectly with char or short arguments when compiled for architecture versions earlier than ARMv7.

Incorrect optimization bug fix.  A compiler bug has been fixed that caused incorrect code to be generated for some comparisons unless optimization was suppressed with -fno-forward-propagate.

Performance regression fixed.  A bug that introduced unnecessary instructions to zero-extend unsigned char or short values has been fixed.

Linker raw binary input crash fix.  A bug that caused the linker to crash when linking binary inputs (--format=binary) while using --gc-sections has been fixed.

Linker assertion failure fix.  A linker bug has been fixed that caused an assertion failure when linking unoptimized code using thread-local storage.

ldralt assembly bug fix.  A bug that caused the assembly of ldralt instructions to sometimes produce the error message selected processor does not support ARM mode has been fixed.

Binutils update.  The binutils package has been updated to version 2.23.52.20130219 from the FSF trunk. This update includes numerous bug fixes.

Installing multiple targets in one directory.  Due to changes in the installer, Sourcery CodeBench Lite for ARM GNU/Linux can no longer be installed into a directory already containing an existing Sourcery CodeBench installation for a different target. The installer detects this situation and asks you to select a different directory.

Fix for installer upgrade problems.  Sourcery CodeBench Lite for ARM GNU/Linux can now be installed into a directory already containing a previous version.

EGLIBC version 2.17.  Sourcery CodeBench Lite for ARM GNU/Linux now includes EGLIBC version 2.17 library which is based on GNU C Library version 2.17. For more information about changes, see http://www.eglibc.org/news#eglibc_2_17.

Linux kernel headers update.  Linux kernel header files have been updated to version 3.8.2.

Improved source line stepping.  GDB and gdbserver now implement range stepping, which improves the performance of single stepping over a source line by reducing the number of control messages from GDB.

GDB hang fix.  A bug that caused GDB to sometimes hang when setting a breakpoint has been fixed.

A.1.8. Changes in Older Releases

For information about changes in older releases of Sourcery CodeBench Lite for ARM GNU/Linux, please refer to the Getting Started guide packaged with those releases.