Table of Contents
This section documents Sourcery G++ Lite changes for each released revision.
Alignment of malloc
return values.
A bug in uClibc has been fixed which caused
malloc
to return memory that was aligned
to four bytes only, rather than eight.
Compiler crash with -mlong-calls
.
A bug that could cause the compiler to crash in certain
situations with the -mlong-calls
option
has been fixed.
Incorrect code generation when scheduling. A compiler bug has been fixed which could cause incorrect code to be generated during scheduling.
Dynamic assignment of DSBT indices.
The uClibc dynamic linker can now dynamically assign an index
to a DSBT shared library that was compiled without a
--dsbt-index
option. This is not recommended
in general as it generates private mappings of library text
segments, requiring extra space and load time.
uClibc clock_nanosleep
added.
The function clock_nanosleep
has been
added to uClibc's librt. Due to lack of NPTL threading, it
may not fully work in threaded cases.
Linker bug fix. A bug in the linker that caused incorrect output for C++ exception tables emitted by the TI compiler has been fixed.
New version of uClibc. A new version of uClibc, based on upstream git mainline, has been imported. This results in an ABI change; all programs and libraries built with earlier releases must be rebuilt.
Inferior calling support. The included version of GDB has been updated to provide inferior call support. A bug causing GDB to obtain the return address incorrectly has also been fixed.
C++ exception handling. Sourcery G++ Lite for C6000 uClinux now includes support for C++, including exception handling using the unwinding tables defined by the C6000 EABI.
Position independent code generation.
The compiler no longer accepts the -fpic
option without -mdsbt
. Also, the code
generator has been fixed not to emit addkpc
instructions on C62X.
uClibc ffsl
and
ffsll
functions.
The uClibc library now includes implementations of the
functions ffsl
and
ffsll
.
Error reading FDPIC exec loadmap message. A bug has been fixed that caused gdb to fail with the error message "Error reading FDPIC exec loadmap" when the "set sysroot" command is used before connecting to the target.
Segmentation fault fixed. A bug causing gdb to segfault when the "set sysroot" command is used with no file to debug has been fixed.
No significant changes. There are no significant changes for C6000 uClinux in this release.
No significant changes. There are no significant changes for C6000 uClinux in this release.
No significant changes. There are no significant changes for C6000 uClinux in this release.
No significant changes. There are no significant changes for C6000 uClinux in this release.
No significant changes. There are no significant changes for C6000 uClinux in this release.
No significant changes. There are no significant changes for C6000 uClinux in this release.
GCC fix for reference to undefined label. A bug in the optimizer that caused GCC to emit references to undefined labels has been fixed.
Alignment attributes. A bug has been fixed that caused the compiler to ignore alignment attributes of C++ static member variables where the attribute was present on the definition, but not the declaration.
Compiler optimization improvements. The compiler has been enhanced with a number of optimization improvements, including:
New -fstrict-volatile-bitfields
option.
The compiler has a new
option, -fstrict-volatile-bitfields
, which
forces access to a volatile structure member using the width
that conforms to its type.
Refer to the GCC manual for details.
Compiler optimization improvements. The compiler has been enhanced with a number of optimization improvements, including:
GCC version 4.5.1.
Sourcery G++ Lite for C6000 uClinux is now based on GCC version 4.5.1.
For more information about changes from GCC version 4.4 that was
included in previous releases, see
http://gcc.gnu.org/gcc-4.5/changes.html
.
GDB finish
internal error.
A bug has been fixed that caused a GDB internal error when
using the finish
command. The bug occurred
when debugging optimized code.
GDB update. The included version of GDB has been updated to 7.0.50.20100218. This update adds numerous bug fixes and new features, including improved C++ language support, automatic caching of stack memory, and Position Independent Executable (PIE) support.
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.
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.
GDB update. The included version of GDB has been updated to 6.8.50.20090630. This update adds numerous bug fixes and new features, including support for multi-byte and wide character sets and improved C++ template support.
GDB update.
The included version of GDB has been updated to
7.2.50.20100908. This update adds numerous bug fixes and
new features, including improved C++ language support,
a new command to save breakpoints to a file,
a new
convenience variable $_thread
that holds
the number of the current thread, among many other
improvements.
GDB and third-party compilers. Some bugs that caused GDB to crash when debugging programs compiled with third-party tools have been fixed. These bugs did not affect programs built with Sourcery G++.
GDB asynchronous mode fix.
GDB can now be used from the command line in asynchronous mode
with remote targets. Previously, GDB did not accept user input
while asynchronous commands (such as
continue &
) were running.
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.
Remote debugging hardware watchpoint bug fix. A GDB bug has been fixed that caused hardware watchpoint hits to be incorrectly reported in some cases.
GDB qOffsets
crash fix.
GDB no longer crashes when a remote stub provides load
offsets for an unlinked object file.
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.
Improved breakpoints in constructors and template functions. GDB now supports breakpoints on source code locations that have several code addresses associated with them. Setting a breakpoint on a constructor automatically associates the breakpoint with all constructor bodies generated by GCC. If you set a breakpoint on a line of a templated function, GDB breaks at the indicated line in all instantiations of the templated function.
GDB printf
%p.
GDB's printf
command now supports the
"%p"
format specifier.
GDB internal warning fix.
A GDB bug has been fixed that caused warnings of the form
warning: (Internal error: pc
.
address
in read in psymtab, but not in symtab.)
GDB update. The included version of GDB has been updated to 6.6.20070821. This update includes numerous bug fixes.
GDB crash fix.
A bug has been fixed that caused GDB to crash on launch if
the environment variable CYGPATH
is set
to a program that does not exist or cannot be executed.
GDB interrupt handling bug fix. A bug in GDB has been fixed that caused it to sometimes fail to indicate that the target had stopped after being interrupted. The bug affected clients using GDB's MI front end.
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.
Printing global variables in GDB.
A GDB bug that caused errors in printing values of global
variables in the debugger has been fixed. GDB was formerly
computing addresses of such variables incorrectly; in some
cases, this resulted in incorrect values being printed,
while in others, it resulted in memory access errors in the
remote gdbserver
.
Improved debugging for optimized code. GDB's ability to print and change variables' values in optimized code is improved. GDB now tracks variable scopes more accurately, making better use of the detailed debugging information produced by Sourcery G++ compilers.
Improved handling of Windows paths in GDB. GDB now properly recognizes the names of source files that were passed to the compiler using an absolute path on Windows. You may refer to the file either by its base name (without any leading directory components), by the exact path passed to the compiler, or by its absolute path.
Connecting to the target using a pipe.
A bug in GDB's
target remote |
command has been fixed. When launching the specified
program
program
failed, the bug caused
GDB to crash, hang, or give a message
Error: No Error
.
Remote debugging improvements.
The gdbserver
utility now supports a more
efficient communications protocol that can reduce latency during
remote debugging. The protocol optimizations are enabled
automatically when gdbserver
operates over
a TCP connection. Refer to the GDB manual for more information.
Robustness on Microsoft Windows. Defects that sometimes caused GDB to become non-responsive on Microsoft Windows have been eliminated.
Memory access errors when setting breakpoints. A GDB bug that caused spurious "Cannot access memory" errors has been fixed. The errors occurred when setting breakpoints after the program being debugged exited or was killed.
GDB support for Cygwin pathnames. A bug in GDB's translation of Cygwin pathnames has been fixed.
GDB update. The included version of GDB has been updated to 6.6.50.20070228. This update includes numerous bug fixes and improved support for C++ pointers to members.
GDB and programs linked with
the --gc-sections
linker option.
GDB has been improved to better handle debug information
found in programs and libraries linked with
the --gc-sections
option. GDB formerly
selected the wrong debug information in some cases,
resulting in incorrect behavior when stepping over a
function or displaying local variables, for example.
Remote debugging connection auto-retry.
The target remote
command within GDB now uses
a configurable auto-retry timeout when establishing TCP connections.
This is useful in avoiding race conditions when the remote
GDB stub or GDB server is launched simultaneously with GDB.
The auto-retry behavior is enabled by default; refer to the
GDB manual for details.
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
GDB memory find bug fix.
A bug in GDB's find
command has been fixed.
The bug caused searches on large memory areas to fail or
report matches at incorrect addresses.
Inlined function debugging fix. GDB now backtraces correctly when stopped at the first instruction of an inlined function. Earlier versions would sometimes encounter internal errors in this situation.
Startup code debugging fixes.
Two GDB bugs have been fixed that caused errors when
debugging startup code. One bug caused an internal error
message; the other caused the error Cannot find
bounds of current function
.
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.
GDB update. The included version of GDB has been updated to 6.7.20080107. This update includes numerous bug fixes.
Frame manipulation bug fix. A bug in GDB has been fixed that caused frame manipulation commands to report an internal error in some cases when used on arbitrary stack frames specified by an address.
GDB info registers
crash fix.
Executing info registers
after
executing flushregs
no longer crashes GDB.
Read watchpoints bug fix. A GDB bug has been fixed that caused watchpoints set to trigger on memory reads to be silently ignored in some cases.
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.
Debugging of inlined functions. GDB now supports inlined functions. GDB can include inlined functions in the stack trace; display inlined functions' arguments and local variables; and step into, over, and out of inlined functions.
GDB quit
error.
A bug in GDB has been fixed that
caused quit
to report Quitting:
You can't do that without a process to debug.
when
debugging a core dump file.
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.
Debugger access to out-of-bounds memory.
GDB turns on inaccessible-by-default
by
default, disallowing access to memory outside the regions
specified in a board configuration.
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.
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.
GDB update. The included version of GDB has been updated to 6.8.50.20081022. This update includes numerous bug fixes.
GDB update. The included version of GDB has been updated to 6.6.50.20070620. This update includes numerous bug fixes.
Setting thread-specific breakpoints in GDB.
A bug in GDB has been fixed that caused a syntax error for
the break
*
command.
expression
thread
threadnum
No significant changes. There are no significant changes for C6000 uClinux in this release.
No significant changes. There are no significant changes for C6000 uClinux in this release.
Linker debug information fix.
A bug in linker processing of debug information has been
fixed. The bug sometimes prevented the Sourcery G++ debugger from
displaying source code if the executable was linked
with the --gc-sections
option.