Appendix A. Sourcery CodeBench Lite Release Notes

This appendix contains information about changes in this release of Sourcery CodeBench Lite for MIPS ELF. 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 MIPS ELF

A.1. Changes in Sourcery CodeBench Lite for MIPS ELF

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

A.1.1. Changes in Sourcery CodeBench Lite 2015.05-19

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.

A.1.2. Changes in Sourcery CodeBench Lite 2015.05-2

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.

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.

A.1.3. Changes in Sourcery CodeBench Lite 2014.11-24

No significant changes.  There are no significant changes for MIPS ELF in this release.

A.1.4. Changes in Sourcery CodeBench Lite 2014.11-21

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.

A.1.5. Changes in Sourcery CodeBench Lite 2014.11-10

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.

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

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”.

A.1.7. Changes in Sourcery CodeBench Lite 2014.05-2

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.

A.1.8. Changes in Older Releases

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