--------------------- Release notes for GDB --------------------- - Support for signal frames has been added to GDB. This means that it is now possible to view meaningful backtraces through signal handlers. - Support for fetching addresses of thread local storage has been added to GDB. am33 specific support has been added as well. --------------------- Release notes for RDA --------------------- - am33 specific support for thread local storage has been added to RDA. RDA's behavior with respect to interrupt requests from GDB has changed. In the past, RDA would send SIGINT to the inferior process when an interrupt request from GDB was received. However, SIGINT will not necessarily interrupt the process since the SIGINT signal can be blocked. Due to this limitation, RDA has been changed to instead send the SIGSTOP signal upon receipt of an interrupt request from GDB. Since SIGSTOP cannot be blocked or ignored, there is much greater certainty that the debugged process will actually be interrupted. The drawback to this change is that the GDB "continue" command behaves differently for these two signals. By default, when continuing a program after receiving a SIGINT signal, the SIGINT signal is NOT passed back to the debugged program. On the other hand, for the SIGSTOP signal, the default behavior of "continue" (and many other commands which resume GDB execution) is to pass the signal on to the debugged program. This often causes the program to stop again after a short period of time due to SIGSTOP. GDB can be told to treat SIGSTOP in the same manner as SIGINT. The following command causes SIGSTOP to NOT be passed back to the debugged program when continuing: handle SIGSTOP nopass This command is a good candidate for inclusion in a suitable .gdbinit file. If changing GDB's default signal settings is undesirable for some reason, the following command may be used to cause execution to continue with no delivered signal: signal 0 This command would be used in place of the "continue" command immediately after receiving SIGSTOP due to the receipt of an interrupt. The effect is to continue the program with no signal. Since these commands are unfamiliar to many GDB users, RDA has been modified to print a helpful message to the GDB console. RDA has sent SIGSTOP to the inferior process. If you wish to continue without sending this signal, make sure that "handle SIGSTOP nopass" has been set or use "signal 0" to continue. This message will only be output upon the receipt of the first interrupt request from GDB. --------------------------------------------------- Release notes for glibc 2.3.4 on AM33_2.0 platform. --------------------------------------------------- Glibc has been updated to support nptl and tls. NPTL/TLS system libraries are installed in /lib/tls and linuxthreads/non-TLS versions of those libraries are installed in /lib. By default, the NPTL/TLS versions are used. Existing linuxthread programs are forward compatible with the NPTL libraries. Those programs may also be run using the linuxthreads libraries by setting an environment variable: # LD_ASSUME_KERNEL=2.4.19 General testing notes: The am33_2.0-linux-gnu toolchain uses setjmp/longjmp based frame unwinding to support exception handling. NPTL based glibc accesses the sjlj unwinding interfaces via a gcc provided library (libgcc_s.so). Glibc will dlopen this library, the first time a process needs to use the unwinding interface. This means that a free fd is required when the unwinding interface in first used by a program. This leads to some spurious results for several LTP tests which intentionally use up all available fds, then call a libc function that uses the libgcc_s.so interfaces. In addition, libgcc_s.so uses up a pthread TSD key to create a thread-specific list of frame contexts. This causes failure of several nptl tests which try to create PTHREAD_KEYS_MAX keys, but fail because libgcc_s.so uses one key. Notes on specific NPTL tests: tst-cancel16 - This test cancels a thread which is blocked in a lockf(2) syscall. It fails if the file being locked is on an NFS mounted fs, but passes on other filesystems. This is the same behavior observed on an x86 FC4 system. This appears to be due to signal blocking in the kernel rpc layer. tst-cancel17 - This test has a partial failure. It fails in the same way on an x86 FC4 system. tst-exec4 - This test fails because it is unable to ignore SIGUSR1. This test fails with the same behavior on an x86 FC4 system. tst-key1, tst-key4 - These fail due to the TSD key used by the sjlj unwind library.