From bad2dc1e794d6c9099b461d329485ebfcc2d8471 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 19 Dec 2013 14:46:18 +0100 Subject: open_issues/glibc: Re-run after system update. --- toolchain/logs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'toolchain') diff --git a/toolchain/logs b/toolchain/logs index c0775a78..96002a5d 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit c0775a78c9a55fd63c4d92e2baca1f4de6cbb5d5 +Subproject commit 96002a5db1244cbc98d7b6a3b4528e6a50fb305b -- cgit v1.2.3 From f51f65f9ac1edcc9d5e9950fa535911194906c5e Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 20 Dec 2013 07:55:48 +0100 Subject: open_issues/glibc: 28777376b7b716631c5175991b5d8bb01fda35ce (2013-09-01; b0350db9747d602158377af3cf8ceb70764ea840 (2013-08-30)) plus 6a97b62a5b4f18aea849d6f4d8de58d1469d2521 reverted --- open_issues/glibc.mdwn | 133 +++++++++++++++++++++++--------------------- open_issues/systemd.mdwn | 2 +- toolchain/elfosabi_gnu.mdwn | 7 --- toolchain/logs | 2 +- 4 files changed, 71 insertions(+), 73 deletions(-) (limited to 'toolchain') diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn index 807a3c26..dd07344c 100644 --- a/open_issues/glibc.mdwn +++ b/open_issues/glibc.mdwn @@ -30,14 +30,14 @@ Here's what's to be done for maintaining glibc. -Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8 -(2013-05-24) sources|source_repositories/glibc]]. +Last reviewed up to the [[Git mirror's b0350db9747d602158377af3cf8ceb70764ea840 +(2013-08-30) sources|source_repositories/glibc]]. * `t/hurdsig-fixes` @@ -213,17 +213,20 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8 Many more are missing, some of which have been announced in `NEWS`, others typically haven't (like new flags to existing functions). Typically, porters will notice missing functionaly. But in case you're looking for - something to work on, here's a list. + something to work on, here's a bit of a commented list, otherwise go + looking in `/usr/include/i386-gnu/gnu/stubs.h` on a Debian GNU/Hurd system, + or the respective file from a fresh glibc build. `AT_EMPTY_PATH`, `CLOCK_BOOTTIME`, `CLOCK_BOOTTIME_ALARM`, `CLOCK_REALTIME_ALARM`, `O_PATH`, `PTRACE_*` (for example, cbff0d9689c4d68578b6a4f0a17807232506ea27, - b1b2aaf8eb9eed301ea8f65b96844568ca017f8b), + b1b2aaf8eb9eed301ea8f65b96844568ca017f8b, + 521c6785e1fc94d1f501743e9a40af9e02797df3), `RLIMIT_RTTIME`, `SEEK_DATA` (`unistd.h`), `SEEK_HOLE` (`unistd.h`) `clock_adjtime`, `fallocate`, `fallocate64`, `name_to_handle_at`, `open_by_handle_at`, `process_vm_readv`, `process_vm_writev`, `setns`, `sync_file_range`, [[`mremap`|mremap]] and [[several - `MAP_*`|glibc/mmap]], `PTR_MANGLE`/`PTR_DEMANGLE` (`t/ptrmangle`) + `MAP_*`|glibc/mmap]] Check also the content of `gnu/stubs.h`, which lists all the functions marked as stub which only return `ENOSYS`. @@ -1862,6 +1865,16 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8 type for some flock structure field) s/by/be/ + * `t/ptrmangle`: `PTR_MANGLE`/`PTR_DEMANGLE` + + * + + * See also [[t/tls|t/tls]]. + + * b7f2d27dbd85f6a0966dc389ad4f8205085b7ae8 `ARM: Add pointer encryption + support.` may help to find all the places that need to be touched when + adding support. + * Verify baseline changes, if we need any follow-up changes: * a11ec63713ea3903c482dc907a108be404191a02 @@ -2047,7 +2060,6 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8 POSIX-generic sleep via nanosleep rather than SIGARLM.`: any benefit using that one (with `sysdeps/mach/nanosleep.c`) instead of `sysdeps/mach/sleep.c`? - * *baseline* * ea4d37b3169908615b7c17c9c506c6a6c16b3a26 -- IRC, freenode, #hurd, 2012-11-20, pinotree: »tschwinge: i agree on your comments on ea4d37b3169908615b7c17c9c506c6a6c16b3a26, especially since mach's @@ -2059,7 +2071,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8 destructors support`. Anything needed to be done in our [[libpthread]] and configured for us in [[GCC]]? Probably need to replicate the `nptl/pthread_create.c` change, and fix - `stdlib/Makefile`:`LDFLAGS-tst-tls-atexit`. + `stdlib/Makefile`:`$(objpfx)tst-tls-atexit`. +++ include/link.h @@ -302,6 +302,9 @@ struct link_map @@ -2080,7 +2092,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8 + __call_tls_dtors (); +++ stdlib/Makefile - +LDFLAGS-tst-tls-atexit = $(common-objpfx)nptl/libpthread.so \ + +$(objpfx)tst-tls-atexit = $(common-objpfx)nptl/libpthread.so \ + $(common-objpfx)dlfcn/libdl.so +++ stdlib/cxa_thread_atexit_impl.c @@ -2099,7 +2111,6 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8 +gcc-4.7 tst-tls-atexit-lib.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wno-par +tst-tls-atexit-lib.c: In function 'do_foo': +tst-tls-atexit-lib.c:35:3: warning: implicit declaration of function '__cxa_thread_atexit_impl' [-Wimplicit-function-declaration] - * a600e5cef53e10147932d910cdb2fdfc62afae4e `Consolidate Linux and POSIX libc_fatal code.` -- is `backtrace_and_maps` specific to Linux? * 288f7d79fe2dcc8e62c539f57b25d7662a2cd5ff `Use __ehdr_start, if @@ -2110,6 +2121,38 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8 `phdrsz` members) from `hurd_startup_data`, and simplify [[hurd/interface/exec_startup_get_info]], or do we still require these for the `[SHARED]` case? + * fab7ce3f5b4060bf62659e8b58529de4156b5a2f `Link extra-libs consistently + with libc and ld.so.` Alright for us? Probably have to adjust + [libpthread]/Makefile. + * b8c61b4b1d6afb69190169764c1b141f4659e48b `Remove trailing whitespace + from mach/*.sub.` Update `mach/Makefile`: generated + `mach/errsystems.c` is no longer checked in as of + 66e3dda448406399136e6f144a1b46679d5b2613. Rule had been disabled in + 421f82e5cc8f81ab003247d771bcecbad799be85, then re-enabled in + 8e3cc80f6d4f69ce003c82d3561ac324692792ad, but comment not removed. + * [low] 61dd6208fb1e59a423b6dfa712a3c896c34b2590 `New API to set default + thread attributes`. Implement in libpthread ([[!taglink + open_issue_libpthread]])? + * [high] e4608715e6e1dd2adc91982fd151d5ba4f761d69 `CVE-2013-2207, BZ + #15755: Disable pt_chown. -- [[!message-id + "51E8D4C1.9000705@redhat.com"]]; do we need it (`--enable-pt_chown`)? + * 91ce40854d0b7f865cf5024ef95a8026b76096f3 `CVE-2013-4237, BZ #14699: + Buffer overflow in readdir_r` -- [[!message-id + "519220C7.6050705@redhat.com"]]; do we need corresponding changes to + Hurd sysdep files? + * 8cc3269f95fa7faa8f448d741f68cbc40efbf4ee `Flesh out 4.4 bits/socket.h + with SOCK_CLOEXEC, SOCK_NONBLOCK.`, + e041fb8b6557882b6710a655a97bbf3541b56b54 `Replace generic bits/socket.h + with 4.4 file.` -- `sysdeps/mach/hurd/bits/socket.h` differs from the + generic `bits/socket.h` now only in the values of + [[`SOCK_CLOEXEC`|secure_file_descriptor_handling]] and + `SOCK_NONBLOCK`. If possible (no conflicts), would it make sense to + transition to the latter file, continuing to accept the former values + as deprecated for some time? + * [high] 6a97b62a5b4f18aea849d6f4d8de58d1469d2521 `Fix unsafe compiler + optimization` -- have to revert, see [[sourceware_PR 15605]]. For + analysis/fix also look at 384ca551743318bd9c9e24a496d6397f2e3f2a49. + * *baseline* ## Update @@ -2122,14 +2165,9 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8 # Build Here's a log of a glibc build run; this is from our [[Git repository's -83fed41a9ed81db6ca517185aefb296f74868c2f (2013-05-26; -0323d08657f111267efa47bd448fbf6cd76befe8 (2013-05-24)) -plus 2b66ef5d55325b2957d6c62908ca065228e56814, -ec9dd97cecafba5ddf5c3ec683db7ad5b4421923, -07b4c13d0be4814ef10bbfbfd68db604978aa0e5, -528c24058fb100fb27fe5c211b92be84c67a6659, `t/elfosabi_gnu` reverted, -ec9dd97cecafba5ddf5c3ec683db7ad5b4421923 (again...), -`id:"87bo7xo1ay.fsf@kepler.schwinge.homeip.net"` +28777376b7b716631c5175991b5d8bb01fda35ce (2013-09-01; +b0350db9747d602158377af3cf8ceb70764ea840 (2013-08-30)) +plus 6a97b62a5b4f18aea849d6f4d8de58d1469d2521 reverted sources|source_repositories/glibc]], run on coulomb.SCHWINGE. $ export LC_ALL=C @@ -2138,8 +2176,8 @@ sources|source_repositories/glibc]], run on coulomb.SCHWINGE. $ make install_root=/INVALID 2>&1 | tee log_build_ [...] -This takes up around 550 MiB, and needs roughly X min on kepler.SCHWINGE and -100 min on coulomb.SCHWINGE. +This takes up around 600 MiB, and needs roughly X min on kepler.SCHWINGE and +105 min on coulomb.SCHWINGE. -Last reviewed up to the [[Git mirror's b0350db9747d602158377af3cf8ceb70764ea840 -(2013-08-30) sources|source_repositories/glibc]]. +Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852 +(2013-12-19) sources|source_repositories/glibc]]. * `t/hurdsig-fixes` @@ -218,13 +218,15 @@ Last reviewed up to the [[Git mirror's b0350db9747d602158377af3cf8ceb70764ea840 or the respective file from a fresh glibc build. `AT_EMPTY_PATH`, `CLOCK_BOOTTIME`, `CLOCK_BOOTTIME_ALARM`, - `CLOCK_REALTIME_ALARM`, `O_PATH`, + `CLOCK_REALTIME_ALARM`, `O_PATH`, `O_TMPFILE` + (ffdd31816a67f48697ea4d6b852e58d2886d42ca), `PTRACE_*` (for example, cbff0d9689c4d68578b6a4f0a17807232506ea27, b1b2aaf8eb9eed301ea8f65b96844568ca017f8b, 521c6785e1fc94d1f501743e9a40af9e02797df3), `RLIMIT_RTTIME`, `SEEK_DATA` (`unistd.h`), `SEEK_HOLE` (`unistd.h`) `clock_adjtime`, `fallocate`, `fallocate64`, `name_to_handle_at`, - `open_by_handle_at`, `process_vm_readv`, `process_vm_writev`, + `open_by_handle_at`, + `posix_openpt`, `process_vm_readv`, `process_vm_writev`, `setns`, `sync_file_range`, [[`mremap`|mremap]] and [[several `MAP_*`|glibc/mmap]] @@ -2136,6 +2138,7 @@ Last reviewed up to the [[Git mirror's b0350db9747d602158377af3cf8ceb70764ea840 * [high] e4608715e6e1dd2adc91982fd151d5ba4f761d69 `CVE-2013-2207, BZ #15755: Disable pt_chown. -- [[!message-id "51E8D4C1.9000705@redhat.com"]]; do we need it (`--enable-pt_chown`)? + cdfc721b8d2d5079325ea9f0beb5673d72b4cdd0. * 91ce40854d0b7f865cf5024ef95a8026b76096f3 `CVE-2013-4237, BZ #14699: Buffer overflow in readdir_r` -- [[!message-id "519220C7.6050705@redhat.com"]]; do we need corresponding changes to @@ -2152,6 +2155,22 @@ Last reviewed up to the [[Git mirror's b0350db9747d602158377af3cf8ceb70764ea840 * [high] 6a97b62a5b4f18aea849d6f4d8de58d1469d2521 `Fix unsafe compiler optimization` -- have to revert, see [[sourceware_PR 15605]]. For analysis/fix also look at 384ca551743318bd9c9e24a496d6397f2e3f2a49. + * 6c82a2f8d7c8e21e39237225c819f182ae438db3 `Coordinate IPv6 definitions + for Linux and glibc` -- alright for us? + * c61b4d41c9647a54a329aa021341c0eb032b793e `POINTER_CHK_GUARD` -- see + [[t/tls|t/tls]]. + * 5f855e3598a576c35e54623a13b256f3e87fcd4d `Fix erroneous (and circular) + implied pattern rule for linkobj/libc.so.` -- alright for us? + * [high] 7b7bab1391a3b16fff7e325e2c8a36b68eacba90 [Hurd] `Add fork hooks + for pthread_atfork` -- is that from a topic branch that can then be + annihilated? Verify emails. Verify no further changes in topic + branch. + * [high] 43d5c02c72bdaf59a8e0d4b06f2ae87e42269cbd `Fix build on hurd` -- + is that from a topic branch that can then be annihilated? Verify + emails. Verify no further changes in topic branch. + * 69a17d9d245dc3551792e95e1823cc2d877592f3 `Patch [1/4] async-signal safe + TLS.` -- do we also need an implementation of this? (Not yet called + from anywhere?) * *baseline* @@ -2165,13 +2184,18 @@ Last reviewed up to the [[Git mirror's b0350db9747d602158377af3cf8ceb70764ea840 # Build Here's a log of a glibc build run; this is from our [[Git repository's -28777376b7b716631c5175991b5d8bb01fda35ce (2013-09-01; -b0350db9747d602158377af3cf8ceb70764ea840 (2013-08-30)) -plus 6a97b62a5b4f18aea849d6f4d8de58d1469d2521 reverted +f57644d0bdfc1ebe2201a677a33af27e09a5bab6 (2013-12-20; +64a17f1adde4715bb6607f64decd73b2df9e6852 (2013-12-19)) +plus 6a97b62a5b4f18aea849d6f4d8de58d1469d2521 reverted, +`id:"87zjnvn688.fsf@kepler.schwinge.homeip.net"`, +`id:"87ioujn0eq.fsf@kepler.schwinge.homeip.net"`, +1226676cd6f6f4451e6e6b75b8fbd9a35c949e8e reverted, +56798c444bc584c118b69a3506c4050b34edc35f reverted, +`id:"878uvfmwvs.fsf@kepler.schwinge.homeip.net"` sources|source_repositories/glibc]], run on coulomb.SCHWINGE. $ export LC_ALL=C - $ ../Roger_Whittaker/configure AUTOCONF=: --prefix=/usr --disable-profile --disable-multi-arch --build=i486-gnu --host=i486-gnu CC=gcc-4.7 CXX=g++-4.7 2>&1 | tee log_build + $ ../Roger_Whittaker/configure --prefix=/usr --disable-profile --disable-multi-arch --build=i486-gnu --host=i486-gnu CC=gcc-4.7 CXX=g++-4.7 2>&1 | tee log_build [...] $ make install_root=/INVALID 2>&1 | tee log_build_ [...] @@ -2516,6 +2540,10 @@ Failures, mostly in order of appearance: [...]/nss/nss_test1.c:60: undefined reference to `pthread_mutex_lock' [...]/nss/nss_test1.c:85: undefined reference to `pthread_mutex_unlock' + * `rt/tst-shm.out` + + read file outside of SHMDIR directory: (os/kern) successful + * `rt/tst-timer.out` No message. @@ -2613,6 +2641,10 @@ Failures, mostly in order of appearance: `grantpt` (actually `ptsname_r`), does not fail with `ENOTTY` when the `fd` does not refer to a PTY master. + * `elf/tst-auxv.out` + + SIGSEGV. + * `elf/tst-stackguard1-static.out`, `elf/tst-stackguard1.out` differences 0 defaults 0 @@ -2621,6 +2653,17 @@ Failures, mostly in order of appearance: Sometimes times out. + * `elf/tst-ptrguard1-static.o`, `elf/tst-ptrguard1.o` + + In file included from tst-ptrguard1-static.c:1:0: + tst-ptrguard1.c: In function 'con': + tst-ptrguard1.c:42:24: error: 'tcbhead_t' has no member named 'pointer_guard' + tst-ptrguard1.c: In function 'do_test': + tst-ptrguard1.c:65:29: error: 'tcbhead_t' has no member named 'pointer_guard' + tst-ptrguard1.c:104:30: error: 'tcbhead_t' has no member named 'pointer_guard' + + See [[t/tls|t/tls]]. + * `elf/tst-tls9-static.out` SIGSEGV. diff --git a/open_issues/glibc/0.4.mdwn b/open_issues/glibc/0.4.mdwn index f864469d..8991d4c0 100644 --- a/open_issues/glibc/0.4.mdwn +++ b/open_issues/glibc/0.4.mdwn @@ -12,6 +12,9 @@ License|/fdl]]."]]"""]] Things to consider doing when bumping the glibc SONAME. +There are some comments in the sources, for example `hurd/geteuids.c`: `XXX +Remove this alias when we bump the libc soname.` + # IRC, freenode, #hurd, 2012-12-14 diff --git a/open_issues/glibc/t/tls.mdwn b/open_issues/glibc/t/tls.mdwn index a92a21fb..eba2b88b 100644 --- a/open_issues/glibc/t/tls.mdwn +++ b/open_issues/glibc/t/tls.mdwn @@ -70,3 +70,12 @@ After commit a9538892adfbb9f092e0bb14ff3a1703973968af, it's much better. have you had a look at the tls.pdf from Uli ? all the gory details are there :) + +Commit c61b4d41c9647a54a329aa021341c0eb032b793e, [[sourceware_PR 15754]], adds +`sysdeps/i386/stackguard-macros.h:POINTER_CHK_GUARD`, which is not correct for +us (at the moment), but it also shouldn't cause any harm, as this file is only +used in `elf/tst-ptrguard1.c` and `elf/tst-stackguard1.c`, which now will fail +to build for us, as we don't have a `pointer_guard` member in +`sysdeps/mach/hurd/tls.h:tcbhead_t`. + +We don't define `THREAD_SET_POINTER_GUARD`. diff --git a/open_issues/pthread_atfork.mdwn b/open_issues/pthread_atfork.mdwn index 06b9d6c6..d386e5c0 100644 --- a/open_issues/pthread_atfork.mdwn +++ b/open_issues/pthread_atfork.mdwn @@ -35,7 +35,9 @@ TODO. (I see ifdef pthread_atfork in perl) -## IRC, freenode, #hurd, 2013-10-16 +## undefined reference to `__start__hurd_atfork_prepare_hook' + +### IRC, freenode, #hurd, 2013-10-16 tschwinge: I'd love to try your cross-gnu tool, the wiki page suggests that the list of required source packages is outdated. can you @@ -69,7 +71,7 @@ TODO. everything else is from git as specified in the wiki. -## IRC, freenode, #hurd, 2013-10-24 +### IRC, freenode, #hurd, 2013-10-24 in recent glibc commits (tschwinge/Roger_Whittaker branch) there are references to _hurd_atfork_* symbols in sysdeps/mach/hurd/fork.c, and @@ -104,3 +106,6 @@ TODO. R_386_GOTOFF against undefined hidden symbol `__start__hurd_atfork_prepare_hook' can not be used when making a shared object + + +### [[!message-id "878uvfmwvs.fsf@kepler.schwinge.homeip.net"]] diff --git a/toolchain/logs b/toolchain/logs index f9050caf..48610969 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit f9050caf8c70c70e732897caebb8c5358480e05e +Subproject commit 48610969c545e5c8df18cce965440e9fb2c607b4 -- cgit v1.2.3 From 74c9feb88e4c9c6009db06d7fc7cb1249e7b13a0 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 7 Jan 2014 10:02:25 +0100 Subject: open_issues/gdb: Re-run after system update. --- open_issues/gdb.mdwn | 144 ++++++++++++++++++++++++++++++++++++++++++++------- toolchain/logs | 2 +- 2 files changed, 125 insertions(+), 21 deletions(-) (limited to 'toolchain') diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn index 07b3da45..db50b876 100644 --- a/open_issues/gdb.mdwn +++ b/open_issues/gdb.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012, 2013 Free Software -Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012, 2013, 2014 Free +Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -78,8 +78,9 @@ Last reviewed up to the [[Git mirror's d19fd090b7ec0a60846c52cad9fc0c24c3729565 Here's a log of a GDB build run; this is from our [[Git repository|source_repositories/gdb]]'s `tschwinge/Ferry_Tagscherer` branch, -commit d19fd090b7ec0a60846c52cad9fc0c24c3729565 (2013-09-18), run on -kepler.SCHWINGE and coulomb.SCHWINGE. +commit d19fd090b7ec0a60846c52cad9fc0c24c3729565 (2013-09-18) plus +`id:"87vbxxhww4.fsf@kepler.schwinge.homeip.net"`, run on kepler.SCHWINGE and +coulomb.SCHWINGE. $ export LC_ALL=C $ ../Ferry_Tagscherer/configure --prefix="$PWD".install SHELL=/bin/dash CC=gcc-4.8 CXX=g++-4.8 --disable-werror 2>&1 | tee log_build @@ -243,6 +244,117 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting * Disabled + * `gdb.base/interrupt.exp` + + PASS: gdb.base/interrupt.exp: child process is alive + a + a + PASS: gdb.base/interrupt.exp: child process ate our char + ^C + Program received signal SIGINT, Interrupt. + -0x010bf5a2 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + +0x010bdb09 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + (gdb) PASS: gdb.base/interrupt.exp: send_gdb control C + p func1 () + + Program received signal SIGTRAP, Trace/breakpoint trap. + -0x010bf5a2 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + +0x010bdb09 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + The program being debugged was signaled while in a function called from GDB. + GDB remains in the frame where the signal was received. + To change this behavior use "set unwindonsignal on". + Evaluation of the expression containing the function + (func1) will be abandoned. + When the function is done executing, GDB will silently stop. + (gdb) FAIL: gdb.base/interrupt.exp: call function when asleep (wrong output) + p func1 () + + Program received signal SIGTRAP, Trace/breakpoint trap. + -0x010bf5a2 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + +0x010bdb09 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + The program being debugged was signaled while in a function called from GDB. + GDB remains in the frame where the signal was received. + To change this behavior use "set unwindonsignal on". + Evaluation of the expression containing the function + (func1) will be abandoned. + When the function is done executing, GDB will silently stop. + (gdb) FAIL: gdb.base/interrupt.exp: call function a second time + continue + Continuing. + -PASS: gdb.base/interrupt.exp: continue + + + +Program received signal SIGSEGV, Segmentation fault. + +0x010bdb09 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + +(gdb) FAIL: gdb.base/interrupt.exp: continue + data + PASS: gdb.base/interrupt.exp: echo data + ^C(gdb) Quit + (gdb) FAIL: gdb.base/interrupt.exp: Send Control-C, second time + signal SIGINT + Continuing with signal SIGINT. + PASS: gdb.base/interrupt.exp: signal SIGINT + more data + PASS: gdb.base/interrupt.exp: echo more data + + Program received signal SIGSEGV, Segmentation fault. + -0x010bf6c8 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + +0x010bdc9d in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + (gdb) more data + Undefined command: "more". Try "help". + (gdb) FAIL: gdb.base/interrupt.exp: send end of file + -testcase ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/interrupt.exp completed in 6 seconds + +[hangs] + + 7939 1000 6817 7939 7939 2 144M 8.92M 93.8 5:29.23 10hrs /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/../data-directory + 7944 1000 7939 7944 7939 2 146M 744K 0.0 0:00.00 0:00.01 /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/gdb.base/interrupt + + $ gdb/gdb -q gdb/gdb 7939 + Reading symbols from /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/gdb...done. + Attaching to program `/media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/gdb', pid 7939 + [New Thread 7939.1] + [New Thread 7939.2] + + warning: Can't modify tracing state for pid 7939: (ipc/rcv) timed out + Reading symbols [...] + (gdb) thread apply all bt full + + Thread 2 (Thread 7939.2): + #0 0x014949cc in swtch_pri () from /lib/i386-gnu/libc.so.0.3 + No symbol table info available. + #1 0x01496354 in __spin_lock_solid () from /lib/i386-gnu/libc.so.0.3 + No symbol table info available. + #2 0x014aa677 in _hurd_sigstate_lock () from /lib/i386-gnu/libc.so.0.3 + No symbol table info available. + #3 0x014acbfb in ?? () from /lib/i386-gnu/libc.so.0.3 + No symbol table info available. + #4 0x014ae29e in ?? () from /lib/i386-gnu/libc.so.0.3 + No symbol table info available. + #5 0x014af98f in _S_catch_exception_raise () from /lib/i386-gnu/libc.so.0.3 + No symbol table info available. + #6 0x016442c2 in ?? () from /lib/i386-gnu/libmachuser.so.1 + No symbol table info available. + #7 0x01644344 in _S_exc_server () from /lib/i386-gnu/libmachuser.so.1 + No symbol table info available. + #8 0x014a58ec in ?? () from /lib/i386-gnu/libc.so.0.3 + No symbol table info available. + #9 0x01495898 in mach_msg_server_timeout () from /lib/i386-gnu/libc.so.0.3 + No symbol table info available. + #10 0x014959cb in mach_msg_server () from /lib/i386-gnu/libc.so.0.3 + No symbol table info available. + #11 0x014a597d in ?? () from /lib/i386-gnu/libc.so.0.3 + No symbol table info available. + #12 0x010f7956 in entry_point () from /lib/i386-gnu/libpthread.so.0.3 + No symbol table info available. + #13 0x00000000 in ?? () + No symbol table info available. + + Thread 1 (Thread 7939.1): + #0 0x014d33eb in sigreturn () from /lib/i386-gnu/libc.so.0.3 + No symbol table info available. + #1 0x014aef46 in ?? () from /lib/i386-gnu/libc.so.0.3 + No symbol table info available. + Backtrace stopped: previous frame inner to this frame (corrupt stack?) + * `gdb.base/readline.exp` [[term_blocking]] issue. @@ -528,22 +640,6 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting TODO. - * `gdb.python/python.exp` - - >PASS: gdb.python/python.exp: post event insertion - gdb.post_event(Foo()) - end - ERROR: Process no longer exists - UNRESOLVED: gdb.python/python.exp: post event insertion - end - - This is apparently new with the glibc 2.17 upgrade. Previously it said: - - >PASS: gdb.python/python.exp: post event insertion - gdb.post_event(Foo()) - end - (gdb) PASS: gdb.python/python.exp: post event insertion - end - [More PASSes.] - - TODO. - * `gdb.base/restore.exp`, `gdb.base/store.exp` Several FAILs, starting with GCC 4.8 usage: @@ -558,6 +654,14 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting "CAO2gOZXvCLdaKE2=ZKpjGVGq8A0wQ94-AUo7eKvvWHWncrU_yg@mail.gmail.com"]] look related. + * `gdb.base/default.exp` + + shell echo Hi dad! + bash: relocation error: /lib/i386-gnu/libdl.so.2: symbol __libc_lock_self, version GLIBC_PRIVATE not defined in file libc.so.0.3 with link time reference + (gdb) FAIL: gdb.base/default.exp: shell echo Hi dad! + + TODO. + TODO. diff --git a/toolchain/logs b/toolchain/logs index 48610969..2b8e7e6c 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 48610969c545e5c8df18cce965440e9fb2c607b4 +Subproject commit 2b8e7e6c199575f9d7749d7e7f44aba49e6d06d4 -- cgit v1.2.3 From ee622bddb62fa6f5df68036cecfb1c6460ec6499 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 7 Jan 2014 13:20:40 +0100 Subject: open_issues/gdb: 88020b8b5fe6c8e075416b3efd3d982d5e326f87 (2013-11-12) --- open_issues/gdb.mdwn | 197 +++++++++++++++++++++++++++++++++++++++------------ toolchain/logs | 2 +- 2 files changed, 154 insertions(+), 45 deletions(-) (limited to 'toolchain') diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn index db50b876..64c36ddd 100644 --- a/open_issues/gdb.mdwn +++ b/open_issues/gdb.mdwn @@ -33,8 +33,8 @@ git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefi --> -Last reviewed up to the [[Git mirror's d19fd090b7ec0a60846c52cad9fc0c24c3729565 -(2013-09-18) sources|source_repositories/gdb]]. +Last reviewed up to the [[Git mirror's 88020b8b5fe6c8e075416b3efd3d982d5e326f87 +(2013-11-12) sources|source_repositories/gdb]]. * Globally @@ -78,7 +78,7 @@ Last reviewed up to the [[Git mirror's d19fd090b7ec0a60846c52cad9fc0c24c3729565 Here's a log of a GDB build run; this is from our [[Git repository|source_repositories/gdb]]'s `tschwinge/Ferry_Tagscherer` branch, -commit d19fd090b7ec0a60846c52cad9fc0c24c3729565 (2013-09-18) plus +commit 88020b8b5fe6c8e075416b3efd3d982d5e326f87 (2013-11-12) plus `id:"87vbxxhww4.fsf@kepler.schwinge.homeip.net"`, run on kepler.SCHWINGE and coulomb.SCHWINGE. @@ -163,9 +163,6 @@ formats and more emulation vectors. gnu-nat.c: At top level: gnu-nat.c:1748:1: warning: no previous prototype for 'inf_task_died_status' [] gnu-nat.c: At top level: - gnu-nat.c:2273:1: warning: no previous prototype for 'gnu_read_inferior' [] - gnu-nat.c:2319:1: warning: no previous prototype for 'gnu_write_inferior' [] - gnu-nat.c: At top level: gnu-nat.c:3415:1: warning: no previous prototype for '_initialize_gnu_nat' [] notify_S.c:305:24: warning: no previous prototype for 'notify_server' [] notify_S.c:341:28: warning: no previous prototype for 'notify_server_routine' [] @@ -308,52 +305,98 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting 7939 1000 6817 7939 7939 2 144M 8.92M 93.8 5:29.23 10hrs /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/../data-directory 7944 1000 7939 7944 7939 2 146M 744K 0.0 0:00.00 0:00.01 /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/gdb.base/interrupt - $ gdb/gdb -q gdb/gdb 7939 + $ gdb -q tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/gdb 7961 Reading symbols from /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/gdb...done. - Attaching to program `/media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/gdb', pid 7939 - [New Thread 7939.1] - [New Thread 7939.2] + Attaching to program `/media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/gdb', pid 7961 + [New Thread 7961.1] + [New Thread 7961.2] - warning: Can't modify tracing state for pid 7939: (ipc/rcv) timed out + warning: Can't modify tracing state for pid 7961: (ipc/rcv) timed out Reading symbols [...] (gdb) thread apply all bt full - Thread 2 (Thread 7939.2): - #0 0x014949cc in swtch_pri () from /lib/i386-gnu/libc.so.0.3 - No symbol table info available. - #1 0x01496354 in __spin_lock_solid () from /lib/i386-gnu/libc.so.0.3 - No symbol table info available. - #2 0x014aa677 in _hurd_sigstate_lock () from /lib/i386-gnu/libc.so.0.3 - No symbol table info available. - #3 0x014acbfb in ?? () from /lib/i386-gnu/libc.so.0.3 - No symbol table info available. - #4 0x014ae29e in ?? () from /lib/i386-gnu/libc.so.0.3 - No symbol table info available. - #5 0x014af98f in _S_catch_exception_raise () from /lib/i386-gnu/libc.so.0.3 - No symbol table info available. - #6 0x016442c2 in ?? () from /lib/i386-gnu/libmachuser.so.1 - No symbol table info available. - #7 0x01644344 in _S_exc_server () from /lib/i386-gnu/libmachuser.so.1 - No symbol table info available. - #8 0x014a58ec in ?? () from /lib/i386-gnu/libc.so.0.3 - No symbol table info available. - #9 0x01495898 in mach_msg_server_timeout () from /lib/i386-gnu/libc.so.0.3 - No symbol table info available. - #10 0x014959cb in mach_msg_server () from /lib/i386-gnu/libc.so.0.3 - No symbol table info available. - #11 0x014a597d in ?? () from /lib/i386-gnu/libc.so.0.3 - No symbol table info available. - #12 0x010f7956 in entry_point () from /lib/i386-gnu/libpthread.so.0.3 - No symbol table info available. - #13 0x00000000 in ?? () + Thread 2 (Thread 7961.2): + #0 0x014949cc in swtch_pri () at /build/eglibc-wYOBb2/eglibc-2.17/build-tree/hurd-i386-libc/mach/swtch_pri.S:2 + No locals. + #1 0x01496354 in __spin_lock_solid (lock=0x168100c) at spin-solid.c:26 + No locals. + #2 0x014aa677 in __spin_lock (__lock=) at ../mach/lock-intern.h:54 + No locals. + #3 _hurd_sigstate_lock (ss=0x1681808) at hurdsig.c:175 + No locals. + #4 0x014acbfb in post_signal (untraced=untraced@entry=0) at hurdsig.c:680 + err = + handler = + blocked = + __PRETTY_FUNCTION__ = "post_signal" + signo = 11 + act = 23593696 + ss = 0x1681808 + thread_state = {set = 0, basic = {gs = 1, fs = 17840912, es = 23594144, ds = 17840912, edi = 23290621, esi = 21506724, ebp = 23281960, esp = 1, ebx = 3, edx = 27255556, ecx = 23599112, eax = 163840, eip = 23273912, + cs = 29351492, efl = 29351424, uesp = 0, ss = 29351336}, fpu = {fpkind = 17840912, initialized = 29351344, + hw_state = "\364\213\002\000\000\000\000\000\000\000\000\000cfH\001\000\000\000\000\377\377\377\377\000 c\001T\244G\001\020;\020\001\b\030h\001\000\260g\001\370ݿ\001\060\357\277\001p\000\000\000\233\322e\001\220ݿ\001\216\246J\001\000\300b\001\260\341J\001\b\030h\001\000\000\000\000\000\000\000\000\000 c\001\022\000\000\000\000\200\002\000\020;\020\001\030\306b\001", exc_status = 359}} + ss_suspended = 0 + reply = 0x1bfddf4 + detail = 0x1bfde4c + #5 0x014ae29e in _hurd_internal_post_signal (ss=ss@entry=0x1681808, signo=11, detail=detail@entry=0x1bfde4c, reply_port=reply_port@entry=0, reply_port_type=reply_port_type@entry=17, untraced=untraced@entry=0) at hurdsig.c:1221 + reply_rpc = 0x165d200 <__msg_sig_post_reply> + #6 0x014af98f in _S_catch_exception_raise (port=142, thread=112, task=1, exception=1, code=2, subcode=19137735) at catch-exc.c:88 + ss = 0x1681808 + signo = 11 + d = {exc = 1, exc_code = 2, exc_subcode = 19137735, code = 2, error = EKERN_PROTECTION_FAILURE} + #7 0x016442c2 in _Xexception_raise (OutHeadP=0x1bfdf20, InHeadP=0x1bfef30) at /build/eglibc-wYOBb2/eglibc-2.17/build-tree/hurd-i386-libc/mach/mach/exc_server.c:150 + No locals. + #8 _Xexception_raise (InHeadP=0x1bfef30, OutHeadP=0x1bfdf20) at /build/eglibc-wYOBb2/eglibc-2.17/build-tree/hurd-i386-libc/mach/mach/exc_server.c:41 + In0P = 0x1bfef30 + OutP = 0x1bfdf20 + #9 0x01644344 in _S_exc_server (InHeadP=InHeadP@entry=0x1bfef30, OutHeadP=OutHeadP@entry=0x1bfdf20) at /build/eglibc-wYOBb2/eglibc-2.17/build-tree/hurd-i386-libc/mach/mach/exc_server.c:189 + InP = 0x1bfef30 + OutP = 0x1bfdf20 + routine = 0x1644220 <_Xexception_raise> + #10 0x014a58ec in msgport_server (outp=0x1bfdf20, inp=0x1bfef30) at msgportdemux.c:49 + No locals. + #11 msgport_server (inp=inp@entry=0x1bfef30, outp=outp@entry=0x1bfdf20) at msgportdemux.c:36 + d = 0x0 + #12 0x01495898 in __mach_msg_server_timeout (demux=demux@entry=0x14a5890 , max_size=max_size@entry=4096, rcv_name=rcv_name@entry=142, option=option@entry=0, timeout=timeout@entry=0) at msgserver.c:108 + request = 0x1bfef30 + reply = 0x1bfdf20 + mr = + __PRETTY_FUNCTION__ = "__mach_msg_server_timeout" + #13 0x014959cb in __mach_msg_server (demux=demux@entry=0x14a5890 , max_size=4096, rcv_name=142) at msgserver.c:195 + No locals. + #14 0x014a597d in _hurd_msgport_receive () at msgportdemux.c:67 + No locals. + #15 0x010f7956 in entry_point (self=0x8520788, start_routine=0x14a5920 <_hurd_msgport_receive>, arg=0x0) at ./pthread/pt-create.c:61 + No locals. + #16 0x00000000 in ?? () No symbol table info available. - Thread 1 (Thread 7939.1): - #0 0x014d33eb in sigreturn () from /lib/i386-gnu/libc.so.0.3 - No symbol table info available. - #1 0x014aef46 in ?? () from /lib/i386-gnu/libc.so.0.3 - No symbol table info available. + Thread 1 (Thread 7961.1): + #0 _hurd_userlink_unlink (link=0x81c2a20 ) at ../hurd/hurd/userlink.h:123 + No locals. + #1 __sigreturn (scp=0x81c2950 ) at ../sysdeps/mach/hurd/i386/sigreturn.c:47 + link = 0x81c2a20 + reply_port = + #2 0x014aef46 in trampoline () from /lib/i386-gnu/libc.so.0.3 + No locals. + #3 0x081c2950 in ?? () at ../../Ferry_Tagscherer/gdb/event-top.c:869 + sigtstp_token = 0x860a7c0 + sighup_token = 0x86089e0 + more_to_come = 0 + sigfpe_token = 0x860a7a8 + sigquit_token = 0x86089c8 + sigint_token = 0x860a3b0 + call_readline = 0x81c2ab0 + exec_done_display_p = 0 + input_handler = 0x81c2c50 + async_command_editing_p = 1 + after_char_processing_hook = 0x0 + async_annotation_suffix = 0x83d8648 "prompt" + input_fd = 0 + readline_input_state = {linebuffer = 0x0, linebuffer_ptr = 0x0} Backtrace stopped: previous frame inner to this frame (corrupt stack?) + (gdb) kill + Kill the program being debugged? (y or n) y * `gdb.base/readline.exp` @@ -662,6 +705,72 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting TODO. + * `gdb.base/exitsignal.exp` + + Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/exitsignal.exp ... + PASS: gdb.base/exitsignal.exp: $_exitsignal is void before running + PASS: gdb.base/exitsignal.exp: $_exitcode is void before running + PASS: gdb.base/exitsignal.exp: trigger SIGSEGV + PASS: gdb.base/exitsignal.exp: program terminated with SIGSEGV + FAIL: gdb.base/exitsignal.exp: $_exitsignal is 11 (SIGSEGV) after SIGSEGV. + PASS: gdb.base/exitsignal.exp: $_exitcode is still void after SIGSEGV + PASS: gdb.base/exitsignal.exp: rerun to main + FAIL: gdb.base/exitsignal.exp: $_exitsignal is 11 (SIGSEGV) after restarting the inferior + PASS: gdb.base/exitsignal.exp: $_exitcode is still void after restarting the inferior + PASS: gdb.base/exitsignal.exp: $_exitsignal is void before normal inferior is executed + PASS: gdb.base/exitsignal.exp: $_exitcode is void before normal inferior is executed + PASS: gdb.base/exitsignal.exp: continue until exit + PASS: gdb.base/exitsignal.exp: $_exitcode is zero after normal inferior is executed + PASS: gdb.base/exitsignal.exp: $_exitsignal is still void after normal inferior is executed + + TODO. + + * `gdb.pascal` + + Both on coulomb.SCHWINGE and kepler.SCHWINGE: + + Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.pascal/print.exp ... + PASS: gdb.pascal/print.exp: set language pascal + PASS: gdb.pascal/print.exp: set language to "pascal" + -PASS: gdb.pascal/print.exp: check fp + text + -PASS: gdb.pascal/print.exp: p 1. + -PASS: gdb.pascal/print.exp: p 1.5 + -PASS: gdb.pascal/print.exp: p 1.f + -PASS: gdb.pascal/print.exp: p 1.5f + -PASS: gdb.pascal/print.exp: p 1.l + -PASS: gdb.pascal/print.exp: p 1.5l + -PASS: gdb.pascal/print.exp: p 0x1.1 + +FAIL: gdb.pascal/print.exp: check fp + text + +FAIL: gdb.pascal/print.exp: p 1. + +FAIL: gdb.pascal/print.exp: p 1.5 + +FAIL: gdb.pascal/print.exp: p 1.f + +FAIL: gdb.pascal/print.exp: p 1.5f + +FAIL: gdb.pascal/print.exp: p 1.l + +FAIL: gdb.pascal/print.exp: p 1.5l + +FAIL: gdb.pascal/print.exp: p 0x1.1 + PASS: gdb.pascal/print.exp: reject p 1.1x + PASS: gdb.pascal/print.exp: reject p 1.1ff + PASS: gdb.pascal/print.exp: reject p 1.1ll + Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.pascal/types.exp ... + PASS: gdb.pascal/types.exp: set language pascal + PASS: gdb.pascal/types.exp: set language to "pascal" + -PASS: gdb.pascal/types.exp: pt 123 + +FAIL: gdb.pascal/types.exp: pt 123 + PASS: gdb.pascal/types.exp: pt TRUE + PASS: gdb.pascal/types.exp: pt FALSE + PASS: gdb.pascal/types.exp: pt 'a' + KFAIL: gdb.pascal/types.exp: pt 'a simple string' (PRMS: gdb/2326) + -PASS: gdb.pascal/types.exp: pt .44 + -PASS: gdb.pascal/types.exp: pt 44.0 + -PASS: gdb.pascal/types.exp: pt 10e20 + -PASS: gdb.pascal/types.exp: pt 10E20 + +FAIL: gdb.pascal/types.exp: pt .44 + +FAIL: gdb.pascal/types.exp: pt 44.0 + +FAIL: gdb.pascal/types.exp: pt 10e20 + +FAIL: gdb.pascal/types.exp: pt 10E20 + + TODO. + TODO. diff --git a/toolchain/logs b/toolchain/logs index 2b8e7e6c..9ee292d4 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 2b8e7e6c199575f9d7749d7e7f44aba49e6d06d4 +Subproject commit 9ee292d45f9909e4c16f4cab282a5d73067bcb2f -- cgit v1.2.3 From a85d048037914db6abf85d4936e7010d571cb5dd Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 7 Jan 2014 16:12:00 +0100 Subject: open_issues/binutils: Re-run after system update. --- open_issues/binutils.mdwn | 6 ++++-- toolchain/logs | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'toolchain') diff --git a/open_issues/binutils.mdwn b/open_issues/binutils.mdwn index b19a81a4..8362ce4d 100644 --- a/open_issues/binutils.mdwn +++ b/open_issues/binutils.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012, 2013 Free Software -Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012, 2013, 2014 Free +Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -212,6 +212,8 @@ This needs roughly 5 min on kepler.SCHWINGE and 37 min on coulomb.SCHWINGE. [[I|tschwinge]] suppose this is due to us having an override w.r.t. weak symbol handling in glibc, needed for our external [[/libpthread]]. TODO: document properly. + This has now been fixed (thus, we now get XPASSes), and the XFAILs can be + removed. * `FAIL: gas/i386/rept` (intermittently) diff --git a/toolchain/logs b/toolchain/logs index 9ee292d4..e79588d5 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 9ee292d45f9909e4c16f4cab282a5d73067bcb2f +Subproject commit e79588d56c91923ec6c9f233c83ac529c49e3daa -- cgit v1.2.3 From b74208fa2805380ffff9923ed7c6af108f85406f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 7 Jan 2014 19:36:17 +0100 Subject: open_issues/binutils: a0a1bb07cb2c03b7d34f12e734c6f363ddb7c7b2 (2013-11-12) --- open_issues/binutils.mdwn | 8 ++++---- toolchain/logs | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'toolchain') diff --git a/open_issues/binutils.mdwn b/open_issues/binutils.mdwn index 8362ce4d..627dcb4b 100644 --- a/open_issues/binutils.mdwn +++ b/open_issues/binutils.mdwn @@ -33,14 +33,14 @@ though, as explained below. -Last reviewed up to the [[Git mirror's d2a61dc33b01c56f5153c1ddea7b1fb8f304f20d -(2013-06-18) sources|source_repositories/binutils]]. +Last reviewed up to the [[Git mirror's a0a1bb07cb2c03b7d34f12e734c6f363ddb7c7b2 +(2013-11-12) sources|source_repositories/binutils]]. * Globally @@ -128,7 +128,7 @@ Last reviewed up to the [[Git mirror's d2a61dc33b01c56f5153c1ddea7b1fb8f304f20d Here's a log of a binutils build run; this is from our [[Git repository|source_repositories/binutils]]'s `tschwinge/Paul_Desmond` branch, -commit d2a61dc33b01c56f5153c1ddea7b1fb8f304f20d (2013-06-18), run on +commit a0a1bb07cb2c03b7d34f12e734c6f363ddb7c7b2 (2013-11-12), run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C diff --git a/toolchain/logs b/toolchain/logs index e79588d5..e08e6e3a 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit e79588d56c91923ec6c9f233c83ac529c49e3daa +Subproject commit e08e6e3ae62c12d76c9f4fa438b253a30c96d5e7 -- cgit v1.2.3 From 05dd53367c782555a0ddcde1db0efcf4c2671676 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 8 Jan 2014 11:22:13 +0100 Subject: open_issues/binutils: binutils-gdb: Merge of binutils and gdb. --- open_issues/binutils.mdwn | 748 +++++++++++++++++++++++++++++++++++++++++-- open_issues/gdb.mdwn | 791 +--------------------------------------------- toolchain/logs | 2 +- 3 files changed, 732 insertions(+), 809 deletions(-) (limited to 'toolchain') diff --git a/open_issues/binutils.mdwn b/open_issues/binutils.mdwn index 2aa64b3e..97b56616 100644 --- a/open_issues/binutils.mdwn +++ b/open_issues/binutils.mdwn @@ -9,9 +9,20 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] -[[!tag stable_URL open_issue_binutils]] +[[!meta title=binutils-gdb]] -Here's what's to be done for maintaining GNU Binutils. +[[!tag stable_URL open_issue_binutils open_issue_gdb]] + +Here's what's to be done for maintaining GNU Binutils and GDB. + + +[[!toc levels=2]] + + +# General Information + + +## [[/Binutils]] As these tools primarily deal with low-level parts of the target architecture and the object file format (ELF ABI), which are essentially (at least meant to @@ -19,10 +30,10 @@ be) the same, there shouldn't be many differences comparing the binutils between the GNU/Hurd and GNU/Linux ports, for example. There are a few, though, as explained below. -[[!toc levels=2]] +## [[/GDB]] -# [[General information|/binutils]] +GDB needs an processor architecture as well as operating system port. # Configuration @@ -30,14 +41,14 @@ though, as explained below. -Last reviewed up to the Git mirror's commit -a0a1bb07cb2c03b7d34f12e734c6f363ddb7c7b2 (2013-11-12). +Last reviewed up to Git commit 95e4302a8f872b3f68c4cf5af774ca1bde9d2c1a +(2013-10-21). * Globally @@ -95,6 +106,20 @@ a0a1bb07cb2c03b7d34f12e734c6f363ddb7c7b2 (2013-11-12). * `configure.tgt` + * `gdb/` + + * Have a look at config/i386/i386gnu.mh. + + * configure.tgt + + * glibc-tdep et al. also for GNU/Hurd? + + * [[gdb/gdbserver]] + + * `libdecnumber/` + + Should/can probably align to GNU/Linux. + * `ld/` * `configure.host` @@ -120,15 +145,36 @@ a0a1bb07cb2c03b7d34f12e734c6f363ddb7c7b2 (2013-11-12). * `Add HOSTING_SCRT0 for PIE test`, 49cc20aa5c416ea4307931cccf6353247368187d -- is for GNU/Linux only; but also seems unused. + * 82763a3d329b0d342d0273941b1521be9ef0c604 »MODIFIED is unknown, pass it as + true.« + + * Configure so that Debian system's `/usr/lib/debug/[...]` will be loaded + automatically. + + * old-style function definition + + ../../Ferry_Tagscherer/gdb/gnu-nat.c: In function 'trace_me': + ../../Ferry_Tagscherer/gdb/gnu-nat.c:2106:8: warning: old-style function definition [-Wold-style-definition] + void trace_me () + ^ + # Build -Here's a log of a binutils build run; this is from the Git mirror's commit -a0a1bb07cb2c03b7d34f12e734c6f363ddb7c7b2 (2013-11-12), run on +Here's a log of a binutils-gdb build run; this is from Git commit +95e4302a8f872b3f68c4cf5af774ca1bde9d2c1a (2013-10-21) plus +36cff971e29987ed61e86891c77d28158c20b090, +a903d6ac5a79c1fb390b9b833c891c0544502cfe, +ae6da67e35733eb8be443ae46ca9a24f8037a75d, +9548bbede51868a9a780d7d21ae16ac13e8bdf9b, +eec6550343414e9ebf12885533609c1ba9b397f1, +689a1abf0dba1f5353039a5625411c6c41098d3a, +8467a2fd5569f7345c025ca94467f50cd329560d, and +`id:"87vbxxhww4.fsf@kepler.schwinge.homeip.net"`, run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C - $ ../Paul_Desmond/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/dash CC=gcc-4.8 CXX=g++-4.8 2>&1 | tee log_build + $ ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/dash CC=gcc-4.8 CXX=g++-4.8 --disable-werror 2>&1 | tee log_build [...] $ make 2>&1 | tee log_build_ [...] @@ -136,10 +182,13 @@ kepler.SCHWINGE and coulomb.SCHWINGE. Different hosts may default to different shells and compiler versions; thus harmonized. Debian GCC (which is used in binutils' testsuite) likes to pass `--sysroot=/` to `ld`, so we need to configure binutils with support for -sysroots. +sysroots. In the GDB build, there are several occurences of *error: +dereferencing type-punned pointer will break strict-aliasing rules* in the +MIG-generated stub files; thus no `-Werror` until that is resolved +([[strict_aliasing]]). -This takes up around 1100 MiB, and needs roughly 13 min on kepler.SCHWINGE and -53 min on coulomb.SCHWINGE. +This takes up around 1.3 GiB, and needs roughly 17 min on kepler.SCHWINGE and +78 min on coulomb.SCHWINGE. `FAIL: static [...]` @@ -242,3 +383,574 @@ This needs roughly 5 min on kepler.SCHWINGE and 37 min on coulomb.SCHWINGE. -PASS: tls_phdrs_script_test +FAIL: tls_phdrs_script_test + + * `gdb.base/attach-pie-misread.exp` + + Is only run for GNU/Linux; needs [[prelink]]. + + * Disabled + + * `gdb.base/interrupt.exp` + + PASS: gdb.base/interrupt.exp: child process is alive + a + a + PASS: gdb.base/interrupt.exp: child process ate our char + ^C + Program received signal SIGINT, Interrupt. + -0x010bf5a2 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + +0x010bdb09 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + (gdb) PASS: gdb.base/interrupt.exp: send_gdb control C + p func1 () + + Program received signal SIGTRAP, Trace/breakpoint trap. + -0x010bf5a2 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + +0x010bdb09 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + The program being debugged was signaled while in a function called from GDB. + GDB remains in the frame where the signal was received. + To change this behavior use "set unwindonsignal on". + Evaluation of the expression containing the function + (func1) will be abandoned. + When the function is done executing, GDB will silently stop. + (gdb) FAIL: gdb.base/interrupt.exp: call function when asleep (wrong output) + p func1 () + + Program received signal SIGTRAP, Trace/breakpoint trap. + -0x010bf5a2 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + +0x010bdb09 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + The program being debugged was signaled while in a function called from GDB. + GDB remains in the frame where the signal was received. + To change this behavior use "set unwindonsignal on". + Evaluation of the expression containing the function + (func1) will be abandoned. + When the function is done executing, GDB will silently stop. + (gdb) FAIL: gdb.base/interrupt.exp: call function a second time + continue + Continuing. + -PASS: gdb.base/interrupt.exp: continue + + + +Program received signal SIGSEGV, Segmentation fault. + +0x010bdb09 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + +(gdb) FAIL: gdb.base/interrupt.exp: continue + data + PASS: gdb.base/interrupt.exp: echo data + ^C(gdb) Quit + (gdb) FAIL: gdb.base/interrupt.exp: Send Control-C, second time + signal SIGINT + Continuing with signal SIGINT. + PASS: gdb.base/interrupt.exp: signal SIGINT + more data + PASS: gdb.base/interrupt.exp: echo more data + + Program received signal SIGSEGV, Segmentation fault. + -0x010bf6c8 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + +0x010bdc9d in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 + (gdb) more data + Undefined command: "more". Try "help". + (gdb) FAIL: gdb.base/interrupt.exp: send end of file + -testcase ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/interrupt.exp completed in 6 seconds + +[hangs] + + 7939 1000 6817 7939 7939 2 144M 8.92M 93.8 5:29.23 10hrs /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/../data-directory + 7944 1000 7939 7944 7939 2 146M 744K 0.0 0:00.00 0:00.01 /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/gdb.base/interrupt + + $ gdb -q tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/gdb 7961 + Reading symbols from /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/gdb...done. + Attaching to program `/media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/gdb', pid 7961 + [New Thread 7961.1] + [New Thread 7961.2] + + warning: Can't modify tracing state for pid 7961: (ipc/rcv) timed out + Reading symbols [...] + (gdb) thread apply all bt full + + Thread 2 (Thread 7961.2): + #0 0x014949cc in swtch_pri () at /build/eglibc-wYOBb2/eglibc-2.17/build-tree/hurd-i386-libc/mach/swtch_pri.S:2 + No locals. + #1 0x01496354 in __spin_lock_solid (lock=0x168100c) at spin-solid.c:26 + No locals. + #2 0x014aa677 in __spin_lock (__lock=) at ../mach/lock-intern.h:54 + No locals. + #3 _hurd_sigstate_lock (ss=0x1681808) at hurdsig.c:175 + No locals. + #4 0x014acbfb in post_signal (untraced=untraced@entry=0) at hurdsig.c:680 + err = + handler = + blocked = + __PRETTY_FUNCTION__ = "post_signal" + signo = 11 + act = 23593696 + ss = 0x1681808 + thread_state = {set = 0, basic = {gs = 1, fs = 17840912, es = 23594144, ds = 17840912, edi = 23290621, esi = 21506724, ebp = 23281960, esp = 1, ebx = 3, edx = 27255556, ecx = 23599112, eax = 163840, eip = 23273912, + cs = 29351492, efl = 29351424, uesp = 0, ss = 29351336}, fpu = {fpkind = 17840912, initialized = 29351344, + hw_state = "\364\213\002\000\000\000\000\000\000\000\000\000cfH\001\000\000\000\000\377\377\377\377\000 c\001T\244G\001\020;\020\001\b\030h\001\000\260g\001\370ݿ\001\060\357\277\001p\000\000\000\233\322e\001\220ݿ\001\216\246J\001\000\300b\001\260\341J\001\b\030h\001\000\000\000\000\000\000\000\000\000 c\001\022\000\000\000\000\200\002\000\020;\020\001\030\306b\001", exc_status = 359}} + ss_suspended = 0 + reply = 0x1bfddf4 + detail = 0x1bfde4c + #5 0x014ae29e in _hurd_internal_post_signal (ss=ss@entry=0x1681808, signo=11, detail=detail@entry=0x1bfde4c, reply_port=reply_port@entry=0, reply_port_type=reply_port_type@entry=17, untraced=untraced@entry=0) at hurdsig.c:1221 + reply_rpc = 0x165d200 <__msg_sig_post_reply> + #6 0x014af98f in _S_catch_exception_raise (port=142, thread=112, task=1, exception=1, code=2, subcode=19137735) at catch-exc.c:88 + ss = 0x1681808 + signo = 11 + d = {exc = 1, exc_code = 2, exc_subcode = 19137735, code = 2, error = EKERN_PROTECTION_FAILURE} + #7 0x016442c2 in _Xexception_raise (OutHeadP=0x1bfdf20, InHeadP=0x1bfef30) at /build/eglibc-wYOBb2/eglibc-2.17/build-tree/hurd-i386-libc/mach/mach/exc_server.c:150 + No locals. + #8 _Xexception_raise (InHeadP=0x1bfef30, OutHeadP=0x1bfdf20) at /build/eglibc-wYOBb2/eglibc-2.17/build-tree/hurd-i386-libc/mach/mach/exc_server.c:41 + In0P = 0x1bfef30 + OutP = 0x1bfdf20 + #9 0x01644344 in _S_exc_server (InHeadP=InHeadP@entry=0x1bfef30, OutHeadP=OutHeadP@entry=0x1bfdf20) at /build/eglibc-wYOBb2/eglibc-2.17/build-tree/hurd-i386-libc/mach/mach/exc_server.c:189 + InP = 0x1bfef30 + OutP = 0x1bfdf20 + routine = 0x1644220 <_Xexception_raise> + #10 0x014a58ec in msgport_server (outp=0x1bfdf20, inp=0x1bfef30) at msgportdemux.c:49 + No locals. + #11 msgport_server (inp=inp@entry=0x1bfef30, outp=outp@entry=0x1bfdf20) at msgportdemux.c:36 + d = 0x0 + #12 0x01495898 in __mach_msg_server_timeout (demux=demux@entry=0x14a5890 , max_size=max_size@entry=4096, rcv_name=rcv_name@entry=142, option=option@entry=0, timeout=timeout@entry=0) at msgserver.c:108 + request = 0x1bfef30 + reply = 0x1bfdf20 + mr = + __PRETTY_FUNCTION__ = "__mach_msg_server_timeout" + #13 0x014959cb in __mach_msg_server (demux=demux@entry=0x14a5890 , max_size=4096, rcv_name=142) at msgserver.c:195 + No locals. + #14 0x014a597d in _hurd_msgport_receive () at msgportdemux.c:67 + No locals. + #15 0x010f7956 in entry_point (self=0x8520788, start_routine=0x14a5920 <_hurd_msgport_receive>, arg=0x0) at ./pthread/pt-create.c:61 + No locals. + #16 0x00000000 in ?? () + No symbol table info available. + + Thread 1 (Thread 7961.1): + #0 _hurd_userlink_unlink (link=0x81c2a20 ) at ../hurd/hurd/userlink.h:123 + No locals. + #1 __sigreturn (scp=0x81c2950 ) at ../sysdeps/mach/hurd/i386/sigreturn.c:47 + link = 0x81c2a20 + reply_port = + #2 0x014aef46 in trampoline () from /lib/i386-gnu/libc.so.0.3 + No locals. + #3 0x081c2950 in ?? () at ../../Ferry_Tagscherer/gdb/event-top.c:869 + sigtstp_token = 0x860a7c0 + sighup_token = 0x86089e0 + more_to_come = 0 + sigfpe_token = 0x860a7a8 + sigquit_token = 0x86089c8 + sigint_token = 0x860a3b0 + call_readline = 0x81c2ab0 + exec_done_display_p = 0 + input_handler = 0x81c2c50 + async_command_editing_p = 1 + after_char_processing_hook = 0x0 + async_annotation_suffix = 0x83d8648 "prompt" + input_fd = 0 + readline_input_state = {linebuffer = 0x0, linebuffer_ptr = 0x0} + Backtrace stopped: previous frame inner to this frame (corrupt stack?) + (gdb) kill + Kill the program being debugged? (y or n) y + + * `gdb.base/readline.exp` + + [[term_blocking]] issue. + + * `gdb.base/sigall.exp` + + From `send signal TSTP` on, all FAIL running into timeouts. + + * `gdb.python/py-inferior.exp` (mostly disabled) + + Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.python/py-inferior.exp ... + [...] + python print 'result =', i0.was_attached + result = False + (gdb) PASS: gdb.python/py-inferior.exp: test Inferior.was_attached + python print i0.threads () + (, ) + (gdb) FAIL: gdb.python/py-inferior.exp: test Inferior.threads + break check_threads + Breakpoint 2 at 0x8048869: file ../../../Ferry_Tagscherer/gdb/testsuite/gdb.python/py-inferior.c, line 61. + (gdb) continue + Continuing. + [New Thread 25670.6] + [New Thread 25670.7] + [New Thread 25670.8] + [New Thread 25670.9] + [New Thread 25670.10] + [New Thread 25670.11] + [New Thread 25670.12] + [New Thread 25670.13] + + Breakpoint 2, check_threads (barrier=0x15ff144) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.python/py-inferior.c:61 + 61 pthread_barrier_wait (barrier); + (gdb) PASS: gdb.python/py-inferior.exp: continue to breakpoint: cont to check_threads + python print len (i0.threads ()) + 10 + (gdb) FAIL: gdb.python/py-inferior.exp: test Inferior.threads 2 + break 28 + Breakpoint 3 at 0x80487c2: file ../../../Ferry_Tagscherer/gdb/testsuite/gdb.python/py-inferior.c, line 28. + (gdb) continue + Continuing. + FAIL: gdb.python/py-inferior.exp: continue to breakpoint: cont to Break here. (timeout) + python addr = gdb.selected_frame ().read_var ('str') + FAIL: gdb.python/py-inferior.exp: read str address (timeout) + [All following tests FAIL with timeout.] + FAIL: gdb.python/py-inferior.exp: Switch to first inferior (timeout) + remove-inferiors 3 + FAIL: gdb.python/py-inferior.exp: Remove second inferior (timeout) + + At this point, the system hangs; no new processes can be spawned, so + perhaps an issue with the exec server. + + * `gdb.threads/manythreads.exp` + + [[!taglink open_issue_libpthread]]. Perhaps fails due to pthread + attributes usage? Doesn't execute properly: + + $ gdb/testsuite/gdb.threads/manythreads + manythreads: ../libpthread/sysdeps/mach/pt-thread-halt.c:51: __pthread_thread_halt: Unexpected error: (ipc/rcv) invalid name. + Killed + + * Linux syscall usage, `` + + * `UNSUPPORTED: gdb.threads/ia64-sigill.exp: Couldn't compile ../../../master/gdb/testsuite/gdb.threads/ia64-sigill.c: unrecognized error` + + * `UNSUPPORTED: gdb.threads/siginfo-threads.exp: Couldn't compile ../../../Ferry_Tagscherer/gdb/testsuite/gdb.threads/siginfo-threads.c: unrecognized error` + + * `gdb.threads/sigstep-threads.c` + + Also uses `tgkill`. + + * `UNSUPPORTED: gdb.threads/watchpoint-fork.exp: parent: multithreaded: Couldn't compile ../../../Ferry_Tagscherer/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c ../../../Ferry_Tagscherer/gdb/testsuite/gdb.threads/watchpoint-fork-parent.c: unrecognized error` + + * `UNSUPPORTED: gdb.threads/multi-create.exp: Couldn't compile ../../../master/gdb/testsuite/gdb.threads/multi-create.c: unrecognized error` + ../../../master/gdb/testsuite/gdb.threads/multi-create.c: In function 'create_function': + ../../../master/gdb/testsuite/gdb.threads/multi-create.c:46:39: error: 'PTHREAD_STACK_MIN' undeclared (first use in this function) + ../../../master/gdb/testsuite/gdb.threads/multi-create.c:46:39: note: each undeclared identifier is reported only once for each function it appears in + ../../../master/gdb/testsuite/gdb.threads/multi-create.c: In function 'main': + ../../../master/gdb/testsuite/gdb.threads/multi-create.c:73:39: error: 'PTHREAD_STACK_MIN' undeclared (first use in this function) + + * `UNSUPPORTED: gdb.threads/staticthreads.exp: Couldn't compile ../../../master/gdb/testsuite/gdb.threads/staticthreads.c: unrecognized error` + + ../../../master/gdb/testsuite/gdb.threads/staticthreads.c: In function 'main': + ../../../master/gdb/testsuite/gdb.threads/staticthreads.c:52:37: error: 'PTHREAD_STACK_MIN' undeclared (first use in this function) + ../../../master/gdb/testsuite/gdb.threads/staticthreads.c:52:37: note: each undeclared identifier is reported only once for each function it appears in + + * `UNSUPPORTED: gdb.threads/create-fail.exp: Couldn't compile ../../../Ferry_Tagscherer/gdb/testsuite/gdb.threads/create-fail.c: unrecognized error` + + [...]/gdb.threads/create-fail.c:77: undefined reference to `pthread_attr_setaffinity_np' + [...]/gdb.threads/create-fail.c:83: undefined reference to `pthread_create' + + * `UNTESTED: gdb.base/longest-types.exp: longest-types.exp` + + ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/longest-types.c:20:8: error: size of array 'buf' is too large + + Also on GNU/Linux. + + * `FAIL: gdb.base/jit.exp: PIE: one_jit_test-1: Can't run to main` + + (gdb) break main + Breakpoint 1 at 0xb84: file ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/jit-main.c, line 128. + (gdb) run + Starting program: /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/gdb.base/jit-main + Cannot access memory at address 0x393 + Cannot access memory at address 0x38f + (gdb) FAIL: gdb.base/jit.exp: PIE: one_jit_test-1: Can't run to main + + [[GCC/PIE]]. + + Is the following supposed to terminate in this way? + + (gdb) break main + Breakpoint 1 at 0x675: file ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/attach-pie-noexec.c, line 23. + (gdb) run + Starting program: /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/gdb.base/attach-pie-noexec + Cannot access memory at address 0x6c626172 + Cannot access memory at address 0x6c62616e + (gdb) testcase ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/attach-pie-noexec.exp completed in 3 seconds + + IRC, freenode, #hurd, 2013-09-06: + + How to debug a program that works in the shell but Cannot + access memory at address ... in gdb? + Build it without -pie -- but that is just a guess of what + might be going on. + * tschwinge clearly has spent enough time with obscure things to be + able to make such guesses. + tschwinge: looks like -fPIE is used. + verified: some (all?) executables compiled with -fPIE, -fpie + and linked with -pie cannot be debugged in gdb :( + + * `solib-event stop` + + Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.mi/mi-catch-load.exp ... + PASS: gdb.mi/mi-catch-load.exp: breakpoint at main + PASS: gdb.mi/mi-catch-load.exp: mi runto main + PASS: gdb.mi/mi-catch-load.exp: catch-load: auto-solib-add on + PASS: gdb.mi/mi-catch-load.exp: catch-load: catch load + FAIL: gdb.mi/mi-catch-load.exp: catch-load: solib-event stop + PASS: gdb.mi/mi-catch-load.exp: breakpoint at main + PASS: gdb.mi/mi-catch-load.exp: mi runto main + PASS: gdb.mi/mi-catch-load.exp: catch-unload: auto-solib-add on + PASS: gdb.mi/mi-catch-load.exp: catch-unload: catch unload + FAIL: gdb.mi/mi-catch-load.exp: catch-unload: solib-event stop + + *stopped,reason="signal-received",signal-name="SIGSEGV",signal-meaning="Segmentation fault",frame={addr="0x00014add",func="??",args=[],from="/lib/ld.so"},thread-id="4",stopped-threads="all" + + * `gdb.base/call-signal-resume.exp` + + $ gdb -q gdb/testsuite/gdb.base/call-signals + (gdb) break stop_one + (gdb) r + (gdb) call gen_signal() + (gdb) bt + (gdb) frame [] + (gdb) return + (gdb) break handle_signal + (gdb) c + (gdb) c + + kepler.SCHWINGE: + + Breakpoint 2, handle_signal (sig=6) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:28 + 28 } + (gdb) bt + #0 handle_signal (sig=6) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:28 + #1 + #2 0xb7fde416 in __kernel_vsyscall () + #3 0xb7dffd96 in kill () at ../sysdeps/unix/syscall-template.S:81 + #4 0x0804859c in gen_signal () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:35 + #5 0x08048610 in main () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:81 + + coulomb.SCHWINGE: + + Breakpoint 2, handle_signal (sig=6) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:28 + 28 } + (gdb) bt + #0 handle_signal (sig=6) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:28 + #1 0x010baac2 in trampoline () from /lib/i386-gnu/libc.so.0.3 + #2 0x00000006 in ?? () + #3 0x00000000 in ?? () + + kepler.SCHWINGE: + + (gdb) c + Continuing. + no signal + [Inferior 1 (process 10401) exited normally] + + coulomb.SCHWINGE: + + (gdb) c + Continuing. + no signal + + Program received signal SIGSEGV, Segmentation fault. + 0x00000000 in ?? () + (gdb) bt + #0 0x00000000 in ?? () + #1 0x01116c28 in _IO_acquire_lock_fct (p=) at libioP.h:905 + #2 _IO_puts (str=0x80487e0 "no signal") at ioputs.c:45 + #3 0x080486d8 in gen_signal () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:38 + #4 0x0804873d in main () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:81 + + This is apparently new with the glibc 2.17 upgrade. If not doing the + manual `gen_signal` call, it works fine. TODO. + + * `gdb.base/relativedebug.exp` + + (gdb) PASS: gdb.base/relativedebug.exp: continue + bt + #0 0x010a1afc in ?? () from /lib/i386-gnu/libc.so.0.3 + #1 0x010a23be in mach_msg () from /lib/i386-gnu/libc.so.0.3 + #2 0x0126cd98 in msg_sig_post () from /lib/i386-gnu/libhurduser.so.0.3 + #3 0x010e2141 in ?? () from /lib/i386-gnu/libc.so.0.3 + #4 0x010e23ed in kill () from /lib/i386-gnu/libc.so.0.3 + #5 0x010e17f4 in raise () from /lib/i386-gnu/libc.so.0.3 + #6 0x010e5b7c in abort () from /lib/i386-gnu/libc.so.0.3 + #7 0x08048607 in handler (signo=14) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/relativedebug.c:25 + #8 0x010bdac2 in ?? () from /lib/i386-gnu/libc.so.0.3 + Backtrace stopped: previous frame inner to this frame (corrupt stack?) + (gdb) FAIL: gdb.base/relativedebug.exp: pause found in backtrace + + This is apparently new with the glibc 2.17 upgrade. Previously it said: + + (gdb) PASS: gdb.base/relativedebug.exp: continue + bt + #0 0x0107c85c in ?? () from /lib/i386-gnu/libc.so.0.3 + #1 0x0107d069 in mach_msg () from /lib/i386-gnu/libc.so.0.3 + #2 0x01220d4f in msg_sig_post () from /lib/i386-gnu/libhurduser.so.0.3 + #3 0x010bb683 in ?? () from /lib/i386-gnu/libc.so.0.3 + #4 0x010bb8f6 in kill () from /lib/i386-gnu/libc.so.0.3 + #5 0x010bad76 in raise () from /lib/i386-gnu/libc.so.0.3 + #6 0x010bf029 in abort () from /lib/i386-gnu/libc.so.0.3 + #7 0x08048597 in handler (signo=14) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/relativedebug.c:25 + #8 0x01098282 in ?? () from /lib/i386-gnu/libc.so.0.3 + #9 0x010bbe5a in sigsuspend () from /lib/i386-gnu/libc.so.0.3 + #10 0x0112fee1 in pause () from /lib/i386-gnu/libc.so.0.3 + #11 0x080485c5 in main () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/relativedebug.c:32 + (gdb) PASS: gdb.base/relativedebug.exp: pause found in backtrace + + TODO. + + * `gdb.gdb/selftest.exp` + + (gdb) PASS: gdb.gdb/selftest.exp: send SIGINT signal to child process + backtrace + #0 0x0146fafc in ?? () from /lib/i386-gnu/libc.so.0.3 + #1 0x014703be in mach_msg () from /lib/i386-gnu/libc.so.0.3 + #2 0x0163bd98 in msg_sig_post () from /lib/i386-gnu/libhurduser.so.0.3 + #3 0x014b0141 in ?? () from /lib/i386-gnu/libc.so.0.3 + #4 0x014b03ed in kill () from /lib/i386-gnu/libc.so.0.3 + #5 0x082cf471 in _rl_handle_signal (sig=2) at ../../Ferry_Tagscherer/readline/signals.c:221 + #6 0x0148bac2 in ?? () from /lib/i386-gnu/libc.so.0.3 + Backtrace stopped: previous frame inner to this frame (corrupt stack?) + (gdb) FAIL: gdb.gdb/selftest.exp: backtrace through signal handler + + This is apparently new with the glibc 2.17 upgrade. Previously it said: + + (gdb) PASS: gdb.gdb/selftest.exp: send SIGINT signal to child process + backtrace + #0 0x0144885c in ?? () from /lib/i386-gnu/libc.so.0.3 + #1 0x01449069 in mach_msg () from /lib/i386-gnu/libc.so.0.3 + #2 0x015ecd4f in msg_sig_post () from /lib/i386-gnu/libhurduser.so.0.3 + #3 0x01487683 in ?? () from /lib/i386-gnu/libc.so.0.3 + #4 0x014878f6 in kill () from /lib/i386-gnu/libc.so.0.3 + #5 0x082cf401 in _rl_handle_signal (sig=2) at ../../Ferry_Tagscherer/readline/signals.c:221 + #6 0x01464282 in ?? () from /lib/i386-gnu/libc.so.0.3 + #7 0x0144fce3 in ?? () from /lib/i386-gnu/libc.so.0.3 + #8 0x0153975b in poll () from /lib/i386-gnu/libc.so.0.3 + #9 0x081c91c2 in gdb_wait_for_event (block=1) at ../../Ferry_Tagscherer/gdb/event-loop.c:804 + #10 0x081c998f in gdb_do_one_event () at ../../Ferry_Tagscherer/gdb/event-loop.c:402 + #11 0x081c9b07 in start_event_loop () at ../../Ferry_Tagscherer/gdb/event-loop.c:431 + #12 0x081c2f42 in captured_command_loop (data=data@entry=0x0) at ../../Ferry_Tagscherer/gdb/main.c:260 + #13 0x081c0e57 in catch_errors (func=func@entry=0x81c2f30 , func_args=func_args@entry=0x0, errstring=errstring@entry=0x83 + 5b81b "", mask=mask@entry=6) at ../../Ferry_Tagscherer/gdb/exceptions.c:546 + #14 0x081c388c in captured_main (data=data@entry=0x19ff150) at ../../Ferry_Tagscherer/gdb/main.c:1055 + #15 0x081c0e57 in catch_errors (func=func@entry=0x81c3130 , func_args=func_args@entry=0x19ff150, errstring=errstring@entry=0x835b + 81b "", mask=mask@entry=6) at ../../Ferry_Tagscherer/gdb/exceptions.c:546 + #16 0x081c43c0 in gdb_main (args=0x19ff150) at ../../Ferry_Tagscherer/gdb/main.c:1064 + #17 0x08099533 in main (argc=5, argv=0x19ff1e8) at ../../Ferry_Tagscherer/gdb/gdb.c:34 + (gdb) PASS: gdb.gdb/selftest.exp: backtrace through signal handler + + TODO. + + * `gdb.base/restore.exp`, `gdb.base/store.exp` + + Several FAILs, starting with GCC 4.8 usage: + + (gdb) PASS: gdb.base/restore.exp: caller3 calls callee1; return callee now + print l1 + $16 = + (gdb) FAIL: gdb.base/restore.exp: caller3 calls callee1; return restored l1 to 32492 + + [[!GCC_PR 55056]], [[!message-id + "20130126202645.GA4888@host2.jankratochvil.net"]], and maybe [[!message-id + "CAO2gOZXvCLdaKE2=ZKpjGVGq8A0wQ94-AUo7eKvvWHWncrU_yg@mail.gmail.com"]] look + related. + + * `gdb.base/default.exp` + + shell echo Hi dad! + bash: relocation error: /lib/i386-gnu/libdl.so.2: symbol __libc_lock_self, version GLIBC_PRIVATE not defined in file libc.so.0.3 with link time reference + (gdb) FAIL: gdb.base/default.exp: shell echo Hi dad! + + TODO. + + * `gdb.base/exitsignal.exp` + + Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/exitsignal.exp ... + PASS: gdb.base/exitsignal.exp: $_exitsignal is void before running + PASS: gdb.base/exitsignal.exp: $_exitcode is void before running + PASS: gdb.base/exitsignal.exp: trigger SIGSEGV + PASS: gdb.base/exitsignal.exp: program terminated with SIGSEGV + FAIL: gdb.base/exitsignal.exp: $_exitsignal is 11 (SIGSEGV) after SIGSEGV. + PASS: gdb.base/exitsignal.exp: $_exitcode is still void after SIGSEGV + PASS: gdb.base/exitsignal.exp: rerun to main + FAIL: gdb.base/exitsignal.exp: $_exitsignal is 11 (SIGSEGV) after restarting the inferior + PASS: gdb.base/exitsignal.exp: $_exitcode is still void after restarting the inferior + PASS: gdb.base/exitsignal.exp: $_exitsignal is void before normal inferior is executed + PASS: gdb.base/exitsignal.exp: $_exitcode is void before normal inferior is executed + PASS: gdb.base/exitsignal.exp: continue until exit + PASS: gdb.base/exitsignal.exp: $_exitcode is zero after normal inferior is executed + PASS: gdb.base/exitsignal.exp: $_exitsignal is still void after normal inferior is executed + + TODO. + + * `gdb.pascal` + + Both on coulomb.SCHWINGE and kepler.SCHWINGE: + + Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.pascal/print.exp ... + PASS: gdb.pascal/print.exp: set language pascal + PASS: gdb.pascal/print.exp: set language to "pascal" + -PASS: gdb.pascal/print.exp: check fp + text + -PASS: gdb.pascal/print.exp: p 1. + -PASS: gdb.pascal/print.exp: p 1.5 + -PASS: gdb.pascal/print.exp: p 1.f + -PASS: gdb.pascal/print.exp: p 1.5f + -PASS: gdb.pascal/print.exp: p 1.l + -PASS: gdb.pascal/print.exp: p 1.5l + -PASS: gdb.pascal/print.exp: p 0x1.1 + +FAIL: gdb.pascal/print.exp: check fp + text + +FAIL: gdb.pascal/print.exp: p 1. + +FAIL: gdb.pascal/print.exp: p 1.5 + +FAIL: gdb.pascal/print.exp: p 1.f + +FAIL: gdb.pascal/print.exp: p 1.5f + +FAIL: gdb.pascal/print.exp: p 1.l + +FAIL: gdb.pascal/print.exp: p 1.5l + +FAIL: gdb.pascal/print.exp: p 0x1.1 + PASS: gdb.pascal/print.exp: reject p 1.1x + PASS: gdb.pascal/print.exp: reject p 1.1ff + PASS: gdb.pascal/print.exp: reject p 1.1ll + Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.pascal/types.exp ... + PASS: gdb.pascal/types.exp: set language pascal + PASS: gdb.pascal/types.exp: set language to "pascal" + -PASS: gdb.pascal/types.exp: pt 123 + +FAIL: gdb.pascal/types.exp: pt 123 + PASS: gdb.pascal/types.exp: pt TRUE + PASS: gdb.pascal/types.exp: pt FALSE + PASS: gdb.pascal/types.exp: pt 'a' + KFAIL: gdb.pascal/types.exp: pt 'a simple string' (PRMS: gdb/2326) + -PASS: gdb.pascal/types.exp: pt .44 + -PASS: gdb.pascal/types.exp: pt 44.0 + -PASS: gdb.pascal/types.exp: pt 10e20 + -PASS: gdb.pascal/types.exp: pt 10E20 + +FAIL: gdb.pascal/types.exp: pt .44 + +FAIL: gdb.pascal/types.exp: pt 44.0 + +FAIL: gdb.pascal/types.exp: pt 10e20 + +FAIL: gdb.pascal/types.exp: pt 10E20 + + TODO. + +TODO. + + +# Open Issues + +## [[tag/open_issue_binutils]] + +## [[tag/open_issue_gdb]] + +## GDB `info files` SIGSEGV + +[[!tag open_issue_gdb]] + + +### IRC, freenode, #hurd, 2013-09-07 + + I'm trying to debug pfinet, but I'm not very familiar with gdb. + Tried to attach to the running pfinet process (built with debug symbols), + set a breakpoint and ... when I ran "info files" the process segfaulted. + which process segfaults, pfinet or gdb? + gdb segfaults. + + +## GDB Watchpoints + +[[!tag open_issue_gdb]] + + +### IRC, freenode, #hurd, 2013-09-16 + + tschwinge: Is gdb watch known to fail on hurd? It hangs for me + when logged in via ssh. + gnu_srs: Don't know about GDB's watch command. Are you sure it + is hanging? diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn index 8414bb99..9d82d728 100644 --- a/open_issues/gdb.mdwn +++ b/open_issues/gdb.mdwn @@ -9,793 +9,4 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] -[[!tag open_issue_gdb]] - -Here's what's to be done for maintaining GNU GDB. - -[[!toc levels=2]] - - -# [[General information|/gdb]] - - -# Configuration - - - -Last reviewed up to the Git mirror's commit -88020b8b5fe6c8e075416b3efd3d982d5e326f87 (2013-11-12). - - * Globally - - * a.out, COFF, PE image support and 64 bit support are not interesting. - - * In the testsuites, `.exp` and `.d` files very likely should not only - care for `*-*-linux*`, but also `*-*-gnu*`. (If the need to be - conditionalized like this at all.) - - * `bfd/` - - See [[binutils]]. - - * `libdecnumber/` - - Should/can probably align to GNU/Linux. - - * Have a look at config/i386/i386gnu.mh. - - * configure.tgt - - * glibc-tdep et al. also for GNU/Hurd? - - * [[gdbserver]] - - * 82763a3d329b0d342d0273941b1521be9ef0c604 »MODIFIED is unknown, pass it as - true.« - - * Configure so that Debian system's `/usr/lib/debug/[...]` will be loaded - automatically. - - * old-style function definition - - ../../Ferry_Tagscherer/gdb/gnu-nat.c: In function 'trace_me': - ../../Ferry_Tagscherer/gdb/gnu-nat.c:2106:8: warning: old-style function definition [-Wold-style-definition] - void trace_me () - ^ - - -# Build - -Here's a log of a GDB build run; this is from the Git mirror's commit -88020b8b5fe6c8e075416b3efd3d982d5e326f87 (2013-11-12) plus -`id:"87vbxxhww4.fsf@kepler.schwinge.homeip.net"`, run on kepler.SCHWINGE and -coulomb.SCHWINGE. - - $ export LC_ALL=C - $ ../Ferry_Tagscherer/configure --prefix="$PWD".install SHELL=/bin/dash CC=gcc-4.8 CXX=g++-4.8 --disable-werror 2>&1 | tee log_build - [...] - $ make 2>&1 | tee log_build_ - [...] - -Different hosts may default to different shells and compiler versions; thus -harmonized. - -There are several occurences of *error: dereferencing type-punned pointer will -break strict-aliasing rules* in the MIG-generated stub files; thus no `-Werror` -until that is resolved ([[strict_aliasing]]). - -This takes up around 230 MiB and needs roughly 8 min on kepler.SCHWINGE and 31 -min on coulomb.SCHWINGE. - - - - -## Analysis - -x86 GNU/Linux' and GNU/Hurd's configurations are slightly different, thus mask -out most of the differences that are due to GNU/Linux supporting more core file -formats and more emulation vectors. - - $ toolchain/logs/process gdb build - - * Why do we specify `-D_GNU_SOURCE`, and GNU/Linux doesn't? - - * GNU/Linux: `gdb/symfile-mem.c` for [[vDSO]]. - - * GNU/Linux: `gdb/i386-nat.c` for hardware breakpoints, etc. -- we should - probably use that, too. Related to Samuel's Hurd GDB patch? - - * `gdb/gnu-nat.c` - - gnu-nat.c: In function 'proc_set_exception_port': - gnu-nat.c:409:3: warning: format '%d' expects argument of type 'int', but argument 8 has type 'mach_port_t' [-Wformat] - gnu-nat.c: In function 'proc_steal_exc_port': - gnu-nat.c:449:7: warning: format '%d' expects argument of type 'int', but argument 8 has type 'mach_port_t' [-Wformat] - gnu-nat.c:470:7: warning: format '%d' expects argument of type 'int', but argument 8 has type 'mach_port_t' [-Wformat] - gnu-nat.c: In function 'make_proc': - gnu-nat.c:583:7: warning: format '%d' expects argument of type 'int', but argument 2 has type 'mach_port_t' [-Wformat] - gnu-nat.c:586:7: warning: format '%d' expects argument of type 'int', but argument 8 has type 'mach_port_t' [-Wformat] - gnu-nat.c: In function 'inf_set_pid': - gnu-nat.c:761:3: warning: format '%d' expects argument of type 'int', but argument 7 has type 'task_t' [-Wformat] - gnu-nat.c: In function 'inf_validate_procs': - gnu-nat.c:1085:6: warning: format '%d' expects argument of type 'int', but argument 8 has type 'thread_t' [-Wformat] - gnu-nat.c: In function 'inf_signal': - gnu-nat.c:1349:4: warning: format '%d' expects argument of type 'int', but argument 7 has type 'thread_t' [-Wformat] - gnu-nat.c:1349:4: warning: format '%d' expects argument of type 'int', but argument 8 has type 'thread_t' [-Wformat] - gnu-nat.c: In function 'S_exception_raise_request': - gnu-nat.c:1668:3: warning: format '%d' expects argument of type 'int', but argument 7 has type 'thread_t' [-Wformat] - gnu-nat.c:1668:3: warning: format '%d' expects argument of type 'int', but argument 8 has type 'task_t' [-Wformat] - gnu-nat.c:1705:8: warning: format '%d' expects argument of type 'int', but argument 7 has type 'mach_port_t' [-Wformat] - gnu-nat.c:1711:8: warning: format '%d' expects argument of type 'int', but argument 7 has type 'mach_port_t' [-Wformat] - gnu-nat.c: In function 'do_mach_notify_dead_name': - gnu-nat.c:1762:3: warning: format '%d' expects argument of type 'int', but argument 7 has type 'mach_port_t' [-Wformat] - gnu-nat.c: In function 'gnu_write_inferior': - gnu-nat.c:2383:8: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'vm_address_t' [-Wformat] - gnu-nat.c:2393:8: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'vm_address_t' [-Wformat] - gnu-nat.c: In function 'steal_exc_port': - gnu-nat.c:2864:5: warning: format '%d' expects argument of type 'int', but argument 2 has type 'mach_port_t' [-Wformat] - - - * fe19822761b4635f392875a186e48af446b40f41..7a63e9515491f21eaf07301df87d389def20e317: - - `-Wmissing-prototypes` - - gnu-nat.c: At top level: - gnu-nat.c:643:1: warning: no previous prototype for 'make_inf' [] - gnu-nat.c: At top level: - gnu-nat.c:879:1: warning: no previous prototype for 'inf_set_traced' [] - gnu-nat.c:980:1: warning: no previous prototype for 'inf_port_to_thread' [] - gnu-nat.c: At top level: - gnu-nat.c:1748:1: warning: no previous prototype for 'inf_task_died_status' [] - gnu-nat.c: At top level: - gnu-nat.c:3415:1: warning: no previous prototype for '_initialize_gnu_nat' [] - notify_S.c:305:24: warning: no previous prototype for 'notify_server' [] - notify_S.c:341:28: warning: no previous prototype for 'notify_server_routine' [] - process_reply_S.c:343:24: warning: no previous prototype for 'process_reply_server' [] - process_reply_S.c:379:28: warning: no previous prototype for 'process_reply_server_routine' [] - msg_reply_S.c:165:24: warning: no previous prototype for 'msg_reply_server' [] - msg_reply_S.c:201:28: warning: no previous prototype for 'msg_reply_server_routine' [] - exc_request_S.c:157:24: warning: no previous prototype for 'exc_server' [] - exc_request_S.c:193:28: warning: no previous prototype for 'exc_server_routine' [] - - * `O_NOFOLLOW` - - First seen in - 20f498edfd7e57d3297febcf9c7c7d667cc74239..69a5e2b022c7d15ec4c7c49e6f53a8d924d3b72b: - - -checking for working fcntl.h... yes - +checking for working fcntl.h... no (bad O_NOFOLLOW) - - [[!taglink open_issue_glibc]]? - - * 00e1c4298d2b6fe040a9a970e98349602b12ddbf..6b25dae901ddedb3f330803542d3eac73cdcae4b: - - +../../Ferry_Tagscherer/gdb/gnu-nat.c: In function 'info_port_rights': - +../../Ferry_Tagscherer/gdb/gnu-nat.c:3058:11: warning: passing argument 1 of 'parse_to_comma_and_eval' from incompatible pointer type [enabled by default] - +In file included from ../../Ferry_Tagscherer/gdb/breakpoint.h:23:0, - + from ../../Ferry_Tagscherer/gdb/inferior.h:37, - + from ../../Ferry_Tagscherer/gdb/gnu-nat.c:56: - +../../Ferry_Tagscherer/gdb/value.h:729:22: note: expected 'const char **' but argument is of type 'char **' - - -# Install - - $ make install 2>&1 | tee log_install - [...] - -This takes up around 50 MiB, and needs roughly 1 min on kepler.SCHWINGE and 3 -min on coulomb.SCHWINGE. - - -## Analysis - - $ toolchain/logs/process gdb install - - * `libtool: finish`: `ldconfig` is not run for the Hurd. - - -# Testsuite - - $ make -k check 2>&1 | tee log_test - [...] - -This needs roughly 15 min on kepler.SCHWINGE and 72 min on coulomb.SCHWINGE. - -When running `make -k check 2>&1 | tee log_test`, at the end of the testsuite -the `tee` process does not terminate if there are still stray leftover -processes that [have their stdout/stderr -open](http://sourceware.org/ml/gdb-patches/2012-10/msg00489.html). `kill`ing -these (`SIGKILL` may be needed), makes the `tee` process terminate, too. On -GNU/Hurd, these generally are `gdb.multi/watchpoint-multi`, and an unknown -(`?`) one ("57 PIDs before" `expect [...] gdb.cp`). - - -## Analysis - -The testsuite uses the system's default `gcc` (and similar) compilers, not -those specified on the `configure` line ([[!taglink open_issue_gdb]]?), see -`find_gcc` (and similar) usage in the testsuite and DejaGnu. Maybe something -like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting -`CC_FOR_TARGET` (and similar) per `gdb/testsuite/lib/future.exp`? - - $ toolchain/logs/process gdb test - - * `gdb.base/attach-pie-misread.exp` - - Is only run for GNU/Linux; needs [[prelink]]. - - * Disabled - - * `gdb.base/interrupt.exp` - - PASS: gdb.base/interrupt.exp: child process is alive - a - a - PASS: gdb.base/interrupt.exp: child process ate our char - ^C - Program received signal SIGINT, Interrupt. - -0x010bf5a2 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 - +0x010bdb09 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 - (gdb) PASS: gdb.base/interrupt.exp: send_gdb control C - p func1 () - - Program received signal SIGTRAP, Trace/breakpoint trap. - -0x010bf5a2 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 - +0x010bdb09 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 - The program being debugged was signaled while in a function called from GDB. - GDB remains in the frame where the signal was received. - To change this behavior use "set unwindonsignal on". - Evaluation of the expression containing the function - (func1) will be abandoned. - When the function is done executing, GDB will silently stop. - (gdb) FAIL: gdb.base/interrupt.exp: call function when asleep (wrong output) - p func1 () - - Program received signal SIGTRAP, Trace/breakpoint trap. - -0x010bf5a2 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 - +0x010bdb09 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 - The program being debugged was signaled while in a function called from GDB. - GDB remains in the frame where the signal was received. - To change this behavior use "set unwindonsignal on". - Evaluation of the expression containing the function - (func1) will be abandoned. - When the function is done executing, GDB will silently stop. - (gdb) FAIL: gdb.base/interrupt.exp: call function a second time - continue - Continuing. - -PASS: gdb.base/interrupt.exp: continue - + - +Program received signal SIGSEGV, Segmentation fault. - +0x010bdb09 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 - +(gdb) FAIL: gdb.base/interrupt.exp: continue - data - PASS: gdb.base/interrupt.exp: echo data - ^C(gdb) Quit - (gdb) FAIL: gdb.base/interrupt.exp: Send Control-C, second time - signal SIGINT - Continuing with signal SIGINT. - PASS: gdb.base/interrupt.exp: signal SIGINT - more data - PASS: gdb.base/interrupt.exp: echo more data - - Program received signal SIGSEGV, Segmentation fault. - -0x010bf6c8 in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 - +0x010bdc9d in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3 - (gdb) more data - Undefined command: "more". Try "help". - (gdb) FAIL: gdb.base/interrupt.exp: send end of file - -testcase ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/interrupt.exp completed in 6 seconds - +[hangs] - - 7939 1000 6817 7939 7939 2 144M 8.92M 93.8 5:29.23 10hrs /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/../data-directory - 7944 1000 7939 7944 7939 2 146M 744K 0.0 0:00.00 0:00.01 /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/gdb.base/interrupt - - $ gdb -q tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/gdb 7961 - Reading symbols from /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/gdb...done. - Attaching to program `/media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/gdb', pid 7961 - [New Thread 7961.1] - [New Thread 7961.2] - - warning: Can't modify tracing state for pid 7961: (ipc/rcv) timed out - Reading symbols [...] - (gdb) thread apply all bt full - - Thread 2 (Thread 7961.2): - #0 0x014949cc in swtch_pri () at /build/eglibc-wYOBb2/eglibc-2.17/build-tree/hurd-i386-libc/mach/swtch_pri.S:2 - No locals. - #1 0x01496354 in __spin_lock_solid (lock=0x168100c) at spin-solid.c:26 - No locals. - #2 0x014aa677 in __spin_lock (__lock=) at ../mach/lock-intern.h:54 - No locals. - #3 _hurd_sigstate_lock (ss=0x1681808) at hurdsig.c:175 - No locals. - #4 0x014acbfb in post_signal (untraced=untraced@entry=0) at hurdsig.c:680 - err = - handler = - blocked = - __PRETTY_FUNCTION__ = "post_signal" - signo = 11 - act = 23593696 - ss = 0x1681808 - thread_state = {set = 0, basic = {gs = 1, fs = 17840912, es = 23594144, ds = 17840912, edi = 23290621, esi = 21506724, ebp = 23281960, esp = 1, ebx = 3, edx = 27255556, ecx = 23599112, eax = 163840, eip = 23273912, - cs = 29351492, efl = 29351424, uesp = 0, ss = 29351336}, fpu = {fpkind = 17840912, initialized = 29351344, - hw_state = "\364\213\002\000\000\000\000\000\000\000\000\000cfH\001\000\000\000\000\377\377\377\377\000 c\001T\244G\001\020;\020\001\b\030h\001\000\260g\001\370ݿ\001\060\357\277\001p\000\000\000\233\322e\001\220ݿ\001\216\246J\001\000\300b\001\260\341J\001\b\030h\001\000\000\000\000\000\000\000\000\000 c\001\022\000\000\000\000\200\002\000\020;\020\001\030\306b\001", exc_status = 359}} - ss_suspended = 0 - reply = 0x1bfddf4 - detail = 0x1bfde4c - #5 0x014ae29e in _hurd_internal_post_signal (ss=ss@entry=0x1681808, signo=11, detail=detail@entry=0x1bfde4c, reply_port=reply_port@entry=0, reply_port_type=reply_port_type@entry=17, untraced=untraced@entry=0) at hurdsig.c:1221 - reply_rpc = 0x165d200 <__msg_sig_post_reply> - #6 0x014af98f in _S_catch_exception_raise (port=142, thread=112, task=1, exception=1, code=2, subcode=19137735) at catch-exc.c:88 - ss = 0x1681808 - signo = 11 - d = {exc = 1, exc_code = 2, exc_subcode = 19137735, code = 2, error = EKERN_PROTECTION_FAILURE} - #7 0x016442c2 in _Xexception_raise (OutHeadP=0x1bfdf20, InHeadP=0x1bfef30) at /build/eglibc-wYOBb2/eglibc-2.17/build-tree/hurd-i386-libc/mach/mach/exc_server.c:150 - No locals. - #8 _Xexception_raise (InHeadP=0x1bfef30, OutHeadP=0x1bfdf20) at /build/eglibc-wYOBb2/eglibc-2.17/build-tree/hurd-i386-libc/mach/mach/exc_server.c:41 - In0P = 0x1bfef30 - OutP = 0x1bfdf20 - #9 0x01644344 in _S_exc_server (InHeadP=InHeadP@entry=0x1bfef30, OutHeadP=OutHeadP@entry=0x1bfdf20) at /build/eglibc-wYOBb2/eglibc-2.17/build-tree/hurd-i386-libc/mach/mach/exc_server.c:189 - InP = 0x1bfef30 - OutP = 0x1bfdf20 - routine = 0x1644220 <_Xexception_raise> - #10 0x014a58ec in msgport_server (outp=0x1bfdf20, inp=0x1bfef30) at msgportdemux.c:49 - No locals. - #11 msgport_server (inp=inp@entry=0x1bfef30, outp=outp@entry=0x1bfdf20) at msgportdemux.c:36 - d = 0x0 - #12 0x01495898 in __mach_msg_server_timeout (demux=demux@entry=0x14a5890 , max_size=max_size@entry=4096, rcv_name=rcv_name@entry=142, option=option@entry=0, timeout=timeout@entry=0) at msgserver.c:108 - request = 0x1bfef30 - reply = 0x1bfdf20 - mr = - __PRETTY_FUNCTION__ = "__mach_msg_server_timeout" - #13 0x014959cb in __mach_msg_server (demux=demux@entry=0x14a5890 , max_size=4096, rcv_name=142) at msgserver.c:195 - No locals. - #14 0x014a597d in _hurd_msgport_receive () at msgportdemux.c:67 - No locals. - #15 0x010f7956 in entry_point (self=0x8520788, start_routine=0x14a5920 <_hurd_msgport_receive>, arg=0x0) at ./pthread/pt-create.c:61 - No locals. - #16 0x00000000 in ?? () - No symbol table info available. - - Thread 1 (Thread 7961.1): - #0 _hurd_userlink_unlink (link=0x81c2a20 ) at ../hurd/hurd/userlink.h:123 - No locals. - #1 __sigreturn (scp=0x81c2950 ) at ../sysdeps/mach/hurd/i386/sigreturn.c:47 - link = 0x81c2a20 - reply_port = - #2 0x014aef46 in trampoline () from /lib/i386-gnu/libc.so.0.3 - No locals. - #3 0x081c2950 in ?? () at ../../Ferry_Tagscherer/gdb/event-top.c:869 - sigtstp_token = 0x860a7c0 - sighup_token = 0x86089e0 - more_to_come = 0 - sigfpe_token = 0x860a7a8 - sigquit_token = 0x86089c8 - sigint_token = 0x860a3b0 - call_readline = 0x81c2ab0 - exec_done_display_p = 0 - input_handler = 0x81c2c50 - async_command_editing_p = 1 - after_char_processing_hook = 0x0 - async_annotation_suffix = 0x83d8648 "prompt" - input_fd = 0 - readline_input_state = {linebuffer = 0x0, linebuffer_ptr = 0x0} - Backtrace stopped: previous frame inner to this frame (corrupt stack?) - (gdb) kill - Kill the program being debugged? (y or n) y - - * `gdb.base/readline.exp` - - [[term_blocking]] issue. - - * `gdb.base/sigall.exp` - - From `send signal TSTP` on, all FAIL running into timeouts. - - * `gdb.python/py-inferior.exp` (mostly disabled) - - Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.python/py-inferior.exp ... - [...] - python print 'result =', i0.was_attached - result = False - (gdb) PASS: gdb.python/py-inferior.exp: test Inferior.was_attached - python print i0.threads () - (, ) - (gdb) FAIL: gdb.python/py-inferior.exp: test Inferior.threads - break check_threads - Breakpoint 2 at 0x8048869: file ../../../Ferry_Tagscherer/gdb/testsuite/gdb.python/py-inferior.c, line 61. - (gdb) continue - Continuing. - [New Thread 25670.6] - [New Thread 25670.7] - [New Thread 25670.8] - [New Thread 25670.9] - [New Thread 25670.10] - [New Thread 25670.11] - [New Thread 25670.12] - [New Thread 25670.13] - - Breakpoint 2, check_threads (barrier=0x15ff144) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.python/py-inferior.c:61 - 61 pthread_barrier_wait (barrier); - (gdb) PASS: gdb.python/py-inferior.exp: continue to breakpoint: cont to check_threads - python print len (i0.threads ()) - 10 - (gdb) FAIL: gdb.python/py-inferior.exp: test Inferior.threads 2 - break 28 - Breakpoint 3 at 0x80487c2: file ../../../Ferry_Tagscherer/gdb/testsuite/gdb.python/py-inferior.c, line 28. - (gdb) continue - Continuing. - FAIL: gdb.python/py-inferior.exp: continue to breakpoint: cont to Break here. (timeout) - python addr = gdb.selected_frame ().read_var ('str') - FAIL: gdb.python/py-inferior.exp: read str address (timeout) - [All following tests FAIL with timeout.] - FAIL: gdb.python/py-inferior.exp: Switch to first inferior (timeout) - remove-inferiors 3 - FAIL: gdb.python/py-inferior.exp: Remove second inferior (timeout) - - At this point, the system hangs; no new processes can be spawned, so - perhaps an issue with the exec server. - - * `gdb.threads/manythreads.exp` - - [[!taglink open_issue_libpthread]]. Perhaps fails due to pthread - attributes usage? Doesn't execute properly: - - $ gdb/testsuite/gdb.threads/manythreads - manythreads: ../libpthread/sysdeps/mach/pt-thread-halt.c:51: __pthread_thread_halt: Unexpected error: (ipc/rcv) invalid name. - Killed - - * Linux syscall usage, `` - - * `UNSUPPORTED: gdb.threads/ia64-sigill.exp: Couldn't compile ../../../master/gdb/testsuite/gdb.threads/ia64-sigill.c: unrecognized error` - - * `UNSUPPORTED: gdb.threads/siginfo-threads.exp: Couldn't compile ../../../Ferry_Tagscherer/gdb/testsuite/gdb.threads/siginfo-threads.c: unrecognized error` - - * `gdb.threads/sigstep-threads.c` - - Also uses `tgkill`. - - * `UNSUPPORTED: gdb.threads/watchpoint-fork.exp: parent: multithreaded: Couldn't compile ../../../Ferry_Tagscherer/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c ../../../Ferry_Tagscherer/gdb/testsuite/gdb.threads/watchpoint-fork-parent.c: unrecognized error` - - * `UNSUPPORTED: gdb.threads/multi-create.exp: Couldn't compile ../../../master/gdb/testsuite/gdb.threads/multi-create.c: unrecognized error` - ../../../master/gdb/testsuite/gdb.threads/multi-create.c: In function 'create_function': - ../../../master/gdb/testsuite/gdb.threads/multi-create.c:46:39: error: 'PTHREAD_STACK_MIN' undeclared (first use in this function) - ../../../master/gdb/testsuite/gdb.threads/multi-create.c:46:39: note: each undeclared identifier is reported only once for each function it appears in - ../../../master/gdb/testsuite/gdb.threads/multi-create.c: In function 'main': - ../../../master/gdb/testsuite/gdb.threads/multi-create.c:73:39: error: 'PTHREAD_STACK_MIN' undeclared (first use in this function) - - * `UNSUPPORTED: gdb.threads/staticthreads.exp: Couldn't compile ../../../master/gdb/testsuite/gdb.threads/staticthreads.c: unrecognized error` - - ../../../master/gdb/testsuite/gdb.threads/staticthreads.c: In function 'main': - ../../../master/gdb/testsuite/gdb.threads/staticthreads.c:52:37: error: 'PTHREAD_STACK_MIN' undeclared (first use in this function) - ../../../master/gdb/testsuite/gdb.threads/staticthreads.c:52:37: note: each undeclared identifier is reported only once for each function it appears in - - * `UNSUPPORTED: gdb.threads/create-fail.exp: Couldn't compile ../../../Ferry_Tagscherer/gdb/testsuite/gdb.threads/create-fail.c: unrecognized error` - - [...]/gdb.threads/create-fail.c:77: undefined reference to `pthread_attr_setaffinity_np' - [...]/gdb.threads/create-fail.c:83: undefined reference to `pthread_create' - - * `UNTESTED: gdb.base/longest-types.exp: longest-types.exp` - - ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/longest-types.c:20:8: error: size of array 'buf' is too large - - Also on GNU/Linux. - - * `FAIL: gdb.base/jit.exp: PIE: one_jit_test-1: Can't run to main` - - (gdb) break main - Breakpoint 1 at 0xb84: file ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/jit-main.c, line 128. - (gdb) run - Starting program: /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/gdb.base/jit-main - Cannot access memory at address 0x393 - Cannot access memory at address 0x38f - (gdb) FAIL: gdb.base/jit.exp: PIE: one_jit_test-1: Can't run to main - - [[GCC/PIE]]. - - Is the following supposed to terminate in this way? - - (gdb) break main - Breakpoint 1 at 0x675: file ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/attach-pie-noexec.c, line 23. - (gdb) run - Starting program: /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/gdb.base/attach-pie-noexec - Cannot access memory at address 0x6c626172 - Cannot access memory at address 0x6c62616e - (gdb) testcase ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/attach-pie-noexec.exp completed in 3 seconds - - IRC, freenode, #hurd, 2013-09-06: - - How to debug a program that works in the shell but Cannot - access memory at address ... in gdb? - Build it without -pie -- but that is just a guess of what - might be going on. - * tschwinge clearly has spent enough time with obscure things to be - able to make such guesses. - tschwinge: looks like -fPIE is used. - verified: some (all?) executables compiled with -fPIE, -fpie - and linked with -pie cannot be debugged in gdb :( - - * `solib-event stop` - - Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.mi/mi-catch-load.exp ... - PASS: gdb.mi/mi-catch-load.exp: breakpoint at main - PASS: gdb.mi/mi-catch-load.exp: mi runto main - PASS: gdb.mi/mi-catch-load.exp: catch-load: auto-solib-add on - PASS: gdb.mi/mi-catch-load.exp: catch-load: catch load - FAIL: gdb.mi/mi-catch-load.exp: catch-load: solib-event stop - PASS: gdb.mi/mi-catch-load.exp: breakpoint at main - PASS: gdb.mi/mi-catch-load.exp: mi runto main - PASS: gdb.mi/mi-catch-load.exp: catch-unload: auto-solib-add on - PASS: gdb.mi/mi-catch-load.exp: catch-unload: catch unload - FAIL: gdb.mi/mi-catch-load.exp: catch-unload: solib-event stop - - *stopped,reason="signal-received",signal-name="SIGSEGV",signal-meaning="Segmentation fault",frame={addr="0x00014add",func="??",args=[],from="/lib/ld.so"},thread-id="4",stopped-threads="all" - - * `gdb.base/call-signal-resume.exp` - - $ gdb -q gdb/testsuite/gdb.base/call-signals - (gdb) break stop_one - (gdb) r - (gdb) call gen_signal() - (gdb) bt - (gdb) frame [] - (gdb) return - (gdb) break handle_signal - (gdb) c - (gdb) c - - kepler.SCHWINGE: - - Breakpoint 2, handle_signal (sig=6) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:28 - 28 } - (gdb) bt - #0 handle_signal (sig=6) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:28 - #1 - #2 0xb7fde416 in __kernel_vsyscall () - #3 0xb7dffd96 in kill () at ../sysdeps/unix/syscall-template.S:81 - #4 0x0804859c in gen_signal () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:35 - #5 0x08048610 in main () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:81 - - coulomb.SCHWINGE: - - Breakpoint 2, handle_signal (sig=6) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:28 - 28 } - (gdb) bt - #0 handle_signal (sig=6) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:28 - #1 0x010baac2 in trampoline () from /lib/i386-gnu/libc.so.0.3 - #2 0x00000006 in ?? () - #3 0x00000000 in ?? () - - kepler.SCHWINGE: - - (gdb) c - Continuing. - no signal - [Inferior 1 (process 10401) exited normally] - - coulomb.SCHWINGE: - - (gdb) c - Continuing. - no signal - - Program received signal SIGSEGV, Segmentation fault. - 0x00000000 in ?? () - (gdb) bt - #0 0x00000000 in ?? () - #1 0x01116c28 in _IO_acquire_lock_fct (p=) at libioP.h:905 - #2 _IO_puts (str=0x80487e0 "no signal") at ioputs.c:45 - #3 0x080486d8 in gen_signal () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:38 - #4 0x0804873d in main () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:81 - - This is apparently new with the glibc 2.17 upgrade. If not doing the - manual `gen_signal` call, it works fine. TODO. - - * `gdb.base/relativedebug.exp` - - (gdb) PASS: gdb.base/relativedebug.exp: continue - bt - #0 0x010a1afc in ?? () from /lib/i386-gnu/libc.so.0.3 - #1 0x010a23be in mach_msg () from /lib/i386-gnu/libc.so.0.3 - #2 0x0126cd98 in msg_sig_post () from /lib/i386-gnu/libhurduser.so.0.3 - #3 0x010e2141 in ?? () from /lib/i386-gnu/libc.so.0.3 - #4 0x010e23ed in kill () from /lib/i386-gnu/libc.so.0.3 - #5 0x010e17f4 in raise () from /lib/i386-gnu/libc.so.0.3 - #6 0x010e5b7c in abort () from /lib/i386-gnu/libc.so.0.3 - #7 0x08048607 in handler (signo=14) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/relativedebug.c:25 - #8 0x010bdac2 in ?? () from /lib/i386-gnu/libc.so.0.3 - Backtrace stopped: previous frame inner to this frame (corrupt stack?) - (gdb) FAIL: gdb.base/relativedebug.exp: pause found in backtrace - - This is apparently new with the glibc 2.17 upgrade. Previously it said: - - (gdb) PASS: gdb.base/relativedebug.exp: continue - bt - #0 0x0107c85c in ?? () from /lib/i386-gnu/libc.so.0.3 - #1 0x0107d069 in mach_msg () from /lib/i386-gnu/libc.so.0.3 - #2 0x01220d4f in msg_sig_post () from /lib/i386-gnu/libhurduser.so.0.3 - #3 0x010bb683 in ?? () from /lib/i386-gnu/libc.so.0.3 - #4 0x010bb8f6 in kill () from /lib/i386-gnu/libc.so.0.3 - #5 0x010bad76 in raise () from /lib/i386-gnu/libc.so.0.3 - #6 0x010bf029 in abort () from /lib/i386-gnu/libc.so.0.3 - #7 0x08048597 in handler (signo=14) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/relativedebug.c:25 - #8 0x01098282 in ?? () from /lib/i386-gnu/libc.so.0.3 - #9 0x010bbe5a in sigsuspend () from /lib/i386-gnu/libc.so.0.3 - #10 0x0112fee1 in pause () from /lib/i386-gnu/libc.so.0.3 - #11 0x080485c5 in main () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/relativedebug.c:32 - (gdb) PASS: gdb.base/relativedebug.exp: pause found in backtrace - - TODO. - - * `gdb.gdb/selftest.exp` - - (gdb) PASS: gdb.gdb/selftest.exp: send SIGINT signal to child process - backtrace - #0 0x0146fafc in ?? () from /lib/i386-gnu/libc.so.0.3 - #1 0x014703be in mach_msg () from /lib/i386-gnu/libc.so.0.3 - #2 0x0163bd98 in msg_sig_post () from /lib/i386-gnu/libhurduser.so.0.3 - #3 0x014b0141 in ?? () from /lib/i386-gnu/libc.so.0.3 - #4 0x014b03ed in kill () from /lib/i386-gnu/libc.so.0.3 - #5 0x082cf471 in _rl_handle_signal (sig=2) at ../../Ferry_Tagscherer/readline/signals.c:221 - #6 0x0148bac2 in ?? () from /lib/i386-gnu/libc.so.0.3 - Backtrace stopped: previous frame inner to this frame (corrupt stack?) - (gdb) FAIL: gdb.gdb/selftest.exp: backtrace through signal handler - - This is apparently new with the glibc 2.17 upgrade. Previously it said: - - (gdb) PASS: gdb.gdb/selftest.exp: send SIGINT signal to child process - backtrace - #0 0x0144885c in ?? () from /lib/i386-gnu/libc.so.0.3 - #1 0x01449069 in mach_msg () from /lib/i386-gnu/libc.so.0.3 - #2 0x015ecd4f in msg_sig_post () from /lib/i386-gnu/libhurduser.so.0.3 - #3 0x01487683 in ?? () from /lib/i386-gnu/libc.so.0.3 - #4 0x014878f6 in kill () from /lib/i386-gnu/libc.so.0.3 - #5 0x082cf401 in _rl_handle_signal (sig=2) at ../../Ferry_Tagscherer/readline/signals.c:221 - #6 0x01464282 in ?? () from /lib/i386-gnu/libc.so.0.3 - #7 0x0144fce3 in ?? () from /lib/i386-gnu/libc.so.0.3 - #8 0x0153975b in poll () from /lib/i386-gnu/libc.so.0.3 - #9 0x081c91c2 in gdb_wait_for_event (block=1) at ../../Ferry_Tagscherer/gdb/event-loop.c:804 - #10 0x081c998f in gdb_do_one_event () at ../../Ferry_Tagscherer/gdb/event-loop.c:402 - #11 0x081c9b07 in start_event_loop () at ../../Ferry_Tagscherer/gdb/event-loop.c:431 - #12 0x081c2f42 in captured_command_loop (data=data@entry=0x0) at ../../Ferry_Tagscherer/gdb/main.c:260 - #13 0x081c0e57 in catch_errors (func=func@entry=0x81c2f30 , func_args=func_args@entry=0x0, errstring=errstring@entry=0x83 - 5b81b "", mask=mask@entry=6) at ../../Ferry_Tagscherer/gdb/exceptions.c:546 - #14 0x081c388c in captured_main (data=data@entry=0x19ff150) at ../../Ferry_Tagscherer/gdb/main.c:1055 - #15 0x081c0e57 in catch_errors (func=func@entry=0x81c3130 , func_args=func_args@entry=0x19ff150, errstring=errstring@entry=0x835b - 81b "", mask=mask@entry=6) at ../../Ferry_Tagscherer/gdb/exceptions.c:546 - #16 0x081c43c0 in gdb_main (args=0x19ff150) at ../../Ferry_Tagscherer/gdb/main.c:1064 - #17 0x08099533 in main (argc=5, argv=0x19ff1e8) at ../../Ferry_Tagscherer/gdb/gdb.c:34 - (gdb) PASS: gdb.gdb/selftest.exp: backtrace through signal handler - - TODO. - - * `gdb.base/restore.exp`, `gdb.base/store.exp` - - Several FAILs, starting with GCC 4.8 usage: - - (gdb) PASS: gdb.base/restore.exp: caller3 calls callee1; return callee now - print l1 - $16 = - (gdb) FAIL: gdb.base/restore.exp: caller3 calls callee1; return restored l1 to 32492 - - [[!GCC_PR 55056]], [[!message-id - "20130126202645.GA4888@host2.jankratochvil.net"]], and maybe [[!message-id - "CAO2gOZXvCLdaKE2=ZKpjGVGq8A0wQ94-AUo7eKvvWHWncrU_yg@mail.gmail.com"]] look - related. - - * `gdb.base/default.exp` - - shell echo Hi dad! - bash: relocation error: /lib/i386-gnu/libdl.so.2: symbol __libc_lock_self, version GLIBC_PRIVATE not defined in file libc.so.0.3 with link time reference - (gdb) FAIL: gdb.base/default.exp: shell echo Hi dad! - - TODO. - - * `gdb.base/exitsignal.exp` - - Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/exitsignal.exp ... - PASS: gdb.base/exitsignal.exp: $_exitsignal is void before running - PASS: gdb.base/exitsignal.exp: $_exitcode is void before running - PASS: gdb.base/exitsignal.exp: trigger SIGSEGV - PASS: gdb.base/exitsignal.exp: program terminated with SIGSEGV - FAIL: gdb.base/exitsignal.exp: $_exitsignal is 11 (SIGSEGV) after SIGSEGV. - PASS: gdb.base/exitsignal.exp: $_exitcode is still void after SIGSEGV - PASS: gdb.base/exitsignal.exp: rerun to main - FAIL: gdb.base/exitsignal.exp: $_exitsignal is 11 (SIGSEGV) after restarting the inferior - PASS: gdb.base/exitsignal.exp: $_exitcode is still void after restarting the inferior - PASS: gdb.base/exitsignal.exp: $_exitsignal is void before normal inferior is executed - PASS: gdb.base/exitsignal.exp: $_exitcode is void before normal inferior is executed - PASS: gdb.base/exitsignal.exp: continue until exit - PASS: gdb.base/exitsignal.exp: $_exitcode is zero after normal inferior is executed - PASS: gdb.base/exitsignal.exp: $_exitsignal is still void after normal inferior is executed - - TODO. - - * `gdb.pascal` - - Both on coulomb.SCHWINGE and kepler.SCHWINGE: - - Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.pascal/print.exp ... - PASS: gdb.pascal/print.exp: set language pascal - PASS: gdb.pascal/print.exp: set language to "pascal" - -PASS: gdb.pascal/print.exp: check fp + text - -PASS: gdb.pascal/print.exp: p 1. - -PASS: gdb.pascal/print.exp: p 1.5 - -PASS: gdb.pascal/print.exp: p 1.f - -PASS: gdb.pascal/print.exp: p 1.5f - -PASS: gdb.pascal/print.exp: p 1.l - -PASS: gdb.pascal/print.exp: p 1.5l - -PASS: gdb.pascal/print.exp: p 0x1.1 - +FAIL: gdb.pascal/print.exp: check fp + text - +FAIL: gdb.pascal/print.exp: p 1. - +FAIL: gdb.pascal/print.exp: p 1.5 - +FAIL: gdb.pascal/print.exp: p 1.f - +FAIL: gdb.pascal/print.exp: p 1.5f - +FAIL: gdb.pascal/print.exp: p 1.l - +FAIL: gdb.pascal/print.exp: p 1.5l - +FAIL: gdb.pascal/print.exp: p 0x1.1 - PASS: gdb.pascal/print.exp: reject p 1.1x - PASS: gdb.pascal/print.exp: reject p 1.1ff - PASS: gdb.pascal/print.exp: reject p 1.1ll - Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.pascal/types.exp ... - PASS: gdb.pascal/types.exp: set language pascal - PASS: gdb.pascal/types.exp: set language to "pascal" - -PASS: gdb.pascal/types.exp: pt 123 - +FAIL: gdb.pascal/types.exp: pt 123 - PASS: gdb.pascal/types.exp: pt TRUE - PASS: gdb.pascal/types.exp: pt FALSE - PASS: gdb.pascal/types.exp: pt 'a' - KFAIL: gdb.pascal/types.exp: pt 'a simple string' (PRMS: gdb/2326) - -PASS: gdb.pascal/types.exp: pt .44 - -PASS: gdb.pascal/types.exp: pt 44.0 - -PASS: gdb.pascal/types.exp: pt 10e20 - -PASS: gdb.pascal/types.exp: pt 10E20 - +FAIL: gdb.pascal/types.exp: pt .44 - +FAIL: gdb.pascal/types.exp: pt 44.0 - +FAIL: gdb.pascal/types.exp: pt 10e20 - +FAIL: gdb.pascal/types.exp: pt 10E20 - - TODO. - -TODO. - - -# Open Issues - -## [[tag/open_issue_gdb]] - -## `info files` SIGSEGV - -[[!tag open_issue_gdb]] - - -### IRC, freenode, #hurd, 2013-09-07 - - I'm trying to debug pfinet, but I'm not very familiar with gdb. - Tried to attach to the running pfinet process (built with debug symbols), - set a breakpoint and ... when I ran "info files" the process segfaulted. - which process segfaults, pfinet or gdb? - gdb segfaults. - - -## Watchpoints - -[[!tag open_issue_gdb]] - - -### IRC, freenode, #hurd, 2013-09-16 - - tschwinge: Is gdb watch known to fail on hurd? It hangs for me - when logged in via ssh. - gnu_srs: Don't know about GDB's watch command. Are you sure it - is hanging? +[[!meta redir=binutils]] diff --git a/toolchain/logs b/toolchain/logs index e08e6e3a..0dc2a5c6 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit e08e6e3ae62c12d76c9f4fa438b253a30c96d5e7 +Subproject commit 0dc2a5c6f8175b8a5cd4cf8b31a7d76d05d219ab -- cgit v1.2.3 From 545ae255da361648d20951fd43bb82b716358ce1 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 9 Jan 2014 13:50:30 +0100 Subject: open_issues/binutils: binutils-gdb: 9939e1314f970c6ba568956148a518ac710a280a (2014-01-08) plus [[!message-id "87vbxxhww4.fsf@kepler.schwinge.homeip.net"]], and [[!message-id "8738kyi30l.fsf@kepler.schwinge.homeip.net"]] --- open_issues/binutils.mdwn | 116 ++++++++++++------------------------- open_issues/gdb_non-stop_mode.mdwn | 9 +-- open_issues/gdb_pending_execs.mdwn | 11 ++-- open_issues/gdb_thread_ids.mdwn | 8 +-- toolchain/logs | 2 +- 5 files changed, 54 insertions(+), 92 deletions(-) (limited to 'toolchain') diff --git a/open_issues/binutils.mdwn b/open_issues/binutils.mdwn index 97b56616..fa384bf4 100644 --- a/open_issues/binutils.mdwn +++ b/open_issues/binutils.mdwn @@ -47,8 +47,8 @@ git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefi --> -Last reviewed up to Git commit 95e4302a8f872b3f68c4cf5af774ca1bde9d2c1a -(2013-10-21). +Last reviewed up to Git commit 9939e1314f970c6ba568956148a518ac710a280a +(2014-01-08). * Globally @@ -116,6 +116,9 @@ Last reviewed up to Git commit 95e4302a8f872b3f68c4cf5af774ca1bde9d2c1a * [[gdb/gdbserver]] + * In `gdb/gnu-nat.c:gnu_wait`, we don't implement + `gdb/target/wait.h:TARGET_WNOHANG`. What is this needed for? + * `libdecnumber/` Should/can probably align to GNU/Linux. @@ -151,26 +154,22 @@ Last reviewed up to Git commit 95e4302a8f872b3f68c4cf5af774ca1bde9d2c1a * Configure so that Debian system's `/usr/lib/debug/[...]` will be loaded automatically. - * old-style function definition + * [[!message-id "m3ei24vh4l.fsf@fleche.redhat.com"]] + + * [low] c26e9cbb0ce70e8fca32a40c434a0837bf46750a, + `gdb/gnu-nat.c:set_exceptions_cmd`, `Make this take effect immediately in a + running process`. - ../../Ferry_Tagscherer/gdb/gnu-nat.c: In function 'trace_me': - ../../Ferry_Tagscherer/gdb/gnu-nat.c:2106:8: warning: old-style function definition [-Wold-style-definition] - void trace_me () - ^ + * [low] b27caf75c311991772b316fe7c0eecfd5788eeaf, ld, `Add HOSTING_SLIBS and + use it for -pie`. For us, too? # Build Here's a log of a binutils-gdb build run; this is from Git commit -95e4302a8f872b3f68c4cf5af774ca1bde9d2c1a (2013-10-21) plus -36cff971e29987ed61e86891c77d28158c20b090, -a903d6ac5a79c1fb390b9b833c891c0544502cfe, -ae6da67e35733eb8be443ae46ca9a24f8037a75d, -9548bbede51868a9a780d7d21ae16ac13e8bdf9b, -eec6550343414e9ebf12885533609c1ba9b397f1, -689a1abf0dba1f5353039a5625411c6c41098d3a, -8467a2fd5569f7345c025ca94467f50cd329560d, and -`id:"87vbxxhww4.fsf@kepler.schwinge.homeip.net"`, run on +9939e1314f970c6ba568956148a518ac710a280a (2014-01-08) plus +[[!message-id "87vbxxhww4.fsf@kepler.schwinge.homeip.net"]], and +[[!message-id "8738kyi30l.fsf@kepler.schwinge.homeip.net"]], run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C @@ -192,7 +191,7 @@ This takes up around 1.3 GiB, and needs roughly 17 min on kepler.SCHWINGE and @@ -246,15 +245,6 @@ formats, and more emulation vectors. `-Wmissing-prototypes` - gnu-nat.c: At top level: - gnu-nat.c:643:1: warning: no previous prototype for 'make_inf' [] - gnu-nat.c: At top level: - gnu-nat.c:879:1: warning: no previous prototype for 'inf_set_traced' [] - gnu-nat.c:980:1: warning: no previous prototype for 'inf_port_to_thread' [] - gnu-nat.c: At top level: - gnu-nat.c:1748:1: warning: no previous prototype for 'inf_task_died_status' [] - gnu-nat.c: At top level: - gnu-nat.c:3415:1: warning: no previous prototype for '_initialize_gnu_nat' [] notify_S.c:305:24: warning: no previous prototype for 'notify_server' [] notify_S.c:341:28: warning: no previous prototype for 'notify_server_routine' [] process_reply_S.c:343:24: warning: no previous prototype for 'process_reply_server' [] @@ -274,15 +264,6 @@ formats, and more emulation vectors. [[!taglink open_issue_glibc]]? - * 00e1c4298d2b6fe040a9a970e98349602b12ddbf..6b25dae901ddedb3f330803542d3eac73cdcae4b: - - +../../Ferry_Tagscherer/gdb/gnu-nat.c: In function 'info_port_rights': - +../../Ferry_Tagscherer/gdb/gnu-nat.c:3058:11: warning: passing argument 1 of 'parse_to_comma_and_eval' from incompatible pointer type [enabled by default] - +In file included from ../../Ferry_Tagscherer/gdb/breakpoint.h:23:0, - + from ../../Ferry_Tagscherer/gdb/inferior.h:37, - + from ../../Ferry_Tagscherer/gdb/gnu-nat.c:56: - +../../Ferry_Tagscherer/gdb/value.h:729:22: note: expected 'const char **' but argument is of type 'char **' - # Install @@ -302,6 +283,22 @@ min on coulomb.SCHWINGE. # Testsuite +Some change in +95e4302a8f872b3f68c4cf5af774ca1bde9d2c1a..b7bba0015567c096541d62f2637b9818b1634a59 +causes all gdb.gdb tests to regress from PASS to ERROR: + + Running [...]/gdb/testsuite/gdb.gdb/complaints.exp ... + -PASS: gdb.gdb/complaints.exp: breakpoint in captured_command_loop + -[...] + +ERROR: remote_download to host of [...]/gdb/testsuite/../../gdb/gdb to [...]/gdb/testsuite/gdb.gdb/xgdb: cp: cannot create regular file '[...]/gdb/testsuite/gdb.gdb/xgdb': No such file or directory + +ERROR: Couldn't load into [...]/gdb/testsuite/../../gdb/gdb. + +WARNING: Couldn't test self + +The gdb/testsuite/gdb.gdb directory does not exist/is no longer created; create +it manually: + + $ mkdir -p gdb/testsuite/gdb.gdb + $ make -k check 2>&1 | tee log_test [...] @@ -333,6 +330,8 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting in `ld/configure.host`. Perhaps we should finally rewrite this messy code in glibc? Or, something similar to commit 49cc20aa5c416ea4307931cccf6353247368187d `Add HOSTING_SCRT0 for PIE test` + or commit b27caf75c311991772b316fe7c0eecfd5788eeaf `Add HOSTING_SLIBS and + use it for -pie` can be used. Same issue for `FAIL: Common symbol override ifunc *` ones? @@ -874,51 +873,10 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting TODO. - * `gdb.pascal` - - Both on coulomb.SCHWINGE and kepler.SCHWINGE: - - Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.pascal/print.exp ... - PASS: gdb.pascal/print.exp: set language pascal - PASS: gdb.pascal/print.exp: set language to "pascal" - -PASS: gdb.pascal/print.exp: check fp + text - -PASS: gdb.pascal/print.exp: p 1. - -PASS: gdb.pascal/print.exp: p 1.5 - -PASS: gdb.pascal/print.exp: p 1.f - -PASS: gdb.pascal/print.exp: p 1.5f - -PASS: gdb.pascal/print.exp: p 1.l - -PASS: gdb.pascal/print.exp: p 1.5l - -PASS: gdb.pascal/print.exp: p 0x1.1 - +FAIL: gdb.pascal/print.exp: check fp + text - +FAIL: gdb.pascal/print.exp: p 1. - +FAIL: gdb.pascal/print.exp: p 1.5 - +FAIL: gdb.pascal/print.exp: p 1.f - +FAIL: gdb.pascal/print.exp: p 1.5f - +FAIL: gdb.pascal/print.exp: p 1.l - +FAIL: gdb.pascal/print.exp: p 1.5l - +FAIL: gdb.pascal/print.exp: p 0x1.1 - PASS: gdb.pascal/print.exp: reject p 1.1x - PASS: gdb.pascal/print.exp: reject p 1.1ff - PASS: gdb.pascal/print.exp: reject p 1.1ll - Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.pascal/types.exp ... - PASS: gdb.pascal/types.exp: set language pascal - PASS: gdb.pascal/types.exp: set language to "pascal" - -PASS: gdb.pascal/types.exp: pt 123 - +FAIL: gdb.pascal/types.exp: pt 123 - PASS: gdb.pascal/types.exp: pt TRUE - PASS: gdb.pascal/types.exp: pt FALSE - PASS: gdb.pascal/types.exp: pt 'a' - KFAIL: gdb.pascal/types.exp: pt 'a simple string' (PRMS: gdb/2326) - -PASS: gdb.pascal/types.exp: pt .44 - -PASS: gdb.pascal/types.exp: pt 44.0 - -PASS: gdb.pascal/types.exp: pt 10e20 - -PASS: gdb.pascal/types.exp: pt 10E20 - +FAIL: gdb.pascal/types.exp: pt .44 - +FAIL: gdb.pascal/types.exp: pt 44.0 - +FAIL: gdb.pascal/types.exp: pt 10e20 - +FAIL: gdb.pascal/types.exp: pt 10E20 + * `gdb.arch/i386-prologue.exp` - TODO. + On coulomb.SCHWINGE, there are several FAILs, where there are, for example, + unexpected frames showing up in backtraces. TODO. TODO. diff --git a/open_issues/gdb_non-stop_mode.mdwn b/open_issues/gdb_non-stop_mode.mdwn index 418b144c..adaff102 100644 --- a/open_issues/gdb_non-stop_mode.mdwn +++ b/open_issues/gdb_non-stop_mode.mdwn @@ -1,12 +1,13 @@ -[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 2009, 2014 Free Software Foundation, +Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU Free Documentation License|/fdl]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] [[!meta title="GDB's non-stop mode"]] @@ -14,7 +15,7 @@ is included in the section entitled GNU GDB's `gnu-nat.c` doesn't support *non-stop* mode. -Also, from , +Also, from [[!message-id "200810131935.35253.pedro@codesourcery.com"]], GNU GDB's Pedro Alves: > I also notice that when going through the shell in non-stop mode, it would be diff --git a/open_issues/gdb_pending_execs.mdwn b/open_issues/gdb_pending_execs.mdwn index bb0f8419..37a92cb7 100644 --- a/open_issues/gdb_pending_execs.mdwn +++ b/open_issues/gdb_pending_execs.mdwn @@ -1,18 +1,19 @@ -[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 2009, 2014 Free Software Foundation, +Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU Free Documentation License|/fdl]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] [[!meta title="GDB: pending_execs"]] [[!tag open_issue_gdb]] -: +[[!message-id "200810131935.35253.pedro@codesourcery.com"]] GNU GDB's Ulrich Weigand: @@ -25,3 +26,5 @@ GNU GDB's Pedro Alves: >> pending execs handling in gnu-nat.c. An alternative would be to make >> pending_execs a property of inferior.h:`struct inferior' instead of of >> gnu-nat.c:`struct inf'. + +[[!message-id "8738kyi30l.fsf@kepler.schwinge.homeip.net"]] diff --git a/open_issues/gdb_thread_ids.mdwn b/open_issues/gdb_thread_ids.mdwn index c04a10ee..64173b1b 100644 --- a/open_issues/gdb_thread_ids.mdwn +++ b/open_issues/gdb_thread_ids.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2008, 2009, 2010, 2011 Free Software Foundation, -Inc."]] +[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2014 Free Software +Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -15,8 +15,8 @@ License|/fdl]]."]]"""]] GNU GDB's Pedro Alves: -> One thing [I asked -> myself](http://lists.gnu.org/archive/html/bug-hurd/2008-10/msg00045.html) +> One thing [[!message-id desc="I asked myself" +> "200810131935.35253.pedro@codesourcery.com"]] > was, if gnu-nat.c couldn't be using the port's id as thread ids instead of a > locally auto-generated number. Maybe the thread id of the main thread would > be preserved across execs this way diff --git a/toolchain/logs b/toolchain/logs index 0dc2a5c6..4350ed2b 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 0dc2a5c6f8175b8a5cd4cf8b31a7d76d05d219ab +Subproject commit 4350ed2b0150d38ca945a99cdc7d82b0c2ae564c -- cgit v1.2.3 From d9079faac8940c4654912b0e085e1583358631fe Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 16 Feb 2014 10:03:45 +0100 Subject: open_issues/binutils: binutils-gdb: c2853f3d99797a321c37948297441ca6021f719a (2014-02-14) plus [[!message-id "87vbxxhww4.fsf@kepler.schwinge.homeip.net"]], [[!message-id "8738kyi30l.fsf@kepler.schwinge.homeip.net"]], [[!message-id "8761ofv62k.fsf@kepler.schwinge.homeip.net"]], [[!message-id "1391759958-972-2-git-send-email-yao@codesourcery.com"]], [[!message-id "1391759958-972-3-git-send-email-yao@codesourcery.com"]] --- open_issues/binutils.mdwn | 108 +++++++++++++++++++++++++++++++--------------- open_issues/boehm_gc.mdwn | 5 ++- toolchain/logs | 2 +- 3 files changed, 79 insertions(+), 36 deletions(-) (limited to 'toolchain') diff --git a/open_issues/binutils.mdwn b/open_issues/binutils.mdwn index fa384bf4..306ba38a 100644 --- a/open_issues/binutils.mdwn +++ b/open_issues/binutils.mdwn @@ -47,8 +47,8 @@ git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefi --> -Last reviewed up to Git commit 9939e1314f970c6ba568956148a518ac710a280a -(2014-01-08). +Last reviewed up to Git commit c2853f3d99797a321c37948297441ca6021f719a +(2014-02-14). * Globally @@ -167,9 +167,12 @@ Last reviewed up to Git commit 9939e1314f970c6ba568956148a518ac710a280a # Build Here's a log of a binutils-gdb build run; this is from Git commit -9939e1314f970c6ba568956148a518ac710a280a (2014-01-08) plus -[[!message-id "87vbxxhww4.fsf@kepler.schwinge.homeip.net"]], and -[[!message-id "8738kyi30l.fsf@kepler.schwinge.homeip.net"]], run on +c2853f3d99797a321c37948297441ca6021f719a (2014-02-14) plus +[[!message-id "87vbxxhww4.fsf@kepler.schwinge.homeip.net"]], +[[!message-id "8738kyi30l.fsf@kepler.schwinge.homeip.net"]], +[[!message-id "8761ofv62k.fsf@kepler.schwinge.homeip.net"]], +[[!message-id "1391759958-972-2-git-send-email-yao@codesourcery.com"]], +[[!message-id "1391759958-972-3-git-send-email-yao@codesourcery.com"]], run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C @@ -187,11 +190,11 @@ MIG-generated stub files; thus no `-Werror` until that is resolved ([[strict_aliasing]]). This takes up around 1.3 GiB, and needs roughly 17 min on kepler.SCHWINGE and -78 min on coulomb.SCHWINGE. +79 min on coulomb.SCHWINGE. @@ -283,26 +286,10 @@ min on coulomb.SCHWINGE. # Testsuite -Some change in -95e4302a8f872b3f68c4cf5af774ca1bde9d2c1a..b7bba0015567c096541d62f2637b9818b1634a59 -causes all gdb.gdb tests to regress from PASS to ERROR: - - Running [...]/gdb/testsuite/gdb.gdb/complaints.exp ... - -PASS: gdb.gdb/complaints.exp: breakpoint in captured_command_loop - -[...] - +ERROR: remote_download to host of [...]/gdb/testsuite/../../gdb/gdb to [...]/gdb/testsuite/gdb.gdb/xgdb: cp: cannot create regular file '[...]/gdb/testsuite/gdb.gdb/xgdb': No such file or directory - +ERROR: Couldn't load into [...]/gdb/testsuite/../../gdb/gdb. - +WARNING: Couldn't test self - -The gdb/testsuite/gdb.gdb directory does not exist/is no longer created; create -it manually: - - $ mkdir -p gdb/testsuite/gdb.gdb - $ make -k check 2>&1 | tee log_test [...] -This needs roughly 17 min on kepler.SCHWINGE and 120 min on coulomb.SCHWINGE. +This needs roughly 20 min on kepler.SCHWINGE and 140 min on coulomb.SCHWINGE. When running `make -k check 2>&1 | tee log_test`, at the end of the testsuite the `tee` process does not terminate if there are still stray leftover @@ -343,14 +330,6 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting weakness|performance/io_system/binutils_ld_64ksec]]), so assuming some system load variation, the testsuite's timeout may trigger. - * `FAIL: ELF weak [...]` - - [[I|tschwinge]] suppose this is due to us having an override w.r.t. weak - symbol handling in glibc, needed for our external [[/libpthread]]. TODO: - document properly. - This has now been fixed (thus, we now get XPASSes), and the XFAILs can be - removed. - * `FAIL: gas/i386/rept` (intermittently) Added in commit 06f1247c54126b9f1e6acb8ff8c7be35aec6f44c (2012-06-07) as @@ -875,8 +854,69 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting * `gdb.arch/i386-prologue.exp` - On coulomb.SCHWINGE, there are several FAILs, where there are, for example, - unexpected frames showing up in backtraces. TODO. + There are several FAILs, where there are unexpected frames showing up in + backtraces, for example. Earlier on, these just FAILed on + coulomb.SCHWINGE; since + 9939e1314f970c6ba568956148a518ac710a280a..c2853f3d99797a321c37948297441ca6021f719a + on kepler.SCHWINGE, too. TODO. + + * [[libgc|boehm_gc]] `GC_find_limit_with_bound` SIGSEGVs + + On coulomb.SCHWINGE, in + 9939e1314f970c6ba568956148a518ac710a280a..c2853f3d99797a321c37948297441ca6021f719a + several PASSes regressed to FAILs: + + Starting program: [...]/gdb/testsuite/gdb.gdb/xgdb -nw -nx -data-directory [...]/gdb/testsuite/../data-directory + [New Thread 13417.5] + + Program received signal SIGSEGV, Segmentation fault. + 0x0126b961 in GC_find_limit_with_bound () from /usr/lib/i386-gnu/libgc.so.1 + (gdb) FAIL: gdb.gdb/complaints.exp: run until breakpoint at captured_command_loop + WARNING: Couldn't test self + + Starting program: [...]/gdb/testsuite/gdb.gdb/xgdb -nw -nx -data-directory [...]/gdb/testsuite/../data-directory + [New Thread 13448.5] + + Program received signal SIGSEGV, Segmentation fault. + 0x0126b961 in GC_find_limit_with_bound () from /usr/lib/i386-gnu/libgc.so.1 + (gdb) FAIL: gdb.gdb/python-interrupts.exp: run until breakpoint at captured_command_loop + WARNING: Couldn't test self + + Starting program: [...]/gdb/testsuite/gdb.gdb/xgdb -nw -nx -data-directory [...]/gdb/testsuite/../data-directory + [New Thread 13464.3] + + Program received signal SIGSEGV, Segmentation fault. + 0x0126b961 in GC_find_limit_with_bound () from /usr/lib/i386-gnu/libgc.so.1 + (gdb) FAIL: gdb.gdb/python-selftest.exp: run until breakpoint at captured_command_loop + WARNING: Couldn't test self + + (gdb) PASS: gdb.gdb/selftest.exp: step into xmalloc call + continue + Continuing. + + Program received signal SIGSEGV, Segmentation fault. + 0x0126b961 in GC_find_limit_with_bound () from /usr/lib/i386-gnu/libgc.so.1 + (gdb) FAIL: gdb.gdb/selftest.exp: xgdb is at prompt + + These are all tests where GDB examines itself; being linked against libgc + (new dependency due to new Guile scripting support; all Guile scripting + tests PASS). So, probably some bad interaction between GDB and a debuggee + that is using libgc; maybe libgc is using SIGSEGV for internal signalling + purposes; see the `HEURISTIC2` discussion on [[boehm_gc]]. + + #0 0x0126b961 in GC_find_limit_with_bound () from /usr/lib/i386-gnu/libgc.so.1 + #1 0x0126ba2e in GC_find_limit () from /usr/lib/i386-gnu/libgc.so.1 + #2 0x0126bb15 in GC_get_stack_base () from /usr/lib/i386-gnu/libgc.so.1 + #3 0x011be0ec in scm_init_guile () from /usr/lib/libguile-2.0.so.22 + #4 0x081203ba in _initialize_guile () at ../../W._C._Handy/gdb/guile/guile.c:704 + #5 0x082dc94d in initialize_all_files () at init.c:291 + #6 0x082a3c7f in gdb_init (argv0=0x8563e90 "[...]/gdb/testsuite/gdb.gdb/xgdb") at ../../W._C._Handy/gdb/top.c:1822 + #7 0x081da3b8 in captured_main (data=0x1bff164) at ../../W._C._Handy/gdb/main.c:747 + #8 0x081d70e9 in catch_errors (func=func@entry=0x81da110 , func_args=func_args@entry=0x1bff164, errstring=errstring@entry=0x837a0e5 "", mask=mask@entry=RETURN_MASK_ALL) at ../../W._C._Handy/gdb/exceptions.c:524 + #9 0x081db277 in gdb_main (args=0x1bff164) at ../../W._C._Handy/gdb/main.c:1062 + #10 0x0809714b in main (argc=5, argv=0x1bff1f4) at ../../W._C._Handy/gdb/gdb.c:33 + + TODO. TODO. diff --git a/open_issues/boehm_gc.mdwn b/open_issues/boehm_gc.mdwn index 0a476d71..8cd2415a 100644 --- a/open_issues/boehm_gc.mdwn +++ b/open_issues/boehm_gc.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010, 2012, 2013 Free Software Foundation, +[[!meta copyright="Copyright © 2010, 2012, 2013, 2014 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -199,6 +199,9 @@ sources, and for `libatomic_ops` to the rely on glibc internals. Or we instead add support to parse [[`/proc/`|hurd/translator/procfs]] (can even use the same as Linux?), or use some other interface. [[!tag open_issue_glibc]] + This is also likely the issue causing the GDB [[!tag open_issue_gdb]] + `GC_find_limit_with_bound` SIGSEGV startup confusion described in + [[binutils]]. * `#define SIG_SUSPEND SIGUSR1`, `#define SIG_THR_RESTART SIGUSR2` diff --git a/toolchain/logs b/toolchain/logs index 4350ed2b..5b28a834 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 4350ed2b0150d38ca945a99cdc7d82b0c2ae564c +Subproject commit 5b28a834190873a31e5c7037f98f595b9e80364b -- cgit v1.2.3