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 2016.05-7

Unexpected termination.  An LD bug that caused executables compiled with -mips16 to terminate unexpectedly has been fixed.

A.1.2. Changes in Sourcery CodeBench Lite 2016.05-3

Fix thread-safe library support.  A bug has been fixed that disabled thread safety in the libraries included with Sourcery CodeBench Lite for MIPS ELF.

GCC version 5.3.  Sourcery CodeBench Lite for MIPS ELF is now based on GCC version 5.3. For more information about changes from GCC version 5.2 that was included in previous releases, see https://gcc.gnu.org/gcc-5/changes.html.

-mnon-pic-abicalls support.  GAS no longer supports the option -mnon-pic-abicalls. -call_nonpic can be used instead.

Removal of MIPS ELF converter tool.  The MIPS ELF converter tool mips-sde-elf-conv has been removed from Sourcery CodeBench Lite.

Fix for silent truncation when out of disk space on Windows.  On Microsoft Windows hosts, programs in the GNU binary utilities sometimes failed to report an error when there was insufficient space for the output file, and instead created a truncated file. This is now fixed.

GBD backtrace fix.  A bug that caused missing backtrace information in GDB for applications compiled with -mips16 has been fixed.

GDB wide character printing on Windows.  On Microsoft Windows hosts, GDB now prints wide character and wide string values by assuming a UTF-32 encoding. Previously, wchar_t strings printed as a sequence of byte values, as if the contents were a non-wide char string.

Breakpoint in non-existent file bug fix.  A GDB bug that caused an internal error when setting a breakpoint from a Windows host has been fixed. The error was generated when using break filename:linenumber where the filename string included the Windows logical volume (for example, C:), and the file did not exist or was not used in the program.

A.1.3. Changes in Sourcery CodeBench Lite 2015.11-33

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.

A.1.4. Changes in Sourcery CodeBench Lite 2015.11-12

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.

A.1.5. 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.6. 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.

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.

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

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

A.1.8. 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.9. 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.10. 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.