Sourcery G++ Lite Release Notes

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

Changes in Sourcery G++ Lite 4.3-81

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 "name" outside of ELF segments for such binaries; the warning has now been fixed.

Changes in Sourcery G++ Lite 4.3-59

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=size option.  GCC has a new command-line option, -mwarn-framesize=size, which causes warnings if any function's stack frame exceeds the given 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.

Changes in Sourcery G++ Lite 4.2-166

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

Changes in Sourcery G++ Lite 4.2-162

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

Changes in Sourcery G++ Lite 4.2-160

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.

Changes in Sourcery G++ Lite 4.2-157

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.

Changes in Sourcery G++ Lite 4.2-127

Initial release.  This is the initial release for MIPS ELF.