Table of Contents
This section documents Sourcery CodeBench Lite changes for each released revision.
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.
No significant changes. There are no significant changes for MIPS ELF in this release.
Internal compiler error fix.
A bug that sometimes caused an internal compiler error when
compiling with the -mabi=64
option and
optimizations enabled has been fixed.
microMIPS delay slots.
A GCC bug that caused delay slots to remain unfilled when
compiling with -mmicromips
has been fixed.
MIPS code generation fix.
A bug in GCC has been fixed that caused register corruption
with the -fuse-caller-save
option for MIPS O32
ABI targets.
Better code for short operations. GCC no longer generates unnecessary type conversions for conditional moves on short data types. This fixes a regression from GCC 4.7.
GCC nor
instruction tuning.
GCC has been improved to make better use of nor
instructions in generated code.
Assembler internal error.
A bug that caused the assembler to crash with an
internal error on dmtur
instructions
has been fixed.
New assembler option: -mfix-rm7000
.
The assembler now accepts the -mfix-rm7000
command-line option. This option causes the assembler to
work around hardware errata in the dmult
and dmultu
instructions on RM7000 cores.
In addition, GCC now accepts this command-line option and passes it
through to the assembler.
New macros to access TCOpt
.
The header file
mips/mt.h
now defines the macros
mips32_gettcopt
,
mips32_settcopt
and
mips32_xchtcopt
to access the CP0
register
TCOpt
.
Changes to included libraries.
Some library variants built with -mmicromips
and -mnan=2008
have been removed from
Sourcery CodeBench Lite for MIPS ELF. Please refer to
Section 3.2, “Library Configurations” for a list of the
currently-supported multilibs.
MIPS16 debug information bug fix. A bug in GCC has been fixed that caused incorrect debug information to be produced for mixed MIPS16 and standard MIPS code. The bug caused single-stepping problems and incorrect function call backtraces reported while debugging such code with GDB.
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.
Internal compiler error fix.
A bug that sometimes caused an internal compiler error
when compiling with -funroll-loops
on a Windows XP host has been fixed.
GCC version 4.8.1.
Sourcery CodeBench Lite for MIPS ELF 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
.
Invalid assembler errors.
A bug that caused the assembler to incorrectly reject
msglds
instructions and crash with an
internal error on msgsnds
instructions has
been fixed.
IEEE 754-2008 feature support updates.
GCC and GAS now support new options to control IEEE 754-2008
features, as follows: -mabs=2008
replaces
-mabs2008
, -mabs=legacy
replaces
-mno-abs2008
, -mnan=2008
replaces
-mnan2008
, and -mnan=legacy
replaces -mno-nan2008
. The old options remain
supported but are now deprecated and may be removed in the future.
For further information about the new options please refer to the
compiler and assembler manuals.
Linker plugins bug fix.
A bug that caused errors similar to
libgcc_s.so.1: could not read symbols:
Nonrepresentable section on output
when linking with linker plugins active (for example, when
Link Time Optimization is enabled) has been fixed.
Binutils update. The binutils package has been updated to version 2.23.52.20130912 from the FSF trunk. This update includes numerous bug fixes.
Changed the CS3 API for passing arguments to main
.
CS3 now requires that the function that initializes arguments
passed to main
be named
__cs3_init_args
.
See Section 5.2.3, “The C Initialization Phase” for details.
microMIPS FPU instruction emulation bug fixes.
Bugs in the CS3 FPU emulation library have been fixed that made
the ABS.fmt
, NEG.fmt
, MOVF
and MOVT
instructions execute incorrectly on non-FPU
processors.
Newlib update. The Newlib package has been updated to version 2.0.0, with additions from the community CVS trunk as of 2013-07-06. This update provides various C99/POSIX cleanups along with other bug fixes and enhancements.
Optimized memset
.
memset
has now been optimized for speed.
GDB Backtrace fix. A bug has been fixed that caused GDB to incorrectly display backtraces through signal handlers.
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.
QEMU version 1.5.50. Sourcery CodeBench Lite for MIPS ELF is now based on QEMU version 1.5.50.
New installer. The installer has changed. Please refer to Section 2.5, “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.
Update Python to 2.7.5. The version of Python used by GDB has been updated to 2.7.5.