This section documents Sourcery G++ Lite changes for each released revision.
C++ named operators bug fix.
A bug has been fixed that caused the compiler to crash in
some cases when the C++ operators and_eq
,
bitand
, bitor
, compl
,
not_eq
, or_eq
and
xor_eq
were used in contexts where the
preprocessor converts their names to strings.
GDB target extended-remote error.
A bug in GDB has been fixed that caused target
extended-remote to report Remote failure
reply: E01
if no remote program was running.
GDB segment warning.
Some compilers produce binaries including uninitialized data
regions, such as the stack and heap. GDB incorrectly
displayed the warning Loadable segment
"
for such binaries; the warning has now
been fixed.
name
" outside of ELF
segments
Setting breakpoints on Windows.
A bug in GDB on Microsoft Windows hosts has been fixed. The bug
caused setting breakpoints on a source line by using the file's
full path to fail with No source file named
filename
.
Handling of out-of-range values by strtof
.
The strtof
function now sets
errno
to ERANGE
when
the input is not representable as a float, as
required by the ISO C standard.
Printing casted values in GDB.
A GDB bug that caused incorrect output for expressions
containing casts, such as in the
print *(Type *)ptr
command, has been fixed.
Bug fix for objcopy/strip. An objcopy bug that corrupted COMDAT groups when creating new binaries has been fixed. This bug also affected strip -g.
Bug fix for assembly listing.
A bug that caused the assembler to produce corrupted
listings (via the -a
option) on Windows
hosts has been fixed.
DSP support.
The compiler now automatically enables support for the DSP ASE when the
-march
option is used to specify a core in the 24KE, 34K,
or 74K families. It is no longer necessary to provide the
-mdsp
option explicitly.
GDB update.
The included version of GDB has been updated to
6.8.50.20080821. This update adds numerous bug fixes and
new features, including support for decimal floating point,
the new find command to
search memory, the new /m
(mixed
source and assembly) option to the
disassemble command, and the new
macro define command to define C
preprocessor macros interactively.
PIE linking fix.
A bug in the GCC -fpie
and -fPIE
options has been fixed. The bug caused linker errors referring
to R_MIPS_HI16
.
Binutils support for DWARF Version 3. The addr2line command now supports binaries containing DWARF 3 debugging information. The ld command can display error messages with source locations for input files containing DWARF 3 debugging information.
GDB support for YAMON. GDB now supports debugging via the YAMON boot loader GDB stub. Consult YAMON documentation for details on enabling the GDB stub.
GDB Support for MIPSsim on Windows.
A bug in the GDB support for MIPSsim on Microsoft Windows
hosts has been fixed. The bug caused the target
mdi
command to fail with the error Cannot
find MIPSsim config file template: mipssim.cfg
.
CodeSourcery Common Startup Code Sequence. Support for CS3, CodeSourcery's unified startup scheme, has been added to this release. CS3 replaces the MIPS-provided MDI startup code and linker scripts included in previous releases. Refer to Chapter 6, CS3™: The CodeSourcery Common Startup Code Sequence for more information about CS3, including details about the boards and linker scripts supported by this release. Note that the Malta board configuration is usable by MIPSsim and the included GDB simulator as well as actual Malta hardware targets.
GDB display of source. A bug has been fixed that prevented GDB from locating debug information in some cases. The debugger failed to display source code for or step into the affected functions.
FPU defaults.
The -ffast-math
option now causes subnormal
numbers to be immediately flushed to zero. It also sets the
rounding mode to round-to-nearest.
Connecting to the target using a pipe.
A bug in GDB's
target remote | program
command has been fixed. When launching the specified
program
failed, the bug caused
GDB to crash, hang, or give a message
Error: No Error
.
Output files removed on error. When GCC encounters an error, it now consistently removes any incomplete output files that it may have created.
Placing bss-like regions in load regions. The linker no longer issues an incorrect error message when a bss-like section is placed at specific load region. The linker formerly incorrectly considered the section as taking up space in the load region.
-mwarn-framesize=
option.
GCC has a new command-line option,
size
-mwarn-framesize=
,
which causes warnings if any function's stack frame exceeds
the given size
size
. This option is useful
when generating code for environments with limited or absent
stack, e.g., BIOS.
Newlib manuals. The documentation packaged with Sourcery G++ Lite now includes the Newlib C Library and Math Library manuals.
GCC version 4.3.2.
Sourcery G++ Lite for MIPS ELF is now based on GCC version 4.3.2.
For more information about changes from GCC version 4.2 that was
included in previous releases, see
http://gcc.gnu.org/gcc-4.3/changes.html
.
Spurious GDB error message fixed.
A spurious Current thread went away!?
message is no longer generated when using GDB to debug
programs running on cores that do not support hardware
multi-threading. This problem was specific to the MDI
target support in GDB.
Unnecessary section removed.
A linker bug that caused an unnecessary .rel.dyn
section to be placed in the executable has been fixed.
Linker bug fix for --gc-sections
.
A linker bug that caused certain linker-generated sections to be incorrectly
omitted from the executable when the --gc-sections
option is
used has been fixed.
Errors after loading the debugged program. An intermittent GDB bug has been fixed. The bug could cause a GDB internal error after the load command.
Bug fix for objdump on Windows.
An objdump bug that caused the -S
option
not to work on Windows in some cases has been fixed.
Persistent remote server connections. A GDB bug has been fixed that caused the target extended-remote command to fail to tell the remote server to make the connection persistent across program invocations.
No significant changes. There are no significant changes for MIPS ELF in this release.
No significant changes. There are no significant changes for MIPS ELF in this release.
MIPS SDE Kit.
The SDE kit directory now includes all subdirectories. The
SDE kit is in the mips-sde-elf/kit
subdirectory of your installation.
Architecture level inference fix.
The -march=4kp
and -march=4ksc
options now imply -mips32
and the
-march=4ksd
option implies
-mips32r2
. The erroneous option
-march=4kf
has been removed.
Flags fix.
The -mips3d
and -mpaired-single
options can now be used with -mips32r2
as well as
-mips64
.
Program exit cleanup actions. A bug causing programs to fail to flush their buffers on exit has been fixed.
"Can't find matching LO16" linker error fixed. An assembler bug that caused errors when linking files containing mixed MIPS16 and non-MIPS16 code has been fixed.
Multilib matching fix.
The -mips16e
option now causes the same multilibs
to be used as the -mips16
option.
Misaligned accesses to packed structures fix. A bug that caused GCC to generate misaligned accesses to packed structures has been fixed.
MIPS SDE Examples.
Sourcery G++ Lite now includes examples showing how to use the MIPS SDE Library.
You can find these examples in the mips-sde-elf/examples/
subdirectory of your installation.
jalx
instruction.
The assembler no longer reports an error if the jalx
instruction is used outside of MIPS16 mode.