Table of Contents
This section documents Sourcery CodeBench Lite changes for each released revision.
GDB backtrace failure.
An LD bug that caused GDB backtraces to fail when using the
-mips16
option has been fixed.
DWARF signed LEB128 encoding fix.
An assembler bug has been fixed that caused it to generate
unnecessarily long encodings for .sleb128
constants, used in DWARF debug information.
Soft-float link error fix.
A CS3 bug has been fixed that caused undefined symbol errors when
linking some programs with -msoft-float
libraries.
GDB separate debug information fix. A GDB bug has been fixed that caused it to fail to locate the separate debug information for executables containing a build ID section.
Installer change error.
A bug that affected re-running the installer to update an existing
Sourcery CodeBench Lite installation has been fixed. The bug caused selecting
Change
and then Cancel
to
corrupt the existing install.
GCC version 5.2.
Sourcery CodeBench Lite for MIPS ELF is now based on GCC
version 5.2. For more information about changes from GCC
version 4.9 that was included in previous releases, see
https://gcc.gnu.org/gcc-5/changes.html
. Note that
a new release numbering scheme has been adopted beginning with
GCC 5; for details see
https://gcc.gnu.org/develop.html#num_scheme
.
Change to GCC -save-temps
output.
GCC no longer forces verbose assembly language output
(-fverbose-asm
) when the
-save-temps
option is used.
Assembler support for XLP. Assembler support for the XLP architecture has been removed.
Binutils update. The binutils package has been updated to version 2.25.51 from the FSF trunk, git revision cdaec3f3e7ea9118204f0e579bd3257234fbae63. This update includes numerous bug fixes.
Removal of IEEE 754-2008 deprecated options.
The deprecated options -mabs2008
,
-mno-abs2008
, -mnan2008
, and
-mno-nan2008
are no longer supported by GCC and
GAS. They have been replaced by the -mnan=2008>
and the -mnan=legacy
options. For more information,
please refer to the compiler and assembler manuals.
Newlib update. The Newlib package has been updated to version 2.2.0.
GDB internal error fix.
A bug has been fixed that caused GDB to crash with an internal
error in get_frame_id
when it encounters
invalid data while generating a backtrace. An example of when
this can occur is when the current program location is in a
hand-coded assembly routine that does not maintain a valid
stack frame.
GDB update.
The version of GDB has been updated to 7.10.50-cvs, git
revision cdaec3f3e7ea9118204f0e579bd3257234fbae63.
This update adds numerous bug fixes and features. Refer
to http://www.gnu.org/software/gdb/news
for
more information.
Floating-point zero sign fixes. Several bugs causing QEMU to fail to conform to the IEEE 754 standard for floating-point arithmetic were fixed. These bugs caused the results of some arithmetic operations yielding zero to have the incorrect sign.
Failure to find linker fixed.
A bug that caused GCC's -fuse-ld=bfd
option to
fail has been fixed.
Add declaration for __cs3_reset
.
The __cs3_reset
symbol is now defined in
cs3.h
, allowing
applications to perform a soft reset without having to
explicitly define that symbol.
GDB simulator removed. The built-in MIPS processor simulator has been removed from the debugger.
Remove XLP Sprite backend. The XLP backend has been removed from the Sourcery CodeBench Debug Sprite.
GCC version 4.9.2.
Sourcery CodeBench Lite for MIPS ELF is now based on GCC
version 4.9.2. This update fixes a number of bugs; for
details, see
http://gcc.gnu.org/gcc-4.9/changes.html
.
GDB memory corruption bug fix. A bug in support for long pathnames on Windows hosts has been fixed that could lead to memory corruption, causing potential crashes and unpredictable behavior.
GDB source code display fix. A bug has been fixed that prevented GDB from displaying source code from assembly files during single-stepping.
QEMU version 2.2.0.
The version of QEMU included with Sourcery CodeBench Lite for MIPS ELF
has been updated to version 2.2.0, corresponding to git revision
45e1611de8be0eae55967694dd6e627c2dc354f2. For information about
changes in this version, see
http://wiki.qemu.org/ChangeLog/2.2
.
No significant changes. There are no significant changes for MIPS ELF in this release.
Bug fix for incorrect code.
A bug that caused incorrect code to be generated
when compiling with the -pg
and
-fuse-caller-save
options has been fixed.
Windows reserved filename bug fix.
A bug has been fixed that prevented the compiler
and other tools from recognizing Microsoft Windows
reserved filenames, such as NUL
.
MIPS new processor support.
GCC now supports the MIPS32R3, MIPS32R5, MIPS64R3, and MIPS64R5
processors. You can use the command line options
-march=mips32r3
, -march=mips32r5
,
-march=mips64r3
, and
-march=mips64r5
to enable code generation for
these targets.
MIPS XPA support.
GAS now supports the MIPS eXtended Physical Address (XPA) ASE.
You can specify the -mxpa
option to
GCC and GAS to indicate that XPA instructions are being
used.
CS3 linker script bug fix.
A bug in CS3 has been fixed that caused linker scripts
for some targets to assign data associated with the
--build-id
linker option to
inappropriate memory regions, such as boot ROM.
Optimized strcmp
.
strcmp
has now been optimized for speed.
Complex variables manipulation fix. A bug has been fixed that caused GDB to corrupt complex variables living in registers whenever their values were modified.
Long path support on Windows hosts. Sourcery CodeBench Lite on Microsoft Windows hosts now supports source and object files with paths longer than 259 characters. (These were already supported on GNU/Linux hosts.)
Internal compiler error fix.
GCC now issues a diagnostic instead of crashing with an
internal compiler error on code using register
and asm
to assign variables to registers that
are reserved for special purposes (such as the program
counter) or are otherwise unsuitable for the type of the
variable.
Internal compiler error fix.
A bug in GCC has been fixed that sometimes caused internal
compiler errors in var-tracking.c
when
compiling with optimization and debug information enabled.
GCC version 4.9.1.
Sourcery CodeBench Lite for MIPS ELF is now based on GCC
version 4.9.1. For more information about changes from GCC
version 4.8 that was included in previous releases, see
http://gcc.gnu.org/gcc-4.9/changes.html
.
Fix for debug information bug.
A bug has been fixed that caused errors in the GNU binary
utilities, such as running out of memory during linking or
displaying incorrect section sizes in objdump. The bug was
triggered by objects containing uncompressed debug information
for symbols whose names start with ZLIB
.
Fix for initialization of arguments to main
.
A bug in CS3 has been fixed that caused the values of
argc
and argv
passed
to main
to be uninitialized on 64-bit targets.
Newlib update. The Newlib package has been updated to version 2.1.0, with additions from the community CVS trunk as of 2014-06-03.
GDB set mips compression
command bug fix.
A bug in the GDB set mips compression
command
has been fixed that caused it to have no effect.
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.
Fix for microMIPS illegal instruction errors. A bug that caused GCC to emit invalid microMIPS store instructions has been fixed.
-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.
Assembler symbol difference fix. A bug has been fixed that sometimes caused the assembler to miscalculate the difference between two symbols.
Fix for linker relocation overflow errors.
A bug has been fixed that caused relocation truncated to
fit
errors when linking PIC objects that were compiled
with the -mxgot
option and have many symbols.
CS3 stack initialization fix. A bug in the CS3 initialization code that sometimes caused the stack pointer to point outside of the available RAM region has been fixed.
Fix for sbrk
.
A bug in CS3 that caused sbrk
to fail on
targets with more than 2GB of RAM has been fixed.
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.
Line single-stepping GDB bug fix. A bug in GDB sometimes prevented line single-stepping within MIPS16 or microMIPS code from stopping at the intended place. Execution continued until the current function completed or a breakpoint was hit. The bug affected debugging with MDI devices and has been fixed now.
Debug Sprite kernel mode initialization bug fix. The Sourcery CodeBench Debug Sprite has been fixed to ensure the kernel mode is set in the initial application context, via an appropriate setting of the CP0 Status register.
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 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.5, “Installing Sourcery CodeBench Lite”.
GCC option -mvirt
.
GCC now passes the -mvirt
command-line
option to GAS.
GCC version 4.8.3 prerelease.
Sourcery CodeBench Lite for MIPS ELF 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
.
microMIPS jump instructions.
A bug that caused GCC to fail to generate the jrc
and jals
instructions in microMIPS mode has
been fixed.
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.
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 packet warning fix. A bug has been fixed that formerly caused GDB to display an invalid packet warning after interrupting applications using semihosted I/O.
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 disk space calculation. The installer for GNU/Linux hosts now correctly calculates the temporary disk space required.