Sourcery G++ Lite Release Notes

This section documents Sourcery G++ Lite changes for each released revision.

Changes in Sourcery G++ Lite 4.2-129

Bug fix in fesetround A bug in fesetround has been fixed. Earlier versions of fesetround incorrectly cleared the upper half of the FCSR (floating-point control and status register).

MIPS local GOT space.  A linker bug that caused the error "not enough GOT space for local GOT entries" has been fixed.

Change to default target architecture.  The compiler now generates code for MIPS32r2 processors by default, rather than the original MIPS32 ISA. This is an incompatible change from previous releases of Sourcery G++ Lite. To build applications for MIPS32 processors, add an explicit -march=mips32 option to your compile and link commands. Refer to the GCC manual for additional information about supported targets and -march options.

Changes in Sourcery G++ Lite 4.2-116

GDB and Ctrl-C on Windows .  GDB no longer crashes when you press Ctrl-C twice during remote debugging to give up waiting for the target.

MDI support in GDB.  GDB now supports MDI, the MIPS Debug Interface protocol.

GCC update.  The GCC package has been updated to version 4.2.3. This version includes numerous bug fixes since GCC 4.2.

GDB support for user-defined prefixed commands.  The GDB define and document commands, which allow you to add new commands to the GDB command-line interface, now support creating commands within an existing prefix such as target. Hooks for prefixed commands are also supported. Refer to the Debugger manual for more information.

UNC pathname bug fix.  A bug has been fixed that caused linker errors on Windows hosts when running a Sourcery G++ toolchain installed in a UNC path (\\host\directory).

GDB info registers crash fix.  Executing info registers after executing flushregs no longer crashes GDB.

GDB search path bug fix.  A bug in GDB has been fixed that formerly resulted in an internal error when setting solib-search-path or solib-absolute-prefix after establishing a connection to a remote target.

Binutils update.  The binutils package has been updated to version 2.18.50.20080215 from the FSF trunk. This update includes numerous bug fixes.

Race fixes in setuid Several bugs in multi-threaded setuid have been fixed. The bugs led to threads with incorrect privileges and hangs at thread exit. The setgid, seteuid, setegid, setreuid, setregid, setresuid, and setresgid functions were also affected.

Changes in Sourcery G++ Lite 4.2-87

Improved argument-passing code.  The compiler can now generate more efficient code for certain functions whose arguments must be sign-extended to conform with language or ABI conventions. The required conversion was formerly being performed both in the called function and at all call sites; now the redundant conversion has been eliminated for functions that can only be called within the compilation unit where they are defined.

Multi-process mode for gdbserver The gdbserver utility has a new command-line option, --multi, that allows you to use it to debug multiple program instances. Refer to the Debugger manual for more information.

Raza XLR processor support.  Sourcery G++ now supports the Raza XLR processor. To generate code for this processor, use the option -march=xlr.

MIPS16 debugging information.  GCC now produces more accurate line number information for the debugger when -mips16 is specified.

GCC stack size limit increased.  On Windows hosts, the maximum stack size for the GCC executable has been increased. This means that more complex programs can be compiled.

Invalid object file after strip.  A bug in the assembler has been fixed that formerly caused .set symbol expression constructs to emit symbol in the wrong section. This in turn caused inconsistent behavior after stripping the symbol table.

Code generation improvements.  The compiler's code size and instruction selection heuristics have been further tuned to produce better code for MIPS processors.

License checking on Linux.  Sourcery G++'s license-checking logic now includes a workaround for a kernel bug present in some versions of Linux. This bug formerly caused failures with an error message from the cs-license component.

New Octeon instructions.  The assembler now supports the Cavium Octeon instructions saa and saad.

-mcode-readable option.  GCC has a new command-line option, -mcode-readable, that can be used to control placement of constant data in executable code sections. This option is useful when generating MIPS16 code for processors that restrict instruction access to executable sections, such as 4KSc and 4KSd processors when the code TLBs have the Read Inhibit bit set, or processors that have a dual instruction/data SRAM interface. Consult the GCC documentation for more information about this option.

GDB update.  The included version of GDB has been updated to 6.7.20080107. This update includes numerous bug fixes.

gdbserver support for execution wrappers.  gdbserver has a new command-line option, --wrapper, which specifies a wrapper for any programs run by gdbserver. The specified wrapper can prepare the system and environment for the new program.

Changes in Sourcery G++ Lite 4.2-85

Initial release.  This is the initial release for MIPS GNU/Linux.