This section documents Sourcery G++ Lite changes for each released revision.
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.
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.
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
constructs to emit symbol
expression
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.