Table of Contents
This section documents Sourcery CodeBench Lite changes for each released revision.
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.
-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.
Neon optimized C libraries for Krait.
The runtime libraries selected when linking with -mcpu=krait
are now optimized for NEON floating point.
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.
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.
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.
Support for Krait processors.
GCC supports a new -mcpu=krait option to generate
code optimized for Krait processors.
In addition, Sourcery CodeBench Lite for ARM GNU/Linux includes a new
multilib to support this target. For more information, refer to
Section 3.2, “Library Configurations”.
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.
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.
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.
Code size optimization improvement.
When compiling with -Os or -O2
and higher GCC no longer enables the -funroll-loops
option by default. This change reduces the size of optimized code
produced by Sourcery CodeBench and brings its behavior back into conformance
with other GCC distributions.
For more information about the tradeoffs between optimizing for
size versus speed please see the
Sourcery CodeBench Knowledge Base
.
Loop optimization bug fix.
A compiler bug that caused some forms
of loop to be mis-optimized when using the
-fpromote-loop-indices option
(enabled by default when optimizing for
speed) has been fixed.
Wrong-code bug fix. A bug in GCC's scheduler has been fixed that sometimes caused incorrect code to be generated.
Misleading GDB warning fixed. A bug has been fixed that formerly caused GDB to display a warning about being unable to load symbols for ELF libraries that are contained in the Linux kernel itself.
Updated system requirements. The host operating system requirements for Sourcery CodeBench Lite have been updated. The minimum versions of GNU/Linux now supported are Red Hat Enterprise Linux 5, SuSE Enterprise Linux 10, Fedora Core 6, Ubuntu 8.04, and Debian 5, or later versions of these distributions running on 32-bit or 64-bit Intel or AMD CPUs.
No significant changes. There are no significant changes for ARM GNU/Linux in this release.
GCC version 4.7.2.
Sourcery CodeBench Lite for ARM GNU/Linux is now based on GCC
version 4.7.2. For more information about changes from GCC
version 4.6 that was included in previous releases, see
http://gcc.gnu.org/gcc-4.7/changes.html.
Select correct multilib for -mcpu=cortex-a15
.
A GCC bug has been fixed that caused an incorrect multilib to
be selected when compiling with -mcpu=cortex-a15.
Incorrect warnings for naked functions fixed.
A bug in the C++ compiler has been fixed that caused it to
incorrectly warn about missing return statements in functions
with the naked attribute, which can only include
inline assembly statements.
Linker script symbols.
The linker now supports a new HIDDEN keyword to define
symbols with object scope. Refer to the linker manual for details.
Binutils version 2.23. Sourcery CodeBench Lite for ARM GNU/Linux is now based on binutils version 2.23.
EGLIBC version 2.16.
Sourcery CodeBench Lite for ARM GNU/Linux now includes EGLIBC version 2.16
library which is based on GNU C Library version 2.16.
For more information about changes, see
http://www.eglibc.org/news#eglibc_2_16.
Linux kernel headers update. Linux kernel header files have been updated to version 3.5.4.
GDB update.
The included version of GDB has been updated to
7.4.50.20120716. This update adds numerous bug fixes and
features. Refer to http://www.gnu.org/software/gdb/news
for more information.
Removal of the Sourcery CodeBench Debug Sprite. The Sourcery CodeBench Debug Sprite has been removed.