From 6ff002a3ee341782567b71a42d0e7eb3be596480 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 29 Jul 2012 22:26:02 +0200 Subject: open_issues/glibc: 8958805c11c741d9211e20612c86271d906c9a0b (2012-07-28; 2012-06-30) --- open_issues/glibc.mdwn | 81 ++++++++++++------------ open_issues/glibc/t/tls.mdwn | 6 +- open_issues/glibc_madvise_vs_static_linking.mdwn | 2 +- open_issues/libpthread_glibc_nptl_testsuite.mdwn | 28 ++++++++ shortcuts.mdwn | 10 ++- toolchain/logs | 2 +- 6 files changed, 84 insertions(+), 45 deletions(-) create mode 100644 open_issues/libpthread_glibc_nptl_testsuite.mdwn diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn index e94a4f1f..31cafbfe 100644 --- a/open_issues/glibc.mdwn +++ b/open_issues/glibc.mdwn @@ -36,8 +36,8 @@ git log --reverse --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --cc ..sourc --> -Last reviewed up to the [[Git mirror's e80d6f94e19d17b91e3cd3ada7193cc88f621feb -(2012-04-05) sources|source_repositories/glibc]]. +Last reviewed up to the [[Git mirror's 56e49b714ecd32c72c334802b00e3d62008d98e3 +(2012-07-25) sources|source_repositories/glibc]]. * `t/hurdsig-fixes` @@ -47,7 +47,9 @@ Last reviewed up to the [[Git mirror's e80d6f94e19d17b91e3cd3ada7193cc88f621feb * `t/host-independency` - `libc-alpha` discussion/commit. GCC + [[!message-id "87bougerfb.fsf@kepler.schwinge.homeip.net"]], [[!message-id + "20120525202732.GA31088@intel.com"]], commit + 918b56067a444572f1c71b02f18255ae4540b043. [[!GCC_PR 53183]], GCC commit c05436a7e361b8040ee899266e15bea817212c37. * `t/sysvshm` @@ -122,7 +124,7 @@ Last reviewed up to the [[Git mirror's e80d6f94e19d17b91e3cd3ada7193cc88f621feb checking for i386_set_gdt in mach_i386.defs... yes checking whether i586-pc-gnu-mig supports the retcode keyword... yes - * `elf/stackguard-macros.h` + * `sysdeps/i386/stackguard-macros.h` See [[t/tls|t/tls]]. @@ -281,6 +283,7 @@ Last reviewed up to the [[Git mirror's e80d6f94e19d17b91e3cd3ada7193cc88f621feb * `io/fcntl.h [__USE_ATFILE]` Do we support `AT_FDCWD` et al.? + (80b4e5f3ef231702b24d44c33e8dceb70abb3a06.) * `MAP_POPULATE` (`mmap`, `sys/mman.h`) -- *Populate (prefault) pagetables.* @@ -294,16 +297,15 @@ Last reviewed up to the [[Git mirror's e80d6f94e19d17b91e3cd3ada7193cc88f621feb make_pages_present(addr, addr + len); return addr; - `t/mmap`. - - Is only advisory, so can worked around with `#define 0`. + Is only advisory, so can worked around with `#define MAP_POPULATE 0`, + 8069478040336a7de3461be275432493cc7e4c91. * `t/opendirat`: `opendirat` (`scandirat`, `scandirat64`) Need changes equivalent to c55fbd1ea768f9fdef34a01377702c0d72cbc213 + 14d96785125abee5e9a49a1c3037f35a581750bd. - * `madvise`, `MADV_DONTNEED` + * `madvise`, `MADV_DONTNEED`, `MADV_DONTDUMP`, `MADV_DODUMP` [[glibc_madvise_vs_static_linking]]. @@ -451,9 +453,6 @@ Last reviewed up to the [[Git mirror's e80d6f94e19d17b91e3cd3ada7193cc88f621feb * 7fb90fb89bbdf273ab7ab96517fe1b156cd7aee1 + 6fb2dde3f1aa3a1419cb6c2dfa53dd1d506722a4 -- `Fix Linux getcwd for long paths` - * [low] [[!taglink open_issue_libpthread]] - 5bdcc10322c488f53557440acf71623d8b313ab5 -- return `EAGAIN` instead of - `ENOMEM`. * f574184a0e4b6ed69a5d9a3234543fba6d2a7367 -- `Fix sched_setscheduler call in spawn implementation` * 3b85df27870a47ed1db84e948e37a5a50a178a92 + @@ -541,8 +540,7 @@ Last reviewed up to the [[Git mirror's e80d6f94e19d17b91e3cd3ada7193cc88f621feb . * [low] `conformtest`, 3134156779108fe8b46e0f4cd60d837572faaa93 + 4efeffc1d583597e4f52985b9747269e47b754e2 + - d94a4670800de6e8f088b8630ad5142866127980 -- takes 1.75 h (out of 2.75 h - total) on coulomb.SCHWINGE -- disable? Should probably mirror + d94a4670800de6e8f088b8630ad5142866127980 -- should probably mirror `bits/siginfo.h` changes. * [low] stack guard, 6c6a98c983c44b440ae66d2aa8f32529a9dd7bfe, [[!message-id "4F3BE241.9090409@mentor.com"]] -- anything needed for @@ -553,18 +551,26 @@ Last reviewed up to the [[Git mirror's e80d6f94e19d17b91e3cd3ada7193cc88f621feb "Pine.LNX.4.64.1203090206420.18868@digraph.polyomino.org.uk"]] 02a6f887cb3e2c048937111eb4cf150d397609de -- probably should do the same for the generic version as used by GNU Hurd. - * [log] CFI for `_start`, 6a1bd2a100c958d30bbfe8c9b8f9071d24b7c3f4, + * [low] CFI for `_start`, 6a1bd2a100c958d30bbfe8c9b8f9071d24b7c3f4, [[!message-id "20120316180551.GA6291@host2.jankratochvil.net"]] -- what about other architectures? + * `sendmmsg` usage, c030f70c8796c7743c3aa97d6beff3bd5b8dcd5d -- need a + `ENOSYS` stub, [[!message-id "87a9zubdm9.fsf@schwinge.name"]], + `t/sendmmsg`. + * `linkobj/libc.so`, 510bbf14b4f25fec8ee3a2d24de3f24bdbf84333 -- need to + adapt for (conditional?) Sun RPC reversion (if that was the original + cause for the patch)? + * [low] `Add __fsword_t and use it in bits/statfs.h`, + 3e5aef87d76cfa7354f2b0d82b96e59280720796, [[!message-id + "20120517134700.GA19046@intel.com"]] -- only updates one copy of + `bits/statfs.h`; update the others, too, for consistency. * *baseline* - * [high] `sendmmsg` usage, c030f70c8796c7743c3aa97d6beff3bd5b8dcd5d -- - need a `ENOSYS` stub. # Build Here's a log of a glibc build run; this is from our [[Git repository's -d7294bbed51242338c4e9c15e1ee74a763259faf (2012-06-21; 2012-03-28) ([[!message-id "878vfhdapq.fsf@schwinge.name"]] applied) +8958805c11c741d9211e20612c86271d906c9a0b (2012-07-28; 2012-06-30) sources|source_repositories/glibc]], run on coulomb.SCHWINGE. $ export LC_ALL=C @@ -577,7 +583,8 @@ This takes up around 500 MiB and needs roughly X min on kepler.SCHWINGE and 100 min on coulomb.SCHWINGE. -Last reviewed up to the [[Git mirror's 56e49b714ecd32c72c334802b00e3d62008d98e3 -(2012-07-25) sources|source_repositories/glibc]]. +Last reviewed up to the [[Git mirror's fc56c5bbc1a0d56b9b49171dd377c73c268ebcfd +(2012-07-28) sources|source_repositories/glibc]]. * `t/hurdsig-fixes` @@ -184,7 +184,8 @@ Last reviewed up to the [[Git mirror's 56e49b714ecd32c72c334802b00e3d62008d98e3 `AT_EMPTY_PATH`, `CLOCK_BOOTTIME`, `CLOCK_BOOTTIME_ALARM`, `CLOCK_REALTIME_ALARM`, `O_PATH`, - `PTRACE_*` (for example, cbff0d9689c4d68578b6a4f0a17807232506ea27), + `PTRACE_*` (for example, cbff0d9689c4d68578b6a4f0a17807232506ea27, + b1b2aaf8eb9eed301ea8f65b96844568ca017f8b), `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`, `sendmmsg`, @@ -570,7 +571,7 @@ Last reviewed up to the [[Git mirror's 56e49b714ecd32c72c334802b00e3d62008d98e3 # Build Here's a log of a glibc build run; this is from our [[Git repository's -8958805c11c741d9211e20612c86271d906c9a0b (2012-07-28; 2012-06-30) +cba1c83ad62a11347684a9daf349e659237a1741 (2012-07-29) sources|source_repositories/glibc]], run on coulomb.SCHWINGE. $ export LC_ALL=C @@ -843,7 +844,8 @@ There is quite a baseline of failures. Is not implemented; see above. In 8958805c11c741d9211e20612c86271d906c9a0b testing, `stdlib/bug-getcontext.out` now says: *Skipping test; no support - for FP exceptions.* + for FP exceptions.*, in cba1c83ad62a11347684a9daf349e659237a1741 testing, + it's back to the previous failure. * `elf/tst-unique3lib.so`, `elf/tst-unique3lib2.so`, `elf/tst-unique4lib.so` @@ -873,6 +875,10 @@ There is quite a baseline of failures. As of 8958805c11c741d9211e20612c86271d906c9a0b, this test now passes -- correct? + * `stdlib/tst-secure-getenv.out` + + Needs [[`/proc/self/exe`|hurd/translator/procfs/jkoenig/discussion]]. + ## OLD diff --git a/source_repositories/glibc.mdwn b/source_repositories/glibc.mdwn index fabd7cab..7ca89ae0 100644 --- a/source_repositories/glibc.mdwn +++ b/source_repositories/glibc.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 2012 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 @@ -91,3 +91,13 @@ Make `tschwinge/Roger_Whittaker` (the current branch) depend on it: 4 files changed, 20 insertions(+), 14 deletions(-) rename {nptl/sysdeps/pthread => sysdeps/gnu}/rt-unwind-resume.c (100%) rename {nptl/sysdeps/pthread => sysdeps/gnu}/unwind-resume.c (93%) + + +# Maintenance + +## Tags + +Occasionally push new tags from the sourceware repository to the Savannah one: + + $ git fetch sourceware + $ git tag | grep ^glibc- | sed 's%^%tag %' | xargs git push savannah diff --git a/toolchain/logs b/toolchain/logs index d3878230..476cb69c 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit d3878230df905bb9b85aa1548da7485f71c3efcd +Subproject commit 476cb69c0800097c4c6d2d1f31ff8042835a6ceb -- cgit v1.2.3 From 46375488ba648de505a5933f3b953e5f3573095b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 7 Aug 2012 23:31:21 +0200 Subject: * open_issues/packaging_libpthread: One issue fixed. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit hurd/libpthread.git, commit 549aba4335946c26f2701c2b43be0e6148d27c09 »Fix libpthread.so symlink«. --- open_issues/packaging_libpthread.mdwn | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/open_issues/packaging_libpthread.mdwn b/open_issues/packaging_libpthread.mdwn index 528e0b01..d22b7be0 100644 --- a/open_issues/packaging_libpthread.mdwn +++ b/open_issues/packaging_libpthread.mdwn @@ -168,15 +168,11 @@ License|/fdl]]."]]"""]] The libpthread in Debian glibc is hurd/libpthread.git:b428baaa85c0adca9ef4884c637f289a0ab5e2d6 but with 25260994c812050a5d7addf125cdc90c911ca5c1 »Store self in __thread variable - instead of threadvar« reverted (why?), and the following additional - change applied to Makefile: - ifeq ($(IN_GLIBC),yes) - $(inst_libdir)/libpthread.so: - $(objpfx)libpthread.so$(libpthread.so-version) \ - $(+force) - - ln -sf $(slibdir)/libpthread.so$(libpthread.so-version) - $@ - + ln -sf libpthread.so$(libpthread.so-version) $@ + instead of threadvar« reverted (why?), [...] + +..., and 549aba4335946c26f2701c2b43be0e6148d27c09 »Fix libpthread.so symlink« +cherry-picked. + tschwinge: is there any plan to merge libpthread.git in glibc.git upstream ? braunr, youpi: Has not yet been discussed with Roland, as far @@ -185,5 +181,3 @@ License|/fdl]]."]]"""]] libpthread.diff is supposed to be a verbatim copy of the repository and then there are a couple patches which don't (yet) make sense upstream - the slibdir change, however, is odd - it must be a leftover -- cgit v1.2.3 From a1aeddc112d4086d1873f4be17d623272c6f0eba Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 7 Aug 2012 23:33:51 +0200 Subject: * open_issues/packaging_libpthread: One issue fixed. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit hurd/libpthread.git, commit af7d78e726cb0d3248c461cfee27fe15121dacd1 »Rename ia32 sysdep directories to i386.«. --- open_issues/packaging_libpthread.mdwn | 30 +----------------------------- 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/open_issues/packaging_libpthread.mdwn b/open_issues/packaging_libpthread.mdwn index d22b7be0..be2ca2aa 100644 --- a/open_issues/packaging_libpthread.mdwn +++ b/open_issues/packaging_libpthread.mdwn @@ -93,7 +93,6 @@ License|/fdl]]."]]"""]] by anybody? they are half-finished (no __PTHREAD_SPIN_LOCK_INITIALIZER), and come in the way when building in glibc - also, any reason for using ia32 and not i386? glibc uses the latter pinotree: rid of pthread-stubs yes \o/ youpi: You mean sysdeps/mach/i386/machine-lock.h? No idea @@ -101,7 +100,7 @@ License|/fdl]]."]]"""]] I'm talking about libpthread not glibc Oh. - sysdeps/ia32/bits/spin-lock.h:# define + sysdeps/i386/bits/spin-lock.h:# define __PTHREAD_SPIN_LOCK_INITIALIZER ((__pthread_spinlock_t) 0) Anyway, no idea about that either. that one is meant to be used with the spin-lock.h just below @@ -128,33 +127,6 @@ License|/fdl]]."]]"""]] no-add-needed issue -## IRC, freenode, #hurd, 2012-04-27 - - youpi: wouldn't be the case to rename ia32 subdirs to i386 in - libpthread? - after all, Makefile hardcodes it, Makefile.am sets the variable - for it, and glibc expects i386 - I know, I've asked tschwinge about it - it's not urging anyway - right - - -## IRC, freenode, #hurd, 2012-07-21 - - tschwinge: btw, samuel suggested to rename in libpthread ia32 → - i386, to better fit with glibc - pinotree: Hmm, that'd somewhat break interopability with - Viengoos' use of libpthread. - how would it break with viengoos? - I assume it is using the i386 names. Hmm, no isn't it x86_64 - only? - I'll check. - does it use automake (with the Makefile.am in repo)? - I have no idea what the current branch arrangement is. - tschwinge: it looks like ia32 is hardcoded in Makefile and - Makefile.am - - ## IRC, freenode, #hurd, 2012-08-07 Also, the Savannah hurd/glibc.git one does not/not yet include -- cgit v1.2.3 From 8b03b6363c7abb2339c39589b4cd5134d3d6d70c Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 7 Aug 2012 23:56:17 +0200 Subject: * libpthread: Update. ... with information from thread starting at id:"87a9ybndxn.fsf@kepler.schwinge.homeip.net". --- libpthread.mdwn | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/libpthread.mdwn b/libpthread.mdwn index b31876b3..e74bbcb2 100644 --- a/libpthread.mdwn +++ b/libpthread.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 2012 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 @@ -20,9 +20,23 @@ License|/fdl]]."]]"""]] Porting libpthread to a specific architecture is non-trivial. -Our libpthread is currently used by / ported to the [[Hurd]] on [[GNU -Mach|microkernel/mach/gnumach]], some [[microkernel/L4]] variants, and -[[microkernel/Viengoos]]. +Our libpthread is currently used by/ported to the [[Hurd]] on [[GNU +Mach|microkernel/mach/gnumach]], and [[microkernel/Viengoos]]. + + +# History + +There has been a libpthread port for Hurd on L4 use (working directly on L4: no +further OS personality support required), which was dead and has been removed +in commit a0bca9895bca67591127680860077b2658830e96. This had been superseded +by a [[microkernel/Viengoos]] port, which has its own branches: +`master-viengoos` (an implementation of Viengoos that runs on L4) and its +successor, `master-viengoos-on-bare-metal` (runs directly on x86-64 (and it a +bit more advanced) and provides everything that `master-viengoos` does and +more). + +There has also been an incomplete and unmaintained PowerPC port which has been +removed in commit a5387f6a45d6b3f2b381d861f5c288b79da6204f. # Open Issues -- cgit v1.2.3 From 38be4a505093e5f7294a010ad9d88548ca6fc357 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 8 Aug 2012 00:12:32 +0200 Subject: * open_issues/libpthread_1fcd93fd3c733eb19bcad8d03e65f13ec4b0e998..master-viengoos-on-bare-metal: New page. --- ...13ec4b0e998..master-viengoos-on-bare-metal.mdwn | 849 +++++++++++++++++++++ 1 file changed, 849 insertions(+) create mode 100644 open_issues/libpthread_1fcd93fd3c733eb19bcad8d03e65f13ec4b0e998..master-viengoos-on-bare-metal.mdwn diff --git a/open_issues/libpthread_1fcd93fd3c733eb19bcad8d03e65f13ec4b0e998..master-viengoos-on-bare-metal.mdwn b/open_issues/libpthread_1fcd93fd3c733eb19bcad8d03e65f13ec4b0e998..master-viengoos-on-bare-metal.mdwn new file mode 100644 index 00000000..4396cf59 --- /dev/null +++ b/open_issues/libpthread_1fcd93fd3c733eb19bcad8d03e65f13ec4b0e998..master-viengoos-on-bare-metal.mdwn @@ -0,0 +1,849 @@ +[[!meta copyright="Copyright © 2012 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]]."]]"""]] + +[[!tag open_issue_libpthread]] + +Things found in a `git diff +1fcd93fd3c733eb19bcad8d03e65f13ec4b0e998..master-viengoos-on-bare-metal` that +are not specific to L4 or Viengoos, and may be worth having on master, too. + + +# `__pthread_alloc` init with `malloc` or `calloc` + + diff --git a/pthread/pt-alloc.c b/pthread/pt-alloc.c + index 6af2da9..c63801f 100644 + --- a/pthread/pt-alloc.c + +++ b/pthread/pt-alloc.c + @@ -123,7 +123,7 @@ __pthread_alloc (struct __pthread **pthread) + } + + /* Allocate a new thread structure. */ + - new = malloc (sizeof (struct __pthread)); + + new = calloc (sizeof (struct __pthread), 1); + if (new == NULL) + return ENOMEM; + + + +# `atomic.h` + +Later on master, commit 608a12659f15d57abf42a972c1e56c6a24cfe244: `Rename +bits/atomic.h to bits/pt-atomic.h`. + + diff --git a/pthread/pt-create.c b/pthread/pt-create.c + index 8f62b78..504cacc 100644 + --- a/pthread/pt-create.c + +++ b/pthread/pt-create.c + @@ -22,7 +22,7 @@ + #include + #include + + -#include + +#include + + #include + + @@ -33,7 +33,7 @@ + /* The total number of pthreads currently active. This is defined + here since it would be really stupid to have a threads-using + program that doesn't call `pthread_create'. */ + -__atomic_t __pthread_total; + +atomic_fast32_t __pthread_total; + + + /* The entry-point for new threads. */ + @@ -163,7 +163,7 @@ __pthread_create_internal (struct __pthread **thread, + the number of threads from within the new thread isn't an option + since this thread might return and call `pthread_exit' before the + new thread runs. */ + - __atomic_inc (&__pthread_total); + + atomic_increment (&__pthread_total); + + /* Store a pointer to this thread in the thread ID lookup table. We + could use __thread_setid, however, we only lock for reading as no + @@ -190,7 +190,7 @@ __pthread_create_internal (struct __pthread **thread, + + failed_starting: + __pthread_setid (pthread->thread, NULL); + - __atomic_dec (&__pthread_total); + + atomic_decrement (&__pthread_total); + failed_sigstate: + __pthread_sigstate_destroy (pthread); + failed_setup: + diff --git a/pthread/pt-exit.c b/pthread/pt-exit.c + index 5fe0ba8..68c56d7 100644 + --- a/pthread/pt-exit.c + +++ b/pthread/pt-exit.c + @@ -24,7 +24,7 @@ + + #include + + -#include + +#include + + + /* Terminate the current thread and make STATUS available to any + @@ -57,7 +57,7 @@ pthread_exit (void *status) + + /* Decrease the number of threads. We use an atomic operation to + make sure that only the last thread calls `exit'. */ + - if (__atomic_dec_and_test (&__pthread_total)) + + if (atomic_decrement_and_test (&__pthread_total)) + /* We are the last thread. */ + exit (0); + + diff --git a/pthread/pt-internal.h b/pthread/pt-internal.h + index cb441d0..986ec6b 100644 + --- a/pthread/pt-internal.h + +++ b/pthread/pt-internal.h + @@ -26,13 +26,15 @@ + #include + #include + + -#include + +#include + [...] + @@ -136,7 +144,7 @@ __pthread_dequeue (struct __pthread *thread) + ) + + /* The total number of threads currently active. */ + -extern __atomic_t __pthread_total; + +extern atomic_fast32_t __pthread_total; + + /* The total number of thread IDs currently in use, or on the list of + available thread IDs. */ + diff --git a/sysdeps/ia32/bits/atomic.h b/sysdeps/ia32/bits/atomic.h + deleted file mode 100644 + index 0dfc1f6..0000000 + --- a/sysdeps/ia32/bits/atomic.h + +++ /dev/null + @@ -1,66 +0,0 @@ + -/* Atomic operations. i386 version. + - Copyright (C) 2000 Free Software Foundation, Inc. + - This file is part of the GNU C Library. + - + - The GNU C Library is free software; you can redistribute it and/or + - modify it under the terms of the GNU Library General Public License as + - published by the Free Software Foundation; either version 2 of the + - License, or (at your option) any later version. + - + - The GNU C Library is distributed in the hope that it will be useful, + - but WITHOUT ANY WARRANTY; without even the implied warranty of + - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + - Library General Public License for more details. + - + - You should have received a copy of the GNU Library General Public + - License along with the GNU C Library; see the file COPYING.LIB. If not, + - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + - Boston, MA 02111-1307, USA. */ + - + -#ifndef _BITS_ATOMIC_H + -#define _BITS_ATOMIC_H 1 + - + -typedef __volatile int __atomic_t; + - + -static inline void + -__atomic_inc (__atomic_t *__var) + -{ + - __asm__ __volatile ("lock; incl %0" : "=m" (*__var) : "m" (*__var)); + -} + - + -static inline void + -__atomic_dec (__atomic_t *__var) + -{ + - __asm__ __volatile ("lock; decl %0" : "=m" (*__var) : "m" (*__var)); + -} + - + -static inline int + -__atomic_dec_and_test (__atomic_t *__var) + -{ + - unsigned char __ret; + - + - __asm__ __volatile ("lock; decl %0; sete %1" + - : "=m" (*__var), "=qm" (__ret) : "m" (*__var)); + - return __ret != 0; + -} + - + -/* We assume that an __atomicptr_t is only used for pointers to + - word-aligned objects, and use the lowest bit for a simple lock. */ + -typedef __volatile int * __atomicptr_t; + - + -/* Actually we don't implement that yet, and assume that we run on + - something that has the i486 instruction set. */ + -static inline int + -__atomicptr_compare_and_swap (__atomicptr_t *__ptr, void *__oldval, + - void * __newval) + -{ + - char __ret; + - int __dummy; + - + - __asm__ __volatile ("lock; cmpxchgl %3, %1; sete %0" + - : "=q" (__ret), "=m" (*__ptr), "=a" (__dummy) + - : "r" (__newval), "m" (*__ptr), "a" (__oldval)); + - return __ret; + -} + - + -#endif + + +# Memory Barries + + diff --git a/sysdeps/generic/bits/memory.h b/sysdeps/generic/bits/memory.h + new file mode 100644 + index 0000000..7b88a7e + --- /dev/null + +++ b/sysdeps/generic/bits/memory.h + @@ -0,0 +1,36 @@ + +/* Memory barrier operations. Generic version. + + Copyright (C) 2008 Free Software Foundation, Inc. + + This file is part of the GNU Hurd. + + + + The GNU Hurd is free software; you can redistribute it and/or + + modify it under the terms of the GNU General Public License as + + published by the Free Software Foundation; either version 3 of the + + License, or (at your option) any later version. + + + + The GNU Hurd is distributed in the hope that it will be useful, but + + WITHOUT ANY WARRANTY; without even the implied warranty of + + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + + General Public License for more details. + + + + You should have received a copy of the GNU General Public License + + along with this program. If not, see + + . */ + + + +#ifndef _BITS_MEMORY_H + +#define _BITS_MEMORY_H 1 + + + +/* Prevent read and write reordering across this function. */ + +static inline void + +__memory_barrier (void) + +{ + + /* Any lock'ed instruction will do. */ + + __sync_synchronize (); + +} + + + +/* Prevent read reordering across this function. */ + +#define __memory_read_barrier __memory_barrier + + + +/* Prevent write reordering across this function. */ + +#define __memory_write_barrier __memory_barrier + + + +#endif + + +# Spin Locks + + diff --git a/sysdeps/generic/bits/spin-lock-inline.h b/sysdeps/generic/bits/spin-lock-inline.h + new file mode 100644 + index 0000000..6c3e06e + --- /dev/null + +++ b/sysdeps/generic/bits/spin-lock-inline.h + @@ -0,0 +1,99 @@ + +/* Machine-specific definitions for spin locks. Generic version. + + Copyright (C) 2000, 2005, 2008 Free Software Foundation, Inc. + + This file is part of the GNU C Library. + + + + The GNU C Library is free software; you can redistribute it and/or + + modify it under the terms of the GNU Library General Public License as + + published by the Free Software Foundation; either version 2 of the + + License, or (at your option) any later version. + + + + The GNU C Library is distributed in the hope that it will be useful, + + but WITHOUT ANY WARRANTY; without even the implied warranty of + + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + + Library General Public License for more details. + + + + You should have received a copy of the GNU Library General Public + + License along with the GNU C Library; see the file COPYING.LIB. If not, + + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + + Boston, MA 02111-1307, USA. */ + + + +/* + + * Never include this file directly; use or instead. + + */ + + + +#ifndef _BITS_SPIN_LOCK_INLINE_H + +#define _BITS_SPIN_LOCK_INLINE_H 1 + + + +#include + +#include + + + +__BEGIN_DECLS + + + +#if defined __USE_EXTERN_INLINES || defined _FORCE_INLINES + + + +# if !defined (__EBUSY) || !defined (__EINVAL) + +# include + +# ifndef __EBUSY + +# define __EBUSY EBUSY + +# endif + +# ifndef __EINVAL + +# define __EINVAL EINVAL + +# endif + +# endif + + + +# ifndef __PT_SPIN_INLINE + +# define __PT_SPIN_INLINE __extern_inline + +# endif + + + +__PT_SPIN_INLINE int __pthread_spin_destroy (__pthread_spinlock_t *__lock); + + + +__PT_SPIN_INLINE int + +__pthread_spin_destroy (__pthread_spinlock_t *__lock) + +{ + + return 0; + +} + + + +__PT_SPIN_INLINE int __pthread_spin_init (__pthread_spinlock_t *__lock, + + int __pshared); + + + +__PT_SPIN_INLINE int + +__pthread_spin_init (__pthread_spinlock_t *__lock, int __pshared) + +{ + + *__lock = __SPIN_LOCK_INITIALIZER; + + return 0; + +} + + + +__PT_SPIN_INLINE int __pthread_spin_trylock (__pthread_spinlock_t *__lock); + + + +__PT_SPIN_INLINE int + +__pthread_spin_trylock (__pthread_spinlock_t *__lock) + +{ + + int __locked = __sync_val_compare_and_swap (__lock, 0, 1); + + return __locked ? __EBUSY : 0; + +} + + + +__extern_inline int __pthread_spin_lock (__pthread_spinlock_t *__lock); + +extern int _pthread_spin_lock (__pthread_spinlock_t *__lock); + + + +__extern_inline int + +__pthread_spin_lock (__pthread_spinlock_t *__lock) + +{ + + if (__pthread_spin_trylock (__lock)) + + return _pthread_spin_lock (__lock); + + return 0; + +} + + + +__PT_SPIN_INLINE int __pthread_spin_unlock (__pthread_spinlock_t *__lock); + + + +__PT_SPIN_INLINE int + +__pthread_spin_unlock (__pthread_spinlock_t *__lock) + +{ + + int __locked = __sync_val_compare_and_swap (__lock, 1, 0); + + return __locked ? 0 : __EINVAL; + +} + + + +#endif /* Use extern inlines or force inlines. */ + + + +__END_DECLS + + + +#endif /* bits/spin-lock.h */ + diff --git a/sysdeps/l4/bits/pthread-np.h b/sysdeps/generic/bits/spin-lock.h + similarity index 67% + rename from sysdeps/l4/bits/pthread-np.h + rename to sysdeps/generic/bits/spin-lock.h + index 6a02bdc..c2ba332 100644 + --- a/sysdeps/l4/bits/pthread-np.h + +++ b/sysdeps/generic/bits/spin-lock.h + @@ -1,5 +1,5 @@ + -/* Non-portable functions. L4 version. + - Copyright (C) 2003, 2007 Free Software Foundation, Inc. + +/* Machine-specific definitions for spin locks. Generic version. + + Copyright (C) 2000, 2005, 2008 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + @@ -21,15 +21,19 @@ + * Never include this file directly; use or instead. + */ + + -#ifndef _BITS_PTHREAD_NP_H + -#define _BITS_PTHREAD_NP_H 1 + +#ifndef _BITS_SPIN_LOCK_H + +#define _BITS_SPIN_LOCK_H 1 + + -#include + +#include + + -/* Add the thread TID to the internal kernel thread pool. */ + -extern int pthread_pool_add_np (l4_thread_id_t tid); + +__BEGIN_DECLS + + -/* Get the first thread from the pool. */ + -extern l4_thread_id_t pthread_pool_get_np (void); + +/* The type of a spin lock object. */ + +typedef __volatile int __pthread_spinlock_t; + + -#endif /* bits/pthread-np.h */ + +/* Initializer for a spin lock object. */ + +# define __SPIN_LOCK_INITIALIZER ((__pthread_spinlock_t) 0) + + + +__END_DECLS + + + +#endif /* bits/spin-lock.h */ + + +# Signal Stuff + + diff --git a/pthread/pt-internal.h b/pthread/pt-internal.h + index cb441d0..986ec6b 100644 + --- a/pthread/pt-internal.h + +++ b/pthread/pt-internal.h + @@ -26,13 +26,15 @@ + [...] + #include + #include + + +#include + + + /* Thread state. */ + enum pthread_state + { + @@ -54,6 +56,10 @@ enum pthread_state + # define PTHREAD_SYSDEP_MEMBERS + #endif + + +#ifndef PTHREAD_SIGNAL_MEMBERS + +# define PTHREAD_SIGNAL_MEMBERS + +#endif + + + /* This structure describes a POSIX thread. */ + struct __pthread + { + @@ -89,6 +95,8 @@ struct __pthread + + PTHREAD_SYSDEP_MEMBERS + + + PTHREAD_SIGNAL_MEMBERS + + + struct __pthread *next, **prevp; + }; + + diff --git a/signal/kill.c b/signal/kill.c + index 27c9c32..c281640 100644 + --- a/signal/kill.c + +++ b/signal/kill.c + @@ -20,6 +20,8 @@ + + #include "sig-internal.h" + + +#include + + + int + kill (pid_t pid, int signo) + { + @@ -65,6 +67,12 @@ kill (pid_t pid, int signo) + current thread has blocked the signal, the correct thing to do is + to iterate over all the other threads and find on that hasn't + blocked it. */ + + + + extern int __pthread_num_threads; + + if (__pthread_num_threads == 0) + + panic ("signal %d received before pthread library is able to handle it", + + signo); + + + return pthread_kill (pthread_self (), signo); + } + + diff --git a/signal/pt-kill-siginfo-np.c b/signal/pt-kill-siginfo-np.c + index 9bdf6cc..35642c3 100644 + --- a/signal/pt-kill-siginfo-np.c + +++ b/signal/pt-kill-siginfo-np.c + @@ -75,7 +75,8 @@ pthread_kill_siginfo_np (pthread_t tid, siginfo_t si) + || (ss->stack.ss_flags & SS_DISABLE) + || (ss->stack.ss_flags & SS_ONSTACK))) + /* We are sending a signal to ourself and we don't use an + - alternate stack. */ + + alternate stack. (Recall: SA_ONSTACK means use the alt + + stack.) */ + signal_dispatch (ss, &si); + else + signal_dispatch_lowlevel (ss, tid, si); + diff --git a/signal/signal-dispatch.c b/signal/signal-dispatch.c + index 40440b7..6fafcc1 100644 + --- a/signal/signal-dispatch.c + +++ b/signal/signal-dispatch.c + @@ -20,6 +20,8 @@ + + #include "sig-internal.h" + + +#include + + + /* This is the signal handler entry point. A thread is forced into + this state when it receives a signal. We need to save the thread's + state and then invoke the high-level signal dispatcher. SS->LOCK + @@ -107,7 +109,7 @@ signal_dispatch (struct signal_state *ss, siginfo_t *si) + sigset_t pending = ~ss->blocked & ss->pending; + if (! pending) + pending = ~ss->blocked & process_pending; + - signo = l4_lsb64 (pending); + + signo = vg_lsb64 (pending); + } + while (signo); + + diff --git a/signal/sigwaiter.c b/signal/sigwaiter.c + index 8d041ac..adc05ca 100644 + --- a/signal/sigwaiter.c + +++ b/signal/sigwaiter.c + @@ -20,7 +20,7 @@ + + #include "sig-internal.h" + + -#include + +#include + + struct sigwaiter *sigwaiters; + + diff --git a/signal/sigwaitinfo.c b/signal/sigwaitinfo.c + index 1b47079..dea3ef4 100644 + --- a/signal/sigwaitinfo.c + +++ b/signal/sigwaitinfo.c + @@ -43,7 +43,7 @@ sigwaitinfo (const sigset_t *restrict set, siginfo_t *restrict info) + + assert (extant); + + - int signo = l4_msb64 (extant); + + int signo = vg_msb64 (extant); + + if (info) + { + + +# `ALWAYS_TRACK_MUTEX_OWNER` + + diff --git a/sysdeps/generic/pt-mutex-timedlock.c b/sysdeps/generic/pt-mutex-timedlock.c + index ee43219..265a453 100644 + --- a/sysdeps/generic/pt-mutex-timedlock.c + +++ b/sysdeps/generic/pt-mutex-timedlock.c + @@ -36,7 +36,6 @@ __pthread_mutex_timedlock_internal (struct __pthread_mutex *mutex, + if (__pthread_spin_trylock (&mutex->__held) == 0) + /* Successfully acquired the lock. */ + { + -#ifdef ALWAYS_TRACK_MUTEX_OWNER + #ifndef NDEBUG + self = _pthread_self (); + if (self) + @@ -48,7 +47,6 @@ __pthread_mutex_timedlock_internal (struct __pthread_mutex *mutex, + mutex->owner = _pthread_self (); + } + #endif + -#endif + + if (mutex->attr) + switch (mutex->attr->mutex_type) + @@ -75,16 +73,14 @@ __pthread_mutex_timedlock_internal (struct __pthread_mutex *mutex, + self = _pthread_self (); + assert (self); + + - if (! mutex->attr || mutex->attr->mutex_type == PTHREAD_MUTEX_NORMAL) + - { + -#if defined(ALWAYS_TRACK_MUTEX_OWNER) + - assert (mutex->owner != self); + -#endif + - } + - else + + if (mutex->attr) + { + switch (mutex->attr->mutex_type) + { + + case PTHREAD_MUTEX_NORMAL: + + assert (mutex->owner != self); + + break; + + + case PTHREAD_MUTEX_ERRORCHECK: + if (mutex->owner == self) + { + @@ -106,10 +102,9 @@ __pthread_mutex_timedlock_internal (struct __pthread_mutex *mutex, + LOSE; + } + } + + else + + assert (mutex->owner != self); + + -#if !defined(ALWAYS_TRACK_MUTEX_OWNER) + - if (mutex->attr && mutex->attr->mutex_type != PTHREAD_MUTEX_NORMAL) + -#endif + assert (mutex->owner); + + if (abstime && (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)) + @@ -146,12 +141,9 @@ __pthread_mutex_timedlock_internal (struct __pthread_mutex *mutex, + else + __pthread_block (self); + + -#if !defined(ALWAYS_TRACK_MUTEX_OWNER) + - if (mutex->attr && mutex->attr->mutex_type != PTHREAD_MUTEX_NORMAL) + -#endif + - { + +#ifndef NDEBUG + assert (mutex->owner == self); + - } + +#endif + + if (mutex->attr) + switch (mutex->attr->mutex_type) + diff --git a/sysdeps/generic/pt-mutex-transfer-np.c b/sysdeps/generic/pt-mutex-transfer-np.c + index 7796ac4..bcb809d 100644 + --- a/sysdeps/generic/pt-mutex-transfer-np.c + +++ b/sysdeps/generic/pt-mutex-transfer-np.c + @@ -45,12 +45,7 @@ __pthread_mutex_transfer_np (struct __pthread_mutex *mutex, pthread_t tid) + } + + #ifndef NDEBUG + -# if !defined(ALWAYS_TRACK_MUTEX_OWNER) + - if (mutex->attr && mutex->attr->mutex_type != PTHREAD_MUTEX_NORMAL) + -# endif + - { + mutex->owner = thread; + - } + #endif + + return 0; + diff --git a/sysdeps/generic/pt-mutex-unlock.c b/sysdeps/generic/pt-mutex-unlock.c + index 7645fd4..f299750 100644 + --- a/sysdeps/generic/pt-mutex-unlock.c + +++ b/sysdeps/generic/pt-mutex-unlock.c + @@ -33,16 +33,19 @@ __pthread_mutex_unlock (pthread_mutex_t *mutex) + + if (! mutex->attr || mutex->attr->mutex_type == PTHREAD_MUTEX_NORMAL) + { + -#if defined(ALWAYS_TRACK_MUTEX_OWNER) + # ifndef NDEBUG + if (_pthread_self ()) + { + assert (mutex->owner); + - assert (mutex->owner == _pthread_self ()); + + assertx (mutex->owner == _pthread_self (), + + "%p("VG_THREAD_ID_FMT") != %p("VG_THREAD_ID_FMT")", + + mutex->owner, + + ((struct __pthread *) mutex->owner)->threadid, + + _pthread_self (), + + _pthread_self ()->threadid); + mutex->owner = NULL; + } + # endif + -#endif + } + else + switch (mutex->attr->mutex_type) + @@ -81,12 +84,7 @@ __pthread_mutex_unlock (pthread_mutex_t *mutex) + __pthread_dequeue (wakeup); + + #ifndef NDEBUG + -# if !defined (ALWAYS_TRACK_MUTEX_OWNER) + - if (mutex->attr && mutex->attr->mutex_type != PTHREAD_MUTEX_NORMAL) + -# endif + - { + mutex->owner = wakeup; + - } + #endif + + /* We do not unlock MUTEX->held: we are transferring the ownership + + +# `t/fix_have_kernel_resources` + +See topic branch of that name. + + diff --git a/sysdeps/mach/hurd/pt-sysdep.h b/sysdeps/mach/hurd/pt-sysdep.h + index f14a136..83bad96 100644 + --- a/sysdeps/mach/hurd/pt-sysdep.h + +++ b/sysdeps/mach/hurd/pt-sysdep.h + @@ -1,5 +1,5 @@ + /* Internal defenitions for pthreads library. + - Copyright (C) 2000, 2002, 2008 Free Software Foundation, Inc. + + Copyright (C) 2000, 2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + @@ -32,8 +32,7 @@ + + #define PTHREAD_SYSDEP_MEMBERS \ + thread_t kernel_thread; \ + - mach_msg_header_t wakeupmsg; \ + - int have_kernel_resources; + + mach_msg_header_t wakeupmsg; + + #define _HURD_THREADVAR_THREAD _HURD_THREADVAR_DYNAMIC_USER + + diff --git a/sysdeps/mach/pt-thread-alloc.c b/sysdeps/mach/pt-thread-alloc.c + index 3d7c046..1acba98 100644 + --- a/sysdeps/mach/pt-thread-alloc.c + +++ b/sysdeps/mach/pt-thread-alloc.c + @@ -1,5 +1,5 @@ + /* Start thread. Mach version. + - Copyright (C) 2000, 2002, 2005, 2008 Free Software Foundation, Inc. + + Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + @@ -63,9 +63,6 @@ create_wakeupmsg (struct __pthread *thread) + int + __pthread_thread_alloc (struct __pthread *thread) + { + - if (thread->have_kernel_resources) + - return 0; + - + error_t err; + + err = create_wakeupmsg (thread); + @@ -100,7 +97,5 @@ __pthread_thread_alloc (struct __pthread *thread) + return EAGAIN; + } + + - thread->have_kernel_resources = 1; + - + return 0; + } + + +# Miscellaneous + + diff --git a/Makefile b/Makefile + index 04dfb26..a4c0c52 100644 + --- a/Makefile + +++ b/Makefile + @@ -71,7 +71,6 @@ SRCS := pt-attr.c pt-attr-destroy.c pt-attr-getdetachstate.c \ + pt-mutex-init.c pt-mutex-destroy.c \ + pt-mutex-lock.c pt-mutex-trylock.c pt-mutex-timedlock.c \ + pt-mutex-unlock.c \ + - pt-mutex-transfer-np.c \ + pt-mutex-getprioceiling.c pt-mutex-setprioceiling.c \ + \ + pt-rwlock-attr.c \ + @@ -100,7 +99,6 @@ SRCS := pt-attr.c pt-attr-destroy.c pt-attr-getdetachstate.c \ + pt-thread-dealloc.c \ + pt-thread-start.c \ + pt-thread-halt.c \ + - pt-startup.c \ + \ + pt-getconcurrency.c pt-setconcurrency.c \ + \ + @@ -143,7 +141,6 @@ sysdeps_headers = \ + semaphore.h \ + \ + bits/pthread.h \ + - bits/pthread-np.h \ + bits/mutex.h \ + bits/condition.h \ + bits/condition-attr.h \ + diff --git a/Makefile.am b/Makefile.am + index e59c946..e73d8d6 100644 + --- a/Makefile.am + +++ b/Makefile.am + @@ -20,17 +20,18 @@ + if ARCH_IA32 + arch=ia32 + endif + +if ARCH_X86_64 + + arch=x86_64 + +endif + if ARCH_POWERPC + arch=powerpc + endif + + # The source files are scattered over several directories. Add + # all these directories to the vpath. + -SYSDEP_PATH = $(srcdir)/sysdeps/l4/hurd/${arch} \ + - $(srcdir)/sysdeps/l4/${arch} \ + +SYSDEP_PATH = $(srcdir)/sysdeps/viengoos/${arch} \ + $(srcdir)/sysdeps/${arch} \ + - $(srcdir)/sysdeps/l4/hurd \ + - $(srcdir)/sysdeps/l4 \ + + $(srcdir)/sysdeps/viengoos \ + $(srcdir)/sysdeps/hurd \ + $(srcdir)/sysdeps/generic \ + $(srcdir)/sysdeps/posix \ + @@ -68,7 +69,6 @@ libpthread_a_SOURCES = pt-attr.c pt-attr-destroy.c pt-attr-getdetachstate.c \ + pt-alloc.c \ + pt-create.c \ + pt-getattr.c \ + - pt-pool-np.c \ + pt-equal.c \ + pt-dealloc.c \ + pt-detach.c \ + diff --git a/headers.m4 b/headers.m4 + index 5a58b9b..7c73cf2 100644 + --- a/headers.m4 + +++ b/headers.m4 + @@ -14,10 +14,9 @@ AC_CONFIG_LINKS([ + sysroot/include/pthread.h:libpthread/include/pthread.h + sysroot/include/pthread/pthread.h:libpthread/include/pthread/pthread.h + sysroot/include/pthread/pthreadtypes.h:libpthread/include/pthread/pthreadtypes.h + - sysroot/include/bits/memory.h:libpthread/sysdeps/${arch}/bits/memory.h + - sysroot/include/bits/spin-lock.h:libpthread/sysdeps/${arch}/bits/spin-lock.h + - sysroot/include/bits/spin-lock-inline.h:libpthread/sysdeps/${arch}/bits/spin-lock-inline.h + - sysroot/include/bits/pthreadtypes.h:libpthread/sysdeps/generic/bits/pthreadtypes.h + + sysroot/include/bits/memory.h:libpthread/sysdeps/generic/bits/memory.h + + sysroot/include/bits/spin-lock.h:libpthread/sysdeps/generic/bits/spin-lock.h + + sysroot/include/bits/spin-lock-inline.h:libpthread/sysdeps/generic/bits/spin-lock-inline.h + sysroot/include/bits/barrier-attr.h:libpthread/sysdeps/generic/bits/barrier-attr.h + sysroot/include/bits/barrier.h:libpthread/sysdeps/generic/bits/barrier.h + sysroot/include/bits/cancelation.h:libpthread/sysdeps/generic/bits/cancelation.h + @@ -30,9 +29,8 @@ AC_CONFIG_LINKS([ + sysroot/include/bits/rwlock-attr.h:libpthread/sysdeps/generic/bits/rwlock-attr.h + sysroot/include/bits/rwlock.h:libpthread/sysdeps/generic/bits/rwlock.h + sysroot/include/bits/thread-attr.h:libpthread/sysdeps/generic/bits/thread-attr.h + - sysroot/include/bits/thread-barrier.h:libpthread/sysdeps/generic/bits/thread-barrier.h + sysroot/include/bits/thread-specific.h:libpthread/sysdeps/generic/bits/thread-specific.h + - sysroot/include/bits/pthread-np.h:libpthread/sysdeps/l4/hurd/bits/pthread-np.h + + sysroot/include/bits/pthread-np.h:libpthread/sysdeps/viengoos/bits/pthread-np.h + sysroot/include/semaphore.h:libpthread/include/semaphore.h + sysroot/include/bits/semaphore.h:libpthread/sysdeps/generic/bits/semaphore.h + sysroot/include/signal.h:libpthread/signal/signal.h + @@ -41,5 +39,5 @@ AC_CONFIG_LINKS([ + AC_CONFIG_COMMANDS_POST([ + mkdir -p sysroot/lib libpthread && + ln -sf ../../libpthread/libpthread.a sysroot/lib/ && + - touch libpthread/libpthread.a + + echo '/* This file intentionally left blank. */' >libpthread/libpthread.a + ]) + diff --git a/sysdeps/hurd/pt-setspecific.c b/sysdeps/hurd/pt-setspecific.c + index 89ca4d7..d2d1157 100644 + --- a/sysdeps/hurd/pt-setspecific.c + +++ b/sysdeps/hurd/pt-setspecific.c + @@ -1,5 +1,5 @@ + /* pthread_setspecific. Generic version. + - Copyright (C) 2002 Free Software Foundation, Inc. + + Copyright (C) 2002, 2008 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + @@ -30,7 +30,8 @@ pthread_setspecific (pthread_key_t key, const void *value) + + if (! self->thread_specifics) + { + - err = hurd_ihash_create (&self->thread_specifics, HURD_IHASH_NO_LOCP); + + err = hurd_ihash_create (&self->thread_specifics, false, + + HURD_IHASH_NO_LOCP); + if (err) + return ENOMEM; + } + diff --git a/sysdeps/mach/pt-thread-halt.c b/sysdeps/mach/pt-thread-halt.c + index 973cde1..9f86024 100644 + --- a/sysdeps/mach/pt-thread-halt.c + +++ b/sysdeps/mach/pt-thread-halt.c + @@ -30,8 +30,14 @@ + being halted, thus the last action should be halting the thread + itself. */ + void + -__pthread_thread_halt (struct __pthread *thread) + +__pthread_thread_halt (struct __pthread *thread, int need_dealloc) + { + - error_t err = __thread_terminate (thread->kernel_thread); + + error_t err; + + thread_t tid = thread->kernel_thread; + + + + if (need_dealloc) + + __pthread_dealloc (thread); + + + + err = __thread_terminate (tid); + assert_perror (err); + } -- cgit v1.2.3 From 3068f8b26e731b03931eb2dd8ef5a623a8f9c19a Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 29 Aug 2012 22:28:51 +0200 Subject: open_issues/binutils: New process tool; e1104996559067c40207c803ab1a5847a4a05145 (2012-06-07) Configure with support for sysroots. --- open_issues/binutils.mdwn | 22 +++++++++------------- toolchain/logs | 2 +- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/open_issues/binutils.mdwn b/open_issues/binutils.mdwn index 8d6b3a94..eec5154f 100644 --- a/open_issues/binutils.mdwn +++ b/open_issues/binutils.mdwn @@ -123,20 +123,22 @@ sources|source_repositories/binutils]], run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C - $ ../master/configure --prefix="$PWD".install SHELL=/bin/dash CC=gcc-4.6 CXX=g++-4.6 2>&1 | tee log_build + $ ../master/configure --prefix="$PWD".install --with-sysroot=/ SHELL=/bin/dash CC=gcc-4.6 CXX=g++-4.6 2>&1 | tee log_build [...] $ make 2>&1 | tee log_build_ [...] Different hosts may default to different shells and compiler versions; thus -harmonized. +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. This takes up around 120 MiB, and needs roughly 4 min on kepler.SCHWINGE and 15 min on coulomb.SCHWINGE. @@ -147,9 +149,7 @@ 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. - $ ssh kepler.SCHWINGE 'cd tmp/source/binutils/ && cat hurd/master.build/log_build* | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/binutils/linux/log_build - $ ssh coulomb.SCHWINGE 'cd tmp/binutils/ && cat hurd/master.build/log_build* | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/binutils/hurd/log_build - $ diff -wu <(sed -f toolchain/logs/binutils/linux/log_build.sed < toolchain/logs/binutils/linux/log_build) <(sed -f toolchain/logs/binutils/hurd/log_build.sed < toolchain/logs/binutils/hurd/log_build) > toolchain/logs/binutils/log_build.diff + $ toolchain/logs/process binutils build # Install @@ -163,9 +163,7 @@ min on coulomb.SCHWINGE. ## Analysis - $ ssh kepler.SCHWINGE 'cd tmp/source/binutils/ && cat hurd/master.build/log_install | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/binutils/linux/log_install - $ ssh coulomb.SCHWINGE 'cd tmp/binutils/ && cat hurd/master.build/log_install | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/binutils/hurd/log_install - $ diff -wu <(sed -f toolchain/logs/binutils/linux/log_install.sed < toolchain/logs/binutils/linux/log_install) <(sed -f toolchain/logs/binutils/hurd/log_install.sed < toolchain/logs/binutils/hurd/log_install) > toolchain/logs/binutils/log_install.diff + $ toolchain/logs/process binutils install * `libtool: finish`: `ldconfig` is not run for the Hurd. @@ -177,13 +175,11 @@ min on coulomb.SCHWINGE. This needs roughly 3 min on kepler.SCHWINGE and 13 min on coulomb.SCHWINGE. - $ ssh kepler.SCHWINGE 'cd tmp/source/binutils/ && cat hurd/master.build/*/*.sum hurd/master.build/*/*/*.sum | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/binutils/linux/sum - $ ssh coulomb.SCHWINGE 'cd tmp/binutils/ && cat hurd/master.build/*/*.sum hurd/master.build/*/*/*.sum | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/binutils/hurd/sum - $ diff -u -F ^Running toolchain/logs/binutils/linux/sum toolchain/logs/binutils/hurd/sum > toolchain/logs/binutils/sum.diff - ## Analysis + $ toolchain/logs/process binutils test + * `FAIL: static [...]` The testsuite isn't prepared for using `crt0.o` instead of `crt1.o` diff --git a/toolchain/logs b/toolchain/logs index 476cb69c..9fa6dba9 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 476cb69c0800097c4c6d2d1f31ff8042835a6ceb +Subproject commit 9fa6dba90d150a7b00a905e4644250a77f09c97b -- cgit v1.2.3 From 69815eb7eaf7334a53c0b202172baceda1d1ceae Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 28 Oct 2012 21:17:40 +0100 Subject: open_issues/glibc: cba1c83ad62a11347684a9daf349e659237a1741 (2012-07-29) --- open_issues/glibc.mdwn | 14 ++++++++------ toolchain/logs | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn index 649016c7..f7f68085 100644 --- a/open_issues/glibc.mdwn +++ b/open_issues/glibc.mdwn @@ -580,12 +580,12 @@ sources|source_repositories/glibc]], run on coulomb.SCHWINGE. $ make install_root=/INVALID 2>&1 | tee log_build_ [...] -This takes up around 500 MiB and needs roughly X min on kepler.SCHWINGE and 100 -min on coulomb.SCHWINGE. +This takes up around 500 MiB, and needs roughly X min on kepler.SCHWINGE and +100 min on coulomb.SCHWINGE. -Last reviewed up to the [[Git mirror's fc56c5bbc1a0d56b9b49171dd377c73c268ebcfd -(2012-07-28) sources|source_repositories/glibc]]. +Last reviewed up to the [[Git mirror's d3bd58cf0a027016544949ffd27300ac5fb01bb8 +(2012-11-03) sources|source_repositories/glibc]]. * `t/hurdsig-fixes` @@ -275,7 +275,7 @@ Last reviewed up to the [[Git mirror's fc56c5bbc1a0d56b9b49171dd377c73c268ebcfd We should be easily able to implement that one. - * `futimesat`, `readlinkat`, `renameat` + * `futimesat`, `readlinkat` If we have all of 'em (check Linux kernel), `#define __ASSUME_ATFCTS`. @@ -555,9 +555,6 @@ Last reviewed up to the [[Git mirror's fc56c5bbc1a0d56b9b49171dd377c73c268ebcfd * [low] CFI for `_start`, 6a1bd2a100c958d30bbfe8c9b8f9071d24b7c3f4, [[!message-id "20120316180551.GA6291@host2.jankratochvil.net"]] -- what about other architectures? - * `sendmmsg` usage, c030f70c8796c7743c3aa97d6beff3bd5b8dcd5d -- need a - `ENOSYS` stub, [[!message-id "87a9zubdm9.fsf@schwinge.name"]], - `t/sendmmsg`. * `linkobj/libc.so`, 510bbf14b4f25fec8ee3a2d24de3f24bdbf84333 -- need to adapt for (conditional?) Sun RPC reversion (if that was the original cause for the patch)? @@ -565,13 +562,30 @@ Last reviewed up to the [[Git mirror's fc56c5bbc1a0d56b9b49171dd377c73c268ebcfd 3e5aef87d76cfa7354f2b0d82b96e59280720796, [[!message-id "20120517134700.GA19046@intel.com"]] -- only updates one copy of `bits/statfs.h`; update the others, too, for consistency. + * [low] 789bd351b45f024b7f51e4886bf46b8e887ab6da: remove + `libc_hidden_def` in `sysdeps/mach/hurd/accept4.c`? + * 0948c3af9dfb3bc1312d6bed2f3a6bfd4e96eef4, + b80af2f40631871cf53a5e39d08d5d5516473b96, + 04570aaa8ad88caad303f8afe469beb4cf851e17 `_dl_initial_dtv`: OK? + * [very low] ea4d37b3169908615b7c17c9c506c6a6c16b3a26 `Implement + 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* +## Update + +`baseline`, `t/regenerate_configure` (could now be removed), +`t/master_backports`, `t/eglibc_backports`, `t/host-independency`, +`tschwinge/Roger_Whittaker` + + # Build Here's a log of a glibc build run; this is from our [[Git repository's -cba1c83ad62a11347684a9daf349e659237a1741 (2012-07-29) +28b74f8dbc3eb639d35fc0f93021ac5eb1fde9a4 (2012-11-03; +fbeafedeea37e0af1984a6511018d159f5ceed6a (2012-11-03)) sources|source_repositories/glibc]], run on coulomb.SCHWINGE. $ export LC_ALL=C @@ -640,19 +654,6 @@ TODO. [[!message-id "20120723195143.7F8142C0B9@topped-with-meat.com"]]. - * baseline - fd5bdc0924e0cfd1688b632068c1b26f3b0c88da..2ba92745c36eb3c3f3af0ce1b0aebd255c63a13b - introduces: - - genops.c: In function '_IO_flush_all_lockp': - genops.c:869:3: warning: passing argument 1 of '__save_FCT' makes pointer from integer without a cast [enabled by default] - genops.c:869:3: note: expected 'void *' but argument is of type 'int' - - A similar warning has already been (and still is) seen here: - - dl-iteratephdr.c:83:3: warning: passing argument 1 of '__save_FCT' makes pointer from integer without a cast [enabled by default] - dl-iteratephdr.c:83:3: note: expected 'void *' but argument is of type 'int' - * baseline fd5bdc0924e0cfd1688b632068c1b26f3b0c88da..2ba92745c36eb3c3f3af0ce1b0aebd255c63a13b (or probably Samuel's mmap backport) introduces: @@ -679,13 +680,34 @@ TODO. 2ba92745c36eb3c3f3af0ce1b0aebd255c63a13b..7a270350a9bc3110cd5ba12bbd8c5c8c365e0032 introduces: - In file included from regex.c:62:0: - regcomp.c: In function 'init_word_char': - regcomp.c:935:4: warning: large integer implicitly truncated to unsigned type [-Woverflow] - regcomp.c:936:4: warning: large integer implicitly truncated to unsigned type [-Woverflow] - tst-relsort1.c:6:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] + * baseline + fc56c5bbc1a0d56b9b49171dd377c73c268ebcfd..cbc818d0ee66065f3942beffdca82986615aa19a + introduces + + +gcc-4.6 tst-printf-round.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wno-parentheses -Wstrict-prototypes -I../include -I[...]/tschwinge/Roger_Whittaker.build-gcc-4. + +tst-printf-round.c: In function 'do_test': + +tst-printf-round.c:203:11: warning: passing argument 3 of 'test_hex_in_one_mode' discards 'const' qualifier from pointer target type [enabled by default] + +tst-printf-round.c:139:1: note: expected 'const char **' but argument is of type 'const char * const*' + +tst-printf-round.c:208:8: warning: passing argument 3 of 'test_hex_in_one_mode' discards 'const' qualifier from pointer target type [enabled by default] + +tst-printf-round.c:139:1: note: expected 'const char **' but argument is of type 'const char * const*' + +tst-printf-round.c:216:8: warning: passing argument 3 of 'test_hex_in_one_mode' discards 'const' qualifier from pointer target type [enabled by default] + +tst-printf-round.c:139:1: note: expected 'const char **' but argument is of type 'const char * const*' + +tst-printf-round.c:224:8: warning: passing argument 3 of 'test_hex_in_one_mode' discards 'const' qualifier from pointer target type [enabled by default] + +tst-printf-round.c:139:1: note: expected 'const char **' but argument is of type 'const char * const*' + + gcc-4.6 test-wcschr.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wno-parentheses -Wstrict-prototypes -I../include -I[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486 + +In file included from test-wcschr.c:2:0: + +../string/test-strchr.c: In function 'check1': + +../string/test-strchr.c:249:3: warning: passing argument 1 of 'stupid_STRCHR' from incompatible pointer type [enabled by default] + +../string/test-strchr.c:77:1: note: expected 'const wchar_t *' but argument is of type 'char *' + +../string/test-strchr.c:249:22: warning: initialization from incompatible pointer type [enabled by default] + +../string/test-strchr.c:252:5: warning: passing argument 2 of 'check_result' from incompatible pointer type [enabled by default] + +../string/test-strchr.c:92:1: note: expected 'const wchar_t *' but argument is of type 'char *' + +../string/test-strchr.c:252:5: warning: passing argument 4 of 'check_result' from incompatible pointer type [enabled by default] + +../string/test-strchr.c:92:1: note: expected 'const wchar_t *' but argument is of type 'char *' + # Install @@ -796,7 +818,7 @@ There is quite a baseline of failures. SIGSEGV. - * `rt/tst-aio10`, `rt/tst-aio9` + * `rt-tst-aio2`, `rt-tst-aio3`, `rt/tst-aio10`, `rt/tst-aio9` /home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build-gcc-4.4-486.O/rt/tst-aio10.o: In function `do_test': tst-aio10.c:(.text+0x1b): undefined reference to `pthread_self' @@ -809,7 +831,7 @@ There is quite a baseline of failures. collect2: ld returned 1 exit status make[2]: *** [/home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build-gcc-4.4-486.O/rt/tst-aio10] Error 1 - * `rt-tst-aio2`, `rt-tst-aio3`, `rt/tst-mqueue3`, `rt/tst-mqueue6`, + * `rt/tst-mqueue3`, `rt/tst-mqueue6`, `rt/tst-mqueue8`, `elf/tst-thrlock`, `rt/tst-timer3`, `nss//libnss_test1.so` @@ -881,6 +903,44 @@ There is quite a baseline of failures. Needs [[`/proc/self/exe`|hurd/translator/procfs/jkoenig/discussion]]. + * `elf/tst-array*` + + Failures also seen on GNU/Linux; [[!message-id + "50950082.1070906@df1tl.local.here"]]. + + gcc-4.6 tst-array1.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wno-parentheses -Wstrict-prototypes -I../include -I[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/ + gcc-4.6 -nostdlib -nostartfiles -o [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array1 -Wl,-dynamic-linker=/lib/ld.so.1 -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486 + [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/ld.so.1 --library-path [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486:[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/math:[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf:[ + cmp [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array1.out tst-array1.exp > /dev/null + make[2]: *** [[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array1.out] Error 1 + gcc-4.6 tst-array2.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wno-parentheses -Wstrict-prototypes -I../include -I[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/ + gcc-4.6 tst-array2dep.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wno-parentheses -Wstrict-prototypes -fPIC -I../include -I[...]/tschwinge/Roger_Whittaker.build-gcc + gcc-4.6 -shared -static-libgcc -Wl,-dynamic-linker=/lib/ld.so.1 -Wl,-z,defs -B[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/csu/ -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -L[...]/tschwinge/Roger_Whittaker.build-gcc-4.6 + gcc-4.6 -nostdlib -nostartfiles -o [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array2 -Wl,-dynamic-linker=/lib/ld.so.1 -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486 + [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/ld.so.1 --library-path [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486:[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/math:[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf:[ + cmp [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array2.out tst-array2.exp > /dev/null + make[2]: *** [[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array2.out] Error 1 + gcc-4.6 tst-array3.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wno-parentheses -Wstrict-prototypes -I../include -I[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/ + gcc-4.6 -nostdlib -nostartfiles -o [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array3 -Wl,-dynamic-linker=/lib/ld.so.1 -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486 + [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/ld.so.1 --library-path [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486:[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/math:[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf:[ + cmp [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array3.out tst-array1.exp > /dev/null + make[2]: *** [[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array3.out] Error 1 + gcc-4.6 tst-array4.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wno-parentheses -Wstrict-prototypes -I../include -I[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/ + gcc-4.6 -nostdlib -nostartfiles -o [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array4 -Wl,-dynamic-linker=/lib/ld.so.1 -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486 + [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/ld.so.1 --library-path [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486:[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/math:[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf:[ + cmp [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array4.out tst-array4.exp > /dev/null + make[2]: *** [[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array4.out] Error 1 + + `tst-array5` passes. + + gcc-4.6 tst-array1-static.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wno-parentheses -Wstrict-prototypes -I../include -I[...]/tschwinge/Roger_Whittaker.build-gcc-4 + gcc-4.6 -nostdlib -nostartfiles -static -o [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array1-static [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/csu/crt0.o [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/csu/crti + [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array1-static > [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array1-static.out + cmp [...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array1-static.out tst-array1.exp > /dev/null + make[2]: *** [[...]/tschwinge/Roger_Whittaker.build-gcc-4.6-486/elf/tst-array1-static.out] Error 1 + + `tst-array5-static` passes. + ## OLD diff --git a/open_issues/libpthread_CLOCK_MONOTONIC.mdwn b/open_issues/libpthread_CLOCK_MONOTONIC.mdwn index 86a613d3..a394f400 100644 --- a/open_issues/libpthread_CLOCK_MONOTONIC.mdwn +++ b/open_issues/libpthread_CLOCK_MONOTONIC.mdwn @@ -103,3 +103,10 @@ License|/fdl]]."]]"""]] it'll be safe when implementing some private __hurd_clock_get{time,res} in libc proper, making librt just forward to it and adapting the gettimeofday to use it + + +# glibc + +[[!sourceware_PR 14304]], [[!sourceware_PR 14743]], [[!message-id +"CAH6eHdQRyTgkXE7k+UVpaObNTOZf7QF_fNoU-bqbMhfzXxXUDg@mail.gmail.com"]], commit +6e6249d0b461b952d0f544792372663feb6d792a (2012-10-24). diff --git a/toolchain/logs b/toolchain/logs index d42ceecc..07b0e251 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit d42ceeccbbf026ee93f9ffbf3efbbef4b5fe55a9 +Subproject commit 07b0e25109afc9d796f37f6aee569b17d641db94 -- cgit v1.2.3 From 776c4315f601b36021834eb0d44f18203f56e811 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 6 Nov 2012 13:25:02 +0100 Subject: open_issues/gdb: 695f61ff0f378e1680964128585044799de27015 (2011-09-06) --- open_issues/gdb.mdwn | 119 +++++++++++++++++++++++++++++++++++------ open_issues/glibc_ptrace.mdwn | 6 +-- open_issues/term_blocking.mdwn | 70 +++++++++++++++++++++++- toolchain/logs | 2 +- 4 files changed, 177 insertions(+), 20 deletions(-) diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn index 1652031b..5b8ac21c 100644 --- a/open_issues/gdb.mdwn +++ b/open_issues/gdb.mdwn @@ -24,8 +24,17 @@ Here's what's to be done for maintaining GNU GDB. # Configuration -Last reviewed up to the [[Git mirror's ea9812279fe436be9a010d07ef1dbe465199a3d7 -(2011-09-07) sources|source_repositories/gdb]]. + + +Last reviewed up to the [[Git mirror's 70044c11b4bf873773972c0f8784188356389bfc +(2011-10-16) sources|source_repositories/gdb]]. * Globally @@ -71,9 +80,15 @@ 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 140 MiB and needs roughly 6 min on kepler.SCHWINGE and 30 +This takes up around 210 MiB and needs roughly 6 min on kepler.SCHWINGE and 25 min on coulomb.SCHWINGE. + + ## Analysis @@ -81,12 +96,53 @@ 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. - $ ssh kepler.SCHWINGE 'cd tmp/source/gdb/ && cat hurd/master.build/log_build* | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/gdb/linux/log_build - $ ssh coulomb.SCHWINGE 'cd tmp/gdb/ && cat hurd/master.build/log_build* | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/gdb/hurd/log_build - $ diff -wu <(sed -f toolchain/logs/gdb/linux/log_build.sed < toolchain/logs/gdb/linux/log_build) <(sed -f toolchain/logs/gdb/hurd/log_build.sed < toolchain/logs/gdb/hurd/log_build) > toolchain/logs/gdb/log_build.diff + $ toolchain/logs/process gdb build + + * DFP + + -checking for decimal floating point... bid + +checking for decimal floating point... configure: WARNING: decimal float is not supported for this target, ignored + +dpd + + Have to sync libdecnumber? * 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] + * Why does GNU/Linux have an additional `-ldl -rdynamic` when linking `gdb`? @@ -101,27 +157,60 @@ min on coulomb.SCHWINGE. ## Analysis - $ ssh kepler.SCHWINGE 'cd tmp/source/gdb/ && cat hurd/master.build/log_install | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/gdb/linux/log_install - $ ssh coulomb.SCHWINGE 'cd tmp/gdb/ && cat hurd/master.build/log_install | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/gdb/hurd/log_install - $ diff -wu <(sed -f toolchain/logs/gdb/linux/log_install.sed < toolchain/logs/gdb/linux/log_install) <(sed -f toolchain/logs/gdb/hurd/log_install.sed < toolchain/logs/gdb/hurd/log_install) > toolchain/logs/gdb/log_install.diff + $ toolchain/logs/process gdb install * `libtool: finish`: `ldconfig` is not run for the Hurd. # Testsuite -On GNU/Hurd, hampered by the [[term_blocking]] issue. - $ make -k check [...] -This needs roughly 45 min on kepler.SCHWINGE and TODO min on coulomb.SCHWINGE. +This needs roughly 11 min on kepler.SCHWINGE and 128 min on coulomb.SCHWINGE. - $ ssh kepler.SCHWINGE 'cd tmp/source/gdb/ && sed -e "s%\(/media/data\)\?${PWD}%[...]%g" < hurd/master.build/gdb/testsuite/gdb.sum' > toolchain/logs/gdb/linux/sum - $ ssh coulomb.SCHWINGE 'cd tmp/gdb/ && sed -e "s%\(/media/erich\)\?${PWD}%[...]%g" < hurd/master.build/gdb/testsuite/gdb.sum' > toolchain/logs/gdb/hurd/sum - $ diff -u -F ^Running toolchain/logs/gdb/linux/sum toolchain/logs/gdb/hurd/sum > toolchain/logs/gdb/sum.diff +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, this has be seen for `gdb.base/structs-tf-td`, and an unknown (`?`) +one. ## Analysis + $ toolchain/logs/process gdb test + + * Disabled + + * `gdb.base/morestack.exp` + + TODO `-fsplit-stack` issue. + + * `gdb.base/readline.exp` + + [[term_blocking]] issue. + + * `gdb.base/sigall.exp` + + From `send signal TSTP` on, all FAIL running into timeouts. + + * `UNSUPPORTED: gdb.threads/ia64-sigill.exp: Couldn't compile ../../../master/gdb/testsuite/gdb.threads/ia64-sigill.c: unrecognized error` + + ../../../master/gdb/testsuite/gdb.threads/ia64-sigill.c:29:24: fatal error: asm/unistd.h: No such file or directory + + * `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 + TODO. diff --git a/open_issues/glibc_ptrace.mdwn b/open_issues/glibc_ptrace.mdwn index b4c529d7..6704ed80 100644 --- a/open_issues/glibc_ptrace.mdwn +++ b/open_issues/glibc_ptrace.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2009, 2012 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 @@ -33,8 +33,8 @@ License|/fdl]]."]]"""]] and for us it is a `struct i386_thread_state` from `mach/i386/thread_status.h`; - * Linux probides some functionality that we don't provide, e.g., - `PTRACE_SINGLESTEP`. + * Linux provides some functionality that we don't provide: + `PTRACE_GETFPXREGS` , `PTRACE_SINGLESTEP`. * Some parts are wrongly implemented, e.g., `PTRACE_GETREGS` and `PTRACE_SETREGS` both do the same thing. diff --git a/open_issues/term_blocking.mdwn b/open_issues/term_blocking.mdwn index 19d18d0e..eddc285e 100644 --- a/open_issues/term_blocking.mdwn +++ b/open_issues/term_blocking.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2009, 2011 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2009, 2011, 2012 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 @@ -113,9 +114,76 @@ user started GDB test suite, noticed the PTY it's using; in a root shell started GDB (the system one, for `.debug` stuff) on `/hurd/term`, `set noninvasive on`, attach to the *term* that GDB is using. +--- [[2011-07-04]]. +--- + +2012-11-05 + +Log file from a 2011-09-07 run: + + [...] + Running ../../../master/gdb/testsuite/gdb.base/readline.exp ... + spawn [...]/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory [...]/gdb/testsuite/../data-directory + GNU gdb (GDB) 7.3.50.20110906-cvs + Copyright (C) 2011 Free Software Foundation, Inc. + License GPLv3+: GNU GPL version 3 or later + This is free software: you are free to change and redistribute it. + There is NO WARRANTY, to the extent permitted by law. Type "show copying" + and "show warranty" for details. + This GDB was configured as "i686-unknown-gnu0.3". + For bug reporting instructions, please see: + . + (gdb) set height 0 + (gdb) set width 0 + (gdb) dir + Reinitialize source path to empty? (y or n) y + Source directories searched: $cdir:$cwd + (gdb) dir ../../../master/gdb/testsuite/gdb.base + Source directories searched: [...]/gdb/testsuite/../../../master/gdb/testsuite/gdb.base:$cdir:$cwd + (gdb) p 1 + $1 = 1 + PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 1 + (gdb) p 2 + $2 = 2 + PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 2 + (gdb) p 3 + $3 = 3 + PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 3 + (gdb) p 3(gdb) p 3PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 3 + ^H2(gdb) p 2PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 2 + ^H1(gdb) p 1PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 1 + ^OFAIL: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 1 + FAIL: gdb.base/readline.exp: operate-and-get-next with secondary prompt - send if 1 > 0 + FAIL: gdb.base/readline.exp: print 42 (timeout) + FAIL: gdb.base/readline.exp: arrow keys with secondary prompt (timeout) + spawn [...]/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory [...]/gdb/testsuite/../data-directory + ERROR: (timeout) GDB never initialized after 10 seconds. + ERROR: no fileid for coulomb + ERROR: no fileid for coulomb + UNRESOLVED: gdb.base/readline.exp: Simple operate-and-get-next - send p 7 + testcase ../../../master/gdb/testsuite/gdb.base/readline.exp completed in 646 seconds + Running ../../../master/gdb/testsuite/gdb.base/wchar.exp ... + Executing on host: gcc -c -g -o [...]/gdb/testsuite/gdb.base/wchar0.o ../../../master/gdb/testsuite/gdb.base/wchar.c (timeout = 300) + spawn gcc -c -g -o [...]/gdb/testsuite/gdb.base/wchar0.o ../../../master/gdb/testsuite/gdb.base/wchar.c + Executing on host: gcc [...]/gdb/testsuite/gdb.base/wchar0.o -g -lm -o [...]/gdb/testsuite/gdb.base/wchar (timeout = 300) + spawn gcc [...]/gdb/testsuite/gdb.base/wchar0.o -g -lm -o [...]/gdb/testsuite/gdb.base/wchar + get_compiler_info: gcc-4-6-1 + spawn [...]/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory [...]/gdb/testsuite/../data-directory + ERROR: (timeout) GDB never initialized after 10 seconds. + ERROR: no fileid for coulomb + ERROR: no fileid for coulomb + ERROR: no fileid for coulomb + ERROR: couldn't load [...]/gdb/testsuite/gdb.base/wchar into [...]/gdb/testsuite/../../gdb/gdb (timed out). + ERROR: no fileid for coulomb + ERROR: Delete all breakpoints in delete_breakpoints (timeout) + ERROR: no fileid for coulomb + UNRESOLVED: gdb.base/wchar.exp: setting breakpoint at wchar.c:34 (timeout) + testcase ../../../master/gdb/testsuite/gdb.base/wchar.exp completed in 797 seconds + [...] + # Formal Verification diff --git a/toolchain/logs b/toolchain/logs index 07b0e251..7cabfc0c 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 07b0e25109afc9d796f37f6aee569b17d641db94 +Subproject commit 7cabfc0c4e4d0c37f4333d45d3574bbe7b873b16 -- cgit v1.2.3 From cdfb0c096f49a4a900071017dc96966c96f6c82c Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 6 Nov 2012 17:03:13 +0100 Subject: open_issues/gdb: 70044c11b4bf873773972c0f8784188356389bfc (2011-10-16) --- open_issues/gdb.mdwn | 14 ++++++++------ source_repositories/gdb.mdwn | 9 ++++++++- toolchain/logs | 2 +- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn index 5b8ac21c..5cea82c0 100644 --- a/open_issues/gdb.mdwn +++ b/open_issues/gdb.mdwn @@ -63,12 +63,13 @@ Last reviewed up to the [[Git mirror's 70044c11b4bf873773972c0f8784188356389bfc # Build -Here's a log of a GDB build run; this is from our [[Git repository's -695f61ff0f378e1680964128585044799de27015 (2011-09-06) -sources|source_repositories/gdb]], run on kepler.SCHWINGE and coulomb.SCHWINGE. +Here's a log of a GDB build run; this is from our [[Git +repository|source_repositories/gdb]]'s `tschwinge/Ferry_Tagscherer` branch, +commit 70044c11b4bf873773972c0f8784188356389bfc (2011-10-16), run on +kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C - $ ../master/configure --prefix="$PWD".install SHELL=/bin/dash CC=gcc-4.6 CXX=g++-4.6 --disable-werror 2>&1 | tee log_build + $ ../Ferry_Tagscherer/configure --prefix="$PWD".install SHELL=/bin/dash CC=gcc-4.6 CXX=g++-4.6 --disable-werror 2>&1 | tee log_build [...] $ make 2>&1 | tee log_build_ [...] @@ -174,8 +175,9 @@ 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, this has be seen for `gdb.base/structs-tf-td`, and an unknown (`?`) -one. +GNU/Hurd, this has be seen for `gdb.base/structs-tf-td`, +`gdb.cp/meth-typedefs`, and an unknown (`?`) one ("57 PIDs before" `expect +[...] gdb.cp`). ## Analysis diff --git a/source_repositories/gdb.mdwn b/source_repositories/gdb.mdwn index 76b82534..7418f5e4 100644 --- a/source_repositories/gdb.mdwn +++ b/source_repositories/gdb.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 2011, 2012 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 @@ -11,5 +12,11 @@ License|/fdl]]."]]"""]] There is a repository for maintenance of [[/GDB]] for the Hurd's needs: `grubber:~tschwinge/tmp/gdb/git`. + diff --git a/toolchain/logs b/toolchain/logs index 7cabfc0c..da70badc 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 7cabfc0c4e4d0c37f4333d45d3574bbe7b873b16 +Subproject commit da70badc277df3d9fa2bcf35fed9a694e5d1880e -- cgit v1.2.3 From 2b48d175f4fc006558ef6478c9d4a343ba804a11 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 8 Nov 2012 16:53:44 +0100 Subject: open_issues/gdb: fe19822761b4635f392875a186e48af446b40f41 (2012-01-01) --- open_issues/gdb.mdwn | 6 +++--- toolchain/logs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn index 5cea82c0..5e989e7b 100644 --- a/open_issues/gdb.mdwn +++ b/open_issues/gdb.mdwn @@ -33,8 +33,8 @@ git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --> -Last reviewed up to the [[Git mirror's 70044c11b4bf873773972c0f8784188356389bfc -(2011-10-16) sources|source_repositories/gdb]]. +Last reviewed up to the [[Git mirror's fe19822761b4635f392875a186e48af446b40f41 +(2012-01-01) sources|source_repositories/gdb]]. * Globally @@ -65,7 +65,7 @@ Last reviewed up to the [[Git mirror's 70044c11b4bf873773972c0f8784188356389bfc Here's a log of a GDB build run; this is from our [[Git repository|source_repositories/gdb]]'s `tschwinge/Ferry_Tagscherer` branch, -commit 70044c11b4bf873773972c0f8784188356389bfc (2011-10-16), run on +commit fe19822761b4635f392875a186e48af446b40f41 (2012-01-01), run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C diff --git a/toolchain/logs b/toolchain/logs index da70badc..3d82d9f8 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit da70badc277df3d9fa2bcf35fed9a694e5d1880e +Subproject commit 3d82d9f8c538a2bd3e3a6398e5431c3758943e9f -- cgit v1.2.3 From ed1172e1f78ec4ec0acdce3d7eb6fd48f98b7805 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 8 Nov 2012 22:39:02 +0100 Subject: open_issues/gdb: 7a63e9515491f21eaf07301df87d389def20e317 (2012-04-01) --- open_issues/gdb.mdwn | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++- toolchain/logs | 2 +- 2 files changed, 206 insertions(+), 4 deletions(-) diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn index 5e989e7b..65ed13a6 100644 --- a/open_issues/gdb.mdwn +++ b/open_issues/gdb.mdwn @@ -33,8 +33,8 @@ git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --> -Last reviewed up to the [[Git mirror's fe19822761b4635f392875a186e48af446b40f41 -(2012-01-01) sources|source_repositories/gdb]]. +Last reviewed up to the [[Git mirror's 7a63e9515491f21eaf07301df87d389def20e317 +(2012-04-01) sources|source_repositories/gdb]]. * Globally @@ -65,7 +65,7 @@ Last reviewed up to the [[Git mirror's fe19822761b4635f392875a186e48af446b40f41 Here's a log of a GDB build run; this is from our [[Git repository|source_repositories/gdb]]'s `tschwinge/Ferry_Tagscherer` branch, -commit fe19822761b4635f392875a186e48af446b40f41 (2012-01-01), run on +commit 7a63e9515491f21eaf07301df87d389def20e317 (2012-04-01), run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C @@ -144,6 +144,32 @@ formats and more emulation vectors. 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: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' [] + 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' [] + * Why does GNU/Linux have an additional `-ldl -rdynamic` when linking `gdb`? @@ -215,4 +241,180 @@ GNU/Hurd, this has be seen for `gdb.base/structs-tf-td`, ../../../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/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` + + ../../../Ferry_Tagscherer/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c:29:24: fatal error: asm/unistd.h: No such file or directory + + * fe19822761b4635f392875a186e48af446b40f41..7a63e9515491f21eaf07301df87d389def20e317): + + -PASS: gdb.base/break.exp: until bp_location1 + -PASS: gdb.base/break.exp: break on default location, 1st time + -PASS: gdb.base/break.exp: break on default location, 2nd time + -PASS: gdb.base/break.exp: break on default location, 3rd time + -PASS: gdb.base/break.exp: break on default location, 4th time + -PASS: gdb.base/break.exp: set to-be-silent break bp_location1 + -PASS: gdb.base/break.exp: set silent break bp_location1 + -PASS: gdb.base/break.exp: info silent break bp_location1 + -PASS: gdb.base/break.exp: hit silent break bp_location1 + -PASS: gdb.base/break.exp: stopped for silent break bp_location1 + -PASS: gdb.base/break.exp: thread-specific breakpoint on non-existent thread disallowed + -PASS: gdb.base/break.exp: thread-specific breakpoint on bogus thread ID disallowed + -PASS: gdb.base/break.exp: breakpoint with trailing garbage disallowed + -PASS: gdb.base/break.exp: step over breakpoint + -PASS: gdb.base/break.exp: clear line has no breakpoint disallowed + -PASS: gdb.base/break.exp: clear current line has no breakpoint disallowed + -PASS: gdb.base/break.exp: break marker3 #1 + -PASS: gdb.base/break.exp: break marker3 #2 + -PASS: gdb.base/break.exp: clear marker3 + -PASS: gdb.base/break.exp: set convenience variable $foo to bp_location11 + -PASS: gdb.base/break.exp: set breakpoint via convenience variable + -PASS: gdb.base/break.exp: set convenience variable $foo to 81.5 + -PASS: gdb.base/break.exp: set breakpoint via non-integer convenience variable disallowed + -PASS: gdb.base/break.exp: set breakpoint on to-be-called function + -PASS: gdb.base/break.exp: hit breakpoint on called function + -PASS: gdb.base/break.exp: backtrace while in called function + -PASS: gdb.base/break.exp: finish from called function + -PASS: gdb.base/break.exp: finish with arguments disallowed + -PASS: gdb.base/break.exp: finish from outermost frame disallowed + -PASS: gdb.base/break.exp: kill program + -PASS: gdb.base/break.exp: break at factorial + -PASS: gdb.base/break.exp: continue to factorial(5) + -PASS: gdb.base/break.exp: backtrace from factorial(5) + -PASS: gdb.base/break.exp: next to recursive call + -PASS: gdb.base/break.exp: next over recursive call + -PASS: gdb.base/break.exp: backtrace from factorial(5.1) + -PASS: gdb.base/break.exp: continue until exit at recursive next test + +FAIL: gdb.base/break.exp: until bp_location1 (timeout) + +FAIL: gdb.base/break.exp: break on default location, 1st time (timeout) + +FAIL: gdb.base/break.exp: break on default location, 2nd time (timeout) + +FAIL: gdb.base/break.exp: break on default location, 3rd time (timeout) + +FAIL: gdb.base/break.exp: break on default location, 4th time (timeout) + +ERROR: Delete all breakpoints in delete_breakpoints (timeout) + +UNRESOLVED: gdb.base/break.exp: setting breakpoint at main (timeout) + +FAIL: gdb.base/break.exp: break tests suppressed + +FAIL: gdb.base/break.exp: set to-be-silent break bp_location1 (timeout) + +FAIL: gdb.base/break.exp: set silent break bp_location1 (timeout) + +FAIL: gdb.base/break.exp: info silent break bp_location1 (timeout) + +FAIL: gdb.base/break.exp: hit silent break bp_location1 (timeout) + +FAIL: gdb.base/break.exp: stopped for silent break bp_location1 (timeout) + +FAIL: gdb.base/break.exp: thread-specific breakpoint on non-existent thread disallowed (timeout) + +FAIL: gdb.base/break.exp: thread-specific breakpoint on bogus thread ID disallowed (timeout) + +FAIL: gdb.base/break.exp: breakpoint with trailing garbage disallowed (timeout) + +FAIL: gdb.base/break.exp: step over breakpoint (timeout) + +FAIL: gdb.base/break.exp: clear line has no breakpoint disallowed (timeout) + +FAIL: gdb.base/break.exp: clear current line has no breakpoint disallowed (timeout) + +FAIL: gdb.base/break.exp: break marker3 #1 (timeout) + +FAIL: gdb.base/break.exp: break marker3 #2 (timeout) + +FAIL: gdb.base/break.exp: clear marker3 (timeout) + +FAIL: gdb.base/break.exp: set convenience variable $foo to bp_location11 (timeout) + +FAIL: gdb.base/break.exp: set breakpoint via convenience variable (timeout) + +FAIL: gdb.base/break.exp: set convenience variable $foo to 81.5 (timeout) + +FAIL: gdb.base/break.exp: set breakpoint via non-integer convenience variable disallowed (timeout) + +FAIL: gdb.base/break.exp: set breakpoint on to-be-called function (timeout) + +FAIL: gdb.base/break.exp: hit breakpoint on called function (timeout) + +FAIL: gdb.base/break.exp: backtrace while in called function (timeout) + +FAIL: gdb.base/break.exp: finish from called function (timeout) + +ERROR: Delete all breakpoints in delete_breakpoints (timeout) + +UNRESOLVED: gdb.base/break.exp: setting breakpoint at main (timeout) + +FAIL: gdb.base/break.exp: break tests suppressed + +FAIL: gdb.base/break.exp: (timeout) finish with arguments disallowed + +FAIL: gdb.base/break.exp: finish from outermost frame disallowed (timeout) + +FAIL: gdb.base/break.exp: kill program (timeout) + +ERROR: Delete all breakpoints in delete_breakpoints (timeout) + +UNRESOLVED: gdb.base/break.exp: break at factorial (timeout) + +FAIL: gdb.base/break.exp: run to factorial(6) (timeout) + +FAIL: gdb.base/break.exp: continue to factorial(5) (timeout) + +FAIL: gdb.base/break.exp: backtrace from factorial(5) (timeout) + +FAIL: gdb.base/break.exp: next to recursive call (timeout) + +ERROR: Delete all breakpoints in delete_breakpoints (timeout) + +UNRESOLVED: gdb.base/break.exp: next over recursive call (timeout) + +FAIL: gdb.base/break.exp: backtrace from factorial(5.1) (timeout) + +FAIL: gdb.base/break.exp: continue until exit at recursive next test (timeout) + + -PASS: gdb.base/sepdebug.exp: until bp_location1 + -PASS: gdb.base/sepdebug.exp: break on default location, 1st time + -PASS: gdb.base/sepdebug.exp: break on default location, 2nd time + -PASS: gdb.base/sepdebug.exp: break on default location, 3rd time + -PASS: gdb.base/sepdebug.exp: break on default location, 4th time + -PASS: gdb.base/sepdebug.exp: set to-be-silent break bp_location1 + -PASS: gdb.base/sepdebug.exp: set silent break bp_location1 + -PASS: gdb.base/sepdebug.exp: info silent break bp_location1 + -PASS: gdb.base/sepdebug.exp: hit silent break bp_location1 + -PASS: gdb.base/sepdebug.exp: stopped for silent break bp_location1 + -PASS: gdb.base/sepdebug.exp: thread-specific breakpoint on non-existent thread disallowed + -PASS: gdb.base/sepdebug.exp: thread-specific breakpoint on bogus thread ID disallowed + -PASS: gdb.base/sepdebug.exp: breakpoint with trailing garbage disallowed + -PASS: gdb.base/sepdebug.exp: step over breakpoint + -PASS: gdb.base/sepdebug.exp: clear line has no breakpoint disallowed + -PASS: gdb.base/sepdebug.exp: clear current line has no breakpoint disallowed + -PASS: gdb.base/sepdebug.exp: break marker3 #1 + -PASS: gdb.base/sepdebug.exp: break marker3 #2 + -PASS: gdb.base/sepdebug.exp: clear marker3 + -PASS: gdb.base/sepdebug.exp: set convenience variable $foo to bp_location11 + -PASS: gdb.base/sepdebug.exp: set breakpoint via convenience variable + -PASS: gdb.base/sepdebug.exp: set convenience variable $foo to 81.5 + -PASS: gdb.base/sepdebug.exp: set breakpoint via non-integer convenience variable disallowed + -PASS: gdb.base/sepdebug.exp: set breakpoint on to-be-called function + -PASS: gdb.base/sepdebug.exp: hit breakpoint on called function + -PASS: gdb.base/sepdebug.exp: backtrace while in called function + -PASS: gdb.base/sepdebug.exp: finish from called function + -PASS: gdb.base/sepdebug.exp: finish with arguments disallowed + -PASS: gdb.base/sepdebug.exp: finish from outermost frame disallowed + -PASS: gdb.base/sepdebug.exp: kill program + -PASS: gdb.base/sepdebug.exp: break at factorial + -PASS: gdb.base/sepdebug.exp: continue to factorial(5) + -PASS: gdb.base/sepdebug.exp: backtrace from factorial(5) + -PASS: gdb.base/sepdebug.exp: next to recursive call + -PASS: gdb.base/sepdebug.exp: next over recursive call + -PASS: gdb.base/sepdebug.exp: backtrace from factorial(5.1) + -PASS: gdb.base/sepdebug.exp: continue until exit at recursive next test + +FAIL: gdb.base/sepdebug.exp: until bp_location1 (timeout) + +FAIL: gdb.base/sepdebug.exp: break on default location, 1st time (timeout) + +FAIL: gdb.base/sepdebug.exp: break on default location, 2nd time (timeout) + +FAIL: gdb.base/sepdebug.exp: break on default location, 3rd time (timeout) + +FAIL: gdb.base/sepdebug.exp: break on default location, 4th time (timeout) + +ERROR: Delete all breakpoints in delete_breakpoints (timeout) + +UNRESOLVED: gdb.base/sepdebug.exp: setting breakpoint at main (timeout) + +FAIL: gdb.base/sepdebug.exp: sepdebug tests suppressed + +FAIL: gdb.base/sepdebug.exp: set to-be-silent break bp_location1 (timeout) + +FAIL: gdb.base/sepdebug.exp: set silent break bp_location1 (timeout) + +FAIL: gdb.base/sepdebug.exp: info silent break bp_location1 (timeout) + +FAIL: gdb.base/sepdebug.exp: hit silent break bp_location1 (timeout) + +FAIL: gdb.base/sepdebug.exp: stopped for silent break bp_location1 (timeout) + +FAIL: gdb.base/sepdebug.exp: thread-specific breakpoint on non-existent thread disallowed (timeout) + +FAIL: gdb.base/sepdebug.exp: thread-specific breakpoint on bogus thread ID disallowed (timeout) + +FAIL: gdb.base/sepdebug.exp: breakpoint with trailing garbage disallowed (timeout) + +FAIL: gdb.base/sepdebug.exp: step over breakpoint (timeout) + +FAIL: gdb.base/sepdebug.exp: clear line has no breakpoint disallowed (timeout) + +FAIL: gdb.base/sepdebug.exp: clear current line has no breakpoint disallowed (timeout) + +FAIL: gdb.base/sepdebug.exp: break marker3 #1 (timeout) + +FAIL: gdb.base/sepdebug.exp: break marker3 #2 (timeout) + +FAIL: gdb.base/sepdebug.exp: clear marker3 (timeout) + +FAIL: gdb.base/sepdebug.exp: set convenience variable $foo to bp_location11 (timeout) + +FAIL: gdb.base/sepdebug.exp: set breakpoint via convenience variable (timeout) + +FAIL: gdb.base/sepdebug.exp: set convenience variable $foo to 81.5 (timeout) + +FAIL: gdb.base/sepdebug.exp: set breakpoint via non-integer convenience variable disallowed (timeout) + +FAIL: gdb.base/sepdebug.exp: set breakpoint on to-be-called function (timeout) + +FAIL: gdb.base/sepdebug.exp: hit breakpoint on called function (timeout) + +FAIL: gdb.base/sepdebug.exp: backtrace while in called function (timeout) + +FAIL: gdb.base/sepdebug.exp: finish from called function (timeout) + +ERROR: Delete all breakpoints in delete_breakpoints (timeout) + +UNRESOLVED: gdb.base/sepdebug.exp: setting breakpoint at main (timeout) + +FAIL: gdb.base/sepdebug.exp: sepdebug tests suppressed + +FAIL: gdb.base/sepdebug.exp: finish with arguments disallowed (timeout) + +FAIL: gdb.base/sepdebug.exp: finish from outermost frame disallowed (timeout) + +FAIL: gdb.base/sepdebug.exp: kill program (timeout) + +ERROR: Delete all breakpoints in delete_breakpoints (timeout) + +UNRESOLVED: gdb.base/sepdebug.exp: break at factorial (timeout) + +FAIL: gdb.base/sepdebug.exp: run to factorial(6) (timeout) + +FAIL: gdb.base/sepdebug.exp: continue to factorial(5) (timeout) + +FAIL: gdb.base/sepdebug.exp: backtrace from factorial(5) (timeout) + +FAIL: gdb.base/sepdebug.exp: next to recursive call (timeout) + +ERROR: Delete all breakpoints in delete_breakpoints (timeout) + +UNRESOLVED: gdb.base/sepdebug.exp: next over recursive call (timeout) + +FAIL: gdb.base/sepdebug.exp: backtrace from factorial(5.1) (timeout) + +FAIL: gdb.base/sepdebug.exp: continue until exit at recursive next test (timeout) + + Hopefully just transient timeouts. + TODO. diff --git a/toolchain/logs b/toolchain/logs index 3d82d9f8..49d12a54 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 3d82d9f8c538a2bd3e3a6398e5431c3758943e9f +Subproject commit 49d12a54c40f6cfec100219e6c57bd791aebd10c -- cgit v1.2.3 From 4720c2271f55d91041b5bc5c62c9fe07fe7b075c Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 9 Nov 2012 12:34:27 +0100 Subject: open_issues/gdb: 20f498edfd7e57d3297febcf9c7c7d667cc74239 (2012-06-15) --- open_issues/gdb.mdwn | 187 +++------------------------------------------------ toolchain/logs | 2 +- 2 files changed, 11 insertions(+), 178 deletions(-) diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn index 65ed13a6..556f764a 100644 --- a/open_issues/gdb.mdwn +++ b/open_issues/gdb.mdwn @@ -33,8 +33,8 @@ git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --> -Last reviewed up to the [[Git mirror's 7a63e9515491f21eaf07301df87d389def20e317 -(2012-04-01) sources|source_repositories/gdb]]. +Last reviewed up to the [[Git mirror's 20f498edfd7e57d3297febcf9c7c7d667cc74239 +(2012-06-15) sources|source_repositories/gdb]]. * Globally @@ -65,7 +65,7 @@ Last reviewed up to the [[Git mirror's 7a63e9515491f21eaf07301df87d389def20e317 Here's a log of a GDB build run; this is from our [[Git repository|source_repositories/gdb]]'s `tschwinge/Ferry_Tagscherer` branch, -commit 7a63e9515491f21eaf07301df87d389def20e317 (2012-04-01), run on +commit 20f498edfd7e57d3297febcf9c7c7d667cc74239 (2012-06-15), run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C @@ -170,6 +170,11 @@ formats and more emulation vectors. 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' [] + * `dlopen`/`-ldl` + + -checking for library containing dlopen... none required + +checking for library containing dlopen... -ldl + * Why does GNU/Linux have an additional `-ldl -rdynamic` when linking `gdb`? @@ -202,8 +207,8 @@ 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, this has be seen for `gdb.base/structs-tf-td`, -`gdb.cp/meth-typedefs`, and an unknown (`?`) one ("57 PIDs before" `expect -[...] gdb.cp`). +`gdb.cp/meth-typedefs`, `gdb.multi/watchpoint-multi`, and an unknown (`?`) one +("57 PIDs before" `expect [...] gdb.cp`). ## Analysis @@ -245,176 +250,4 @@ GNU/Hurd, this has be seen for `gdb.base/structs-tf-td`, ../../../Ferry_Tagscherer/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c:29:24: fatal error: asm/unistd.h: No such file or directory - * fe19822761b4635f392875a186e48af446b40f41..7a63e9515491f21eaf07301df87d389def20e317): - - -PASS: gdb.base/break.exp: until bp_location1 - -PASS: gdb.base/break.exp: break on default location, 1st time - -PASS: gdb.base/break.exp: break on default location, 2nd time - -PASS: gdb.base/break.exp: break on default location, 3rd time - -PASS: gdb.base/break.exp: break on default location, 4th time - -PASS: gdb.base/break.exp: set to-be-silent break bp_location1 - -PASS: gdb.base/break.exp: set silent break bp_location1 - -PASS: gdb.base/break.exp: info silent break bp_location1 - -PASS: gdb.base/break.exp: hit silent break bp_location1 - -PASS: gdb.base/break.exp: stopped for silent break bp_location1 - -PASS: gdb.base/break.exp: thread-specific breakpoint on non-existent thread disallowed - -PASS: gdb.base/break.exp: thread-specific breakpoint on bogus thread ID disallowed - -PASS: gdb.base/break.exp: breakpoint with trailing garbage disallowed - -PASS: gdb.base/break.exp: step over breakpoint - -PASS: gdb.base/break.exp: clear line has no breakpoint disallowed - -PASS: gdb.base/break.exp: clear current line has no breakpoint disallowed - -PASS: gdb.base/break.exp: break marker3 #1 - -PASS: gdb.base/break.exp: break marker3 #2 - -PASS: gdb.base/break.exp: clear marker3 - -PASS: gdb.base/break.exp: set convenience variable $foo to bp_location11 - -PASS: gdb.base/break.exp: set breakpoint via convenience variable - -PASS: gdb.base/break.exp: set convenience variable $foo to 81.5 - -PASS: gdb.base/break.exp: set breakpoint via non-integer convenience variable disallowed - -PASS: gdb.base/break.exp: set breakpoint on to-be-called function - -PASS: gdb.base/break.exp: hit breakpoint on called function - -PASS: gdb.base/break.exp: backtrace while in called function - -PASS: gdb.base/break.exp: finish from called function - -PASS: gdb.base/break.exp: finish with arguments disallowed - -PASS: gdb.base/break.exp: finish from outermost frame disallowed - -PASS: gdb.base/break.exp: kill program - -PASS: gdb.base/break.exp: break at factorial - -PASS: gdb.base/break.exp: continue to factorial(5) - -PASS: gdb.base/break.exp: backtrace from factorial(5) - -PASS: gdb.base/break.exp: next to recursive call - -PASS: gdb.base/break.exp: next over recursive call - -PASS: gdb.base/break.exp: backtrace from factorial(5.1) - -PASS: gdb.base/break.exp: continue until exit at recursive next test - +FAIL: gdb.base/break.exp: until bp_location1 (timeout) - +FAIL: gdb.base/break.exp: break on default location, 1st time (timeout) - +FAIL: gdb.base/break.exp: break on default location, 2nd time (timeout) - +FAIL: gdb.base/break.exp: break on default location, 3rd time (timeout) - +FAIL: gdb.base/break.exp: break on default location, 4th time (timeout) - +ERROR: Delete all breakpoints in delete_breakpoints (timeout) - +UNRESOLVED: gdb.base/break.exp: setting breakpoint at main (timeout) - +FAIL: gdb.base/break.exp: break tests suppressed - +FAIL: gdb.base/break.exp: set to-be-silent break bp_location1 (timeout) - +FAIL: gdb.base/break.exp: set silent break bp_location1 (timeout) - +FAIL: gdb.base/break.exp: info silent break bp_location1 (timeout) - +FAIL: gdb.base/break.exp: hit silent break bp_location1 (timeout) - +FAIL: gdb.base/break.exp: stopped for silent break bp_location1 (timeout) - +FAIL: gdb.base/break.exp: thread-specific breakpoint on non-existent thread disallowed (timeout) - +FAIL: gdb.base/break.exp: thread-specific breakpoint on bogus thread ID disallowed (timeout) - +FAIL: gdb.base/break.exp: breakpoint with trailing garbage disallowed (timeout) - +FAIL: gdb.base/break.exp: step over breakpoint (timeout) - +FAIL: gdb.base/break.exp: clear line has no breakpoint disallowed (timeout) - +FAIL: gdb.base/break.exp: clear current line has no breakpoint disallowed (timeout) - +FAIL: gdb.base/break.exp: break marker3 #1 (timeout) - +FAIL: gdb.base/break.exp: break marker3 #2 (timeout) - +FAIL: gdb.base/break.exp: clear marker3 (timeout) - +FAIL: gdb.base/break.exp: set convenience variable $foo to bp_location11 (timeout) - +FAIL: gdb.base/break.exp: set breakpoint via convenience variable (timeout) - +FAIL: gdb.base/break.exp: set convenience variable $foo to 81.5 (timeout) - +FAIL: gdb.base/break.exp: set breakpoint via non-integer convenience variable disallowed (timeout) - +FAIL: gdb.base/break.exp: set breakpoint on to-be-called function (timeout) - +FAIL: gdb.base/break.exp: hit breakpoint on called function (timeout) - +FAIL: gdb.base/break.exp: backtrace while in called function (timeout) - +FAIL: gdb.base/break.exp: finish from called function (timeout) - +ERROR: Delete all breakpoints in delete_breakpoints (timeout) - +UNRESOLVED: gdb.base/break.exp: setting breakpoint at main (timeout) - +FAIL: gdb.base/break.exp: break tests suppressed - +FAIL: gdb.base/break.exp: (timeout) finish with arguments disallowed - +FAIL: gdb.base/break.exp: finish from outermost frame disallowed (timeout) - +FAIL: gdb.base/break.exp: kill program (timeout) - +ERROR: Delete all breakpoints in delete_breakpoints (timeout) - +UNRESOLVED: gdb.base/break.exp: break at factorial (timeout) - +FAIL: gdb.base/break.exp: run to factorial(6) (timeout) - +FAIL: gdb.base/break.exp: continue to factorial(5) (timeout) - +FAIL: gdb.base/break.exp: backtrace from factorial(5) (timeout) - +FAIL: gdb.base/break.exp: next to recursive call (timeout) - +ERROR: Delete all breakpoints in delete_breakpoints (timeout) - +UNRESOLVED: gdb.base/break.exp: next over recursive call (timeout) - +FAIL: gdb.base/break.exp: backtrace from factorial(5.1) (timeout) - +FAIL: gdb.base/break.exp: continue until exit at recursive next test (timeout) - - -PASS: gdb.base/sepdebug.exp: until bp_location1 - -PASS: gdb.base/sepdebug.exp: break on default location, 1st time - -PASS: gdb.base/sepdebug.exp: break on default location, 2nd time - -PASS: gdb.base/sepdebug.exp: break on default location, 3rd time - -PASS: gdb.base/sepdebug.exp: break on default location, 4th time - -PASS: gdb.base/sepdebug.exp: set to-be-silent break bp_location1 - -PASS: gdb.base/sepdebug.exp: set silent break bp_location1 - -PASS: gdb.base/sepdebug.exp: info silent break bp_location1 - -PASS: gdb.base/sepdebug.exp: hit silent break bp_location1 - -PASS: gdb.base/sepdebug.exp: stopped for silent break bp_location1 - -PASS: gdb.base/sepdebug.exp: thread-specific breakpoint on non-existent thread disallowed - -PASS: gdb.base/sepdebug.exp: thread-specific breakpoint on bogus thread ID disallowed - -PASS: gdb.base/sepdebug.exp: breakpoint with trailing garbage disallowed - -PASS: gdb.base/sepdebug.exp: step over breakpoint - -PASS: gdb.base/sepdebug.exp: clear line has no breakpoint disallowed - -PASS: gdb.base/sepdebug.exp: clear current line has no breakpoint disallowed - -PASS: gdb.base/sepdebug.exp: break marker3 #1 - -PASS: gdb.base/sepdebug.exp: break marker3 #2 - -PASS: gdb.base/sepdebug.exp: clear marker3 - -PASS: gdb.base/sepdebug.exp: set convenience variable $foo to bp_location11 - -PASS: gdb.base/sepdebug.exp: set breakpoint via convenience variable - -PASS: gdb.base/sepdebug.exp: set convenience variable $foo to 81.5 - -PASS: gdb.base/sepdebug.exp: set breakpoint via non-integer convenience variable disallowed - -PASS: gdb.base/sepdebug.exp: set breakpoint on to-be-called function - -PASS: gdb.base/sepdebug.exp: hit breakpoint on called function - -PASS: gdb.base/sepdebug.exp: backtrace while in called function - -PASS: gdb.base/sepdebug.exp: finish from called function - -PASS: gdb.base/sepdebug.exp: finish with arguments disallowed - -PASS: gdb.base/sepdebug.exp: finish from outermost frame disallowed - -PASS: gdb.base/sepdebug.exp: kill program - -PASS: gdb.base/sepdebug.exp: break at factorial - -PASS: gdb.base/sepdebug.exp: continue to factorial(5) - -PASS: gdb.base/sepdebug.exp: backtrace from factorial(5) - -PASS: gdb.base/sepdebug.exp: next to recursive call - -PASS: gdb.base/sepdebug.exp: next over recursive call - -PASS: gdb.base/sepdebug.exp: backtrace from factorial(5.1) - -PASS: gdb.base/sepdebug.exp: continue until exit at recursive next test - +FAIL: gdb.base/sepdebug.exp: until bp_location1 (timeout) - +FAIL: gdb.base/sepdebug.exp: break on default location, 1st time (timeout) - +FAIL: gdb.base/sepdebug.exp: break on default location, 2nd time (timeout) - +FAIL: gdb.base/sepdebug.exp: break on default location, 3rd time (timeout) - +FAIL: gdb.base/sepdebug.exp: break on default location, 4th time (timeout) - +ERROR: Delete all breakpoints in delete_breakpoints (timeout) - +UNRESOLVED: gdb.base/sepdebug.exp: setting breakpoint at main (timeout) - +FAIL: gdb.base/sepdebug.exp: sepdebug tests suppressed - +FAIL: gdb.base/sepdebug.exp: set to-be-silent break bp_location1 (timeout) - +FAIL: gdb.base/sepdebug.exp: set silent break bp_location1 (timeout) - +FAIL: gdb.base/sepdebug.exp: info silent break bp_location1 (timeout) - +FAIL: gdb.base/sepdebug.exp: hit silent break bp_location1 (timeout) - +FAIL: gdb.base/sepdebug.exp: stopped for silent break bp_location1 (timeout) - +FAIL: gdb.base/sepdebug.exp: thread-specific breakpoint on non-existent thread disallowed (timeout) - +FAIL: gdb.base/sepdebug.exp: thread-specific breakpoint on bogus thread ID disallowed (timeout) - +FAIL: gdb.base/sepdebug.exp: breakpoint with trailing garbage disallowed (timeout) - +FAIL: gdb.base/sepdebug.exp: step over breakpoint (timeout) - +FAIL: gdb.base/sepdebug.exp: clear line has no breakpoint disallowed (timeout) - +FAIL: gdb.base/sepdebug.exp: clear current line has no breakpoint disallowed (timeout) - +FAIL: gdb.base/sepdebug.exp: break marker3 #1 (timeout) - +FAIL: gdb.base/sepdebug.exp: break marker3 #2 (timeout) - +FAIL: gdb.base/sepdebug.exp: clear marker3 (timeout) - +FAIL: gdb.base/sepdebug.exp: set convenience variable $foo to bp_location11 (timeout) - +FAIL: gdb.base/sepdebug.exp: set breakpoint via convenience variable (timeout) - +FAIL: gdb.base/sepdebug.exp: set convenience variable $foo to 81.5 (timeout) - +FAIL: gdb.base/sepdebug.exp: set breakpoint via non-integer convenience variable disallowed (timeout) - +FAIL: gdb.base/sepdebug.exp: set breakpoint on to-be-called function (timeout) - +FAIL: gdb.base/sepdebug.exp: hit breakpoint on called function (timeout) - +FAIL: gdb.base/sepdebug.exp: backtrace while in called function (timeout) - +FAIL: gdb.base/sepdebug.exp: finish from called function (timeout) - +ERROR: Delete all breakpoints in delete_breakpoints (timeout) - +UNRESOLVED: gdb.base/sepdebug.exp: setting breakpoint at main (timeout) - +FAIL: gdb.base/sepdebug.exp: sepdebug tests suppressed - +FAIL: gdb.base/sepdebug.exp: finish with arguments disallowed (timeout) - +FAIL: gdb.base/sepdebug.exp: finish from outermost frame disallowed (timeout) - +FAIL: gdb.base/sepdebug.exp: kill program (timeout) - +ERROR: Delete all breakpoints in delete_breakpoints (timeout) - +UNRESOLVED: gdb.base/sepdebug.exp: break at factorial (timeout) - +FAIL: gdb.base/sepdebug.exp: run to factorial(6) (timeout) - +FAIL: gdb.base/sepdebug.exp: continue to factorial(5) (timeout) - +FAIL: gdb.base/sepdebug.exp: backtrace from factorial(5) (timeout) - +FAIL: gdb.base/sepdebug.exp: next to recursive call (timeout) - +ERROR: Delete all breakpoints in delete_breakpoints (timeout) - +UNRESOLVED: gdb.base/sepdebug.exp: next over recursive call (timeout) - +FAIL: gdb.base/sepdebug.exp: backtrace from factorial(5.1) (timeout) - +FAIL: gdb.base/sepdebug.exp: continue until exit at recursive next test (timeout) - - Hopefully just transient timeouts. - TODO. diff --git a/toolchain/logs b/toolchain/logs index 49d12a54..2d4026a6 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 49d12a54c40f6cfec100219e6c57bd791aebd10c +Subproject commit 2d4026a690b90215debd68b2933c2fe8a7706cf3 -- cgit v1.2.3 From c727018925ea3401b4582dac8292ff8499cde248 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 11 Nov 2012 00:57:42 +0100 Subject: open_issues/gdb: 69a5e2b022c7d15ec4c7c49e6f53a8d924d3b72b (2012-08-15) --- open_issues/gdb.mdwn | 126 ++++++++++++++++++++++++++++++++++++++++++++++++--- toolchain/logs | 2 +- 2 files changed, 121 insertions(+), 7 deletions(-) diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn index 556f764a..2db2dbbd 100644 --- a/open_issues/gdb.mdwn +++ b/open_issues/gdb.mdwn @@ -33,8 +33,8 @@ git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --> -Last reviewed up to the [[Git mirror's 20f498edfd7e57d3297febcf9c7c7d667cc74239 -(2012-06-15) sources|source_repositories/gdb]]. +Last reviewed up to the [[Git mirror's 69a5e2b022c7d15ec4c7c49e6f53a8d924d3b72b +(2012-08-15) sources|source_repositories/gdb]]. * Globally @@ -60,12 +60,15 @@ Last reviewed up to the [[Git mirror's 20f498edfd7e57d3297febcf9c7c7d667cc74239 * [[gdbserver]] + * 82763a3d329b0d342d0273941b1521be9ef0c604 »MODIFIED is unknown, pass it as + true.« + # Build Here's a log of a GDB build run; this is from our [[Git repository|source_repositories/gdb]]'s `tschwinge/Ferry_Tagscherer` branch, -commit 20f498edfd7e57d3297febcf9c7c7d667cc74239 (2012-06-15), run on +commit 69a5e2b022c7d15ec4c7c49e6f53a8d924d3b72b (2012-08-15), run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C @@ -81,7 +84,7 @@ 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 210 MiB and needs roughly 6 min on kepler.SCHWINGE and 25 +This takes up around 200 MiB and needs roughly 7 min on kepler.SCHWINGE and 23 min on coulomb.SCHWINGE. -Last reviewed up to the [[Git mirror's 69a5e2b022c7d15ec4c7c49e6f53a8d924d3b72b -(2012-08-15) sources|source_repositories/gdb]]. +Last reviewed up to the [[Git mirror's 38950d85c63f8528d11112d10b11bfa76e3d5bf8 +(2012-11-11) sources|source_repositories/gdb]]. * Globally @@ -68,7 +68,7 @@ Last reviewed up to the [[Git mirror's 69a5e2b022c7d15ec4c7c49e6f53a8d924d3b72b Here's a log of a GDB build run; this is from our [[Git repository|source_repositories/gdb]]'s `tschwinge/Ferry_Tagscherer` branch, -commit 69a5e2b022c7d15ec4c7c49e6f53a8d924d3b72b (2012-08-15), run on +commit 38950d85c63f8528d11112d10b11bfa76e3d5bf8 (2012-11-11), run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C @@ -219,9 +219,8 @@ 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, this has be seen for `gdb.base/structs-tf-td`, -`gdb.cp/meth-typedefs`, `gdb.multi/watchpoint-multi`, and an unknown (`?`) one -("57 PIDs before" `expect [...] gdb.cp`). +GNU/Hurd, these generally are `gdb.multi/watchpoint-multi`, and an unknown +(`?`) one ("57 PIDs before" `expect [...] gdb.cp`). ## Analysis @@ -242,98 +241,6 @@ GNU/Hurd, this has be seen for `gdb.base/structs-tf-td`, From `send signal TSTP` on, all FAIL running into timeouts. - * `gdb.python/py-inferior.exp` - - This testsuite was introduced before - 70044c11b4bf873773972c0f8784188356389bfc and apart from one threading - test has basically been working fine until now: - - Running ../../../master/gdb/testsuite/gdb.python/py-inferior.exp ... - PASS: gdb.python/py-inferior.exp: get inferiors list - PASS: gdb.python/py-inferior.exp: verify inferiors list - PASS: gdb.python/py-inferior.exp: test equality comparison (true) - PASS: gdb.python/py-inferior.exp: test Inferior.num - PASS: gdb.python/py-inferior.exp: test Inferior.pid - PASS: gdb.python/py-inferior.exp: test Inferior.was_attached - FAIL: gdb.python/py-inferior.exp: test Inferior.threads - PASS: gdb.python/py-inferior.exp: read str contents - PASS: gdb.python/py-inferior.exp: write str - PASS: gdb.python/py-inferior.exp: ensure str was changed in the inferior - [about five dozen of additional PASSes] - - In - 20f498edfd7e57d3297febcf9c7c7d667cc74239..69a5e2b022c7d15ec4c7c49e6f53a8d924d3b72b - further threading tests have been added and we now see: - - Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.python/py-inferior.exp ... - [...] - PASS: gdb.python/py-inferior.exp: successfully compiled posix threads test case - (gdb) run - Starting program: /media/erich/home/thomas/tmp/gdb/tschwinge/Ferry_Tagscherer.build/gdb/testsuite/gdb.python/py-inferior - [New Thread 25565.5] - - Breakpoint 1, main (argc=1, argv=0x15ff218) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.python/py-inferior.c:88 - 88 test_threads (); - (gdb) python inferiors = gdb.inferiors () - (gdb) PASS: gdb.python/py-inferior.exp: get inferiors list - python print inferiors - (,) - (gdb) PASS: gdb.python/py-inferior.exp: verify inferiors list - python i0 = inferiors[0] - (gdb) python print 'result =', i0 == inferiors[0] - result = True - (gdb) PASS: gdb.python/py-inferior.exp: test equality comparison (true) - python print 'result =', i0.num - result = 1 - (gdb) PASS: gdb.python/py-inferior.exp: test Inferior.num - python print 'result =', i0.pid - result = 25565 - (gdb) PASS: gdb.python/py-inferior.exp: test Inferior.pid - 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 25565.6] - [New Thread 25565.7] - [New Thread 25565.8] - [New Thread 25565.9] - [New Thread 25565.10] - [New Thread 25565.11] - [New Thread 25565.12] - [New Thread 25565.13] - - Breakpoint 2, check_threads (barrier=0x15ff134) 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) - python str = gdb.inferiors()[0].read_memory (addr, 5) - FAIL: gdb.python/py-inferior.exp: read str contents (timeout) - [All following 80 tests FAIL (timeout).] - py print gdb.selected_inferior().num - FAIL: gdb.python/py-inferior.exp: Third inferior selected (timeout) - inferior 1 - FAIL: gdb.python/py-inferior.exp: Switch to first inferior (timeout) - remove-inferiors 3 - FAIL: gdb.python/py-inferior.exp: Remove second inferior (timeout) - [System becomes completely unresponsible, but nothing on the Mach console.] - - The last FAIL in fact is from the last action in that testsuite. - * `UNSUPPORTED: gdb.threads/ia64-sigill.exp: Couldn't compile ../../../master/gdb/testsuite/gdb.threads/ia64-sigill.c: unrecognized error` ../../../master/gdb/testsuite/gdb.threads/ia64-sigill.c:29:24: fatal error: asm/unistd.h: No such file or directory @@ -364,4 +271,10 @@ GNU/Hurd, this has be seen for `gdb.base/structs-tf-td`, ../../../Ferry_Tagscherer/gdb/testsuite/gdb.threads/sigstep-threads.c:22:24: fatal error: asm/unistd.h: No such file or directory + * `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. + TODO. diff --git a/toolchain/logs b/toolchain/logs index 991ed970..1084b70a 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 991ed9703a95f8945518e48c173b59124a26ffaa +Subproject commit 1084b70a4926752fc06e78e79e1b58f815b4dd2a -- cgit v1.2.3 From 562782408dd69798f60fd9d343b8f51f56ba2600 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 21 Nov 2012 10:23:44 +0100 Subject: open_issues/code_analysis: s-spider. --- open_issues/code_analysis.mdwn | 2 ++ 1 file changed, 2 insertions(+) diff --git a/open_issues/code_analysis.mdwn b/open_issues/code_analysis.mdwn index 00915651..9089eea4 100644 --- a/open_issues/code_analysis.mdwn +++ b/open_issues/code_analysis.mdwn @@ -83,6 +83,8 @@ There is a [[!FF_project 276]][[!tag bounty]] on some of these tasks. * [sixgill](http://sixgill.org/) + * [s-spider](http://code.google.com/p/s-spider/) + * [Coverity](http://www.coverity.com/) (nonfree?) -- cgit v1.2.3 From 61ce0487a68560c58367d3a82f30ab00345cd72f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 21 Nov 2012 10:38:04 +0100 Subject: open_issues/code_analysis: GCC's AddressSanitizer. --- open_issues/code_analysis.mdwn | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/open_issues/code_analysis.mdwn b/open_issues/code_analysis.mdwn index 9089eea4..a7a7031a 100644 --- a/open_issues/code_analysis.mdwn +++ b/open_issues/code_analysis.mdwn @@ -127,6 +127,12 @@ There is a [[!FF_project 276]][[!tag bounty]] on some of these tasks. ah, no, the libthreads code properly sets the guard, just for grow-up stacks + * GCC's AddressSanitizer (ASan; `-faddress-sanitizer`) + + [Finding races and memory errors with GCC instrumentation + (AddressSanitizer)](http://gcc.gnu.org/wiki/cauldron2012#Finding_races_and_memory_errors_with_GCC_instrumentation_.28AddressSanitizer.29), + GNU Tools Cauldron 2012. + * Input fuzzing Not a new topic; has been used (and a paper published) for early UNIX -- cgit v1.2.3 From 2bf43f4d28c19f346d4261630dadcca15f1389df Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 25 Nov 2012 10:04:14 +0100 Subject: open_issues/gcc: 3336556d2cb32f46322922a83015f760cfb79d8f (2012-11-13; 6b7a0b5b7dfa4071c95418040cc0ee1528ba7915 (2012-08-05)) --- hurd/translator/exec.mdwn | 4 +- open_issues/exec_memory_leaks.mdwn | 24 +++++ open_issues/fifo_thread_explosion.mdwn | 20 ++++ open_issues/gcc.mdwn | 161 +++++++++++++++++++++++++++++---- toolchain/logs | 2 +- 5 files changed, 189 insertions(+), 22 deletions(-) create mode 100644 open_issues/exec_memory_leaks.mdwn create mode 100644 open_issues/fifo_thread_explosion.mdwn diff --git a/hurd/translator/exec.mdwn b/hurd/translator/exec.mdwn index d5b6bfbc..54abba7e 100644 --- a/hurd/translator/exec.mdwn +++ b/hurd/translator/exec.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2009, 2012 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 @@ -10,3 +10,5 @@ License|/fdl]]."]]"""]] The *exec* server, listening on `/servers/exec`, is responsible for preparing the execution of processes. + + * [[open_issues/exec_memory_leaks]]. diff --git a/open_issues/exec_memory_leaks.mdwn b/open_issues/exec_memory_leaks.mdwn new file mode 100644 index 00000000..1a73ce9a --- /dev/null +++ b/open_issues/exec_memory_leaks.mdwn @@ -0,0 +1,24 @@ +[[!meta copyright="Copyright © 2012 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]]."]]"""]] + +[[!tag open_issue_hurd]] + +There are is some memory leak in [[`exec`|hurd/translator/exec]]. After twelve +hours worth of `fork/exec` ([[GCC]]'s `check-c` part of the testsuite), we got: + + PID UID PPID PGrp Sess TH Vmem RSS %CPU User System Args + 4 0 3 1 1 10 392M 262M 0.0 2:18.29 2hrs /hurd/exec + +The *RSS* seems a tad high. Also the system part of CPU time consumption is +quite noticeable. In comparison: + + 0 0 1 1 1 19 131M 1.14M 0.0 3:30.25 9:17.79 /hurd/proc + 3 0 1 1 1 224 405M 12.6M 0.2 42:20.25 67min ext2fs --readonly --multiboot-command-line=root=device:hd0s6 --host-priv-port=1 --device-master-port=2 --exec-server-task=3 -T typed device:hd0s6 + 276 0 3 1 1 344 442M 28.2M 0.6 48:09.36 91min /hurd/ext2fs /dev/hd2s5 diff --git a/open_issues/fifo_thread_explosion.mdwn b/open_issues/fifo_thread_explosion.mdwn new file mode 100644 index 00000000..08f682f2 --- /dev/null +++ b/open_issues/fifo_thread_explosion.mdwn @@ -0,0 +1,20 @@ +[[!meta copyright="Copyright © 2012 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]]."]]"""]] + +[[!tag open_issue_hurd]] + +As reported in [[!message-id "87sj80yb3e.fsf@kepler.schwinge.homeip.net"]], +after a [[GCC]] build (native, so three stages bootstrap), we got: + + PID UID PPID PGrp Sess TH Vmem RSS %CPU User System Args + 449 1000 3 1 1 10118 782M 198M 0.0 0:40.78 2:26.65 /hurd/fifo + +The other processes, in particular two instances of ext2fs and one of [[exec]], +looked reasonable. diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn index d9940716..97dcb159 100644 --- a/open_issues/gcc.mdwn +++ b/open_issues/gcc.mdwn @@ -31,14 +31,14 @@ example. Especially all the compiler magic is all the same. -Last reviewed up to the [[Git mirror's dfed30bca14de84e0446cc02f5a27407dbfdc3e1 -(2012-06-11) sources|source_repositories/gcc]]. +Last reviewed up to the [[Git mirror's 6b7a0b5b7dfa4071c95418040cc0ee1528ba7915 +(2012-08-05) sources|source_repositories/gcc]]. has documentation for the `configure` switches. @@ -89,9 +89,9 @@ Last reviewed up to the [[Git mirror's dfed30bca14de84e0446cc02f5a27407dbfdc3e1 * `--enable-languages=[...]` - * GNAT is not yet ported / bootstrapped? + * [[Ada (GNAT)|GNAT]] support is work in progress. - * The Google Go's libgo (introduced in + * The [[Google Go's libgo|gccgo]] (introduced in e440a3286bc89368b8d3a8fd6accd47191790bf2 (2010-12-03)) needs OS configuration / support. @@ -136,9 +136,13 @@ Last reviewed up to the [[Git mirror's dfed30bca14de84e0446cc02f5a27407dbfdc3e1 * [-fstack-protector shouldn't use TLS in freestanding mode](http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838) + * See also commit bf1c0af128f33bd342636c4afeaa8f3a8a7cf8ca (reverted in + commit a204f0622242865ffea889bd698bc7c7bd236bd1), commit + 05c1aa95e6c37b3b281d749c76c673392941a031. + * Check before/after Joseph changes. (Should be fine.) - * 34618b3190c110b8926cc2b1db4b4eac95451995 + * 34618b3190c110b8926cc2b1db4b4eac95451995 »config-list.mk« What's this used for? (Check ML.) Ask to include i686-pc-gnu (once it is buildable out of the box)? See also @@ -194,6 +198,17 @@ Last reviewed up to the [[Git mirror's dfed30bca14de84e0446cc02f5a27407dbfdc3e1 to find out why some stuff wasn't compiling even after kfreebsd porting patches adding preprocessors checks for __GLIBC__ + GNU/kFreeBSD and GNU/kNetBSD: commit + 6396cc37141180db4d2c8f73cab4f5977d8a1e19 (2004-06-24, r83577), + GNU/kOpenSolaris: commit 3bef40126fb1633018fce47828df0fa9f65f110c + (2009-01-29, r143768). See also GDB commits + fda1b24c62843f81d31de2af57b1ed9c55f1e348 and + 1acb4f4ff73d20850a7524fc939d2651be75f47b, and binutils commits + e3081899be7570eb90ccfd5d767950d3a62871ee, + 127c4d4a4fe65bd17ea64db1be7f3c93d393afcb, + 47dbf5b634b955c2db1221715d15751e1281546a, and + ad2be7e8b846f4cd67fa1e032f98d5dc1cdb6b8d. + IRC, freenode, #hurd, 2012-05-25: Hi, looks like __GLIBC__ is not defined by default for GNU? @@ -248,6 +263,8 @@ Last reviewed up to the [[Git mirror's dfed30bca14de84e0446cc02f5a27407dbfdc3e1 what should be done first is, however, find out why that define has been added to gcc + [[!message-id "201211061305.02565.pino@debian.org"]]. + * [low] Does `-mcpu=native` etc. work? (For example, 2ae1f0cc764e998bfc684d662aba0497e8723e52.) @@ -278,13 +295,15 @@ Last reviewed up to the [[Git mirror's dfed30bca14de84e0446cc02f5a27407dbfdc3e1 C.f. [[!message-id "x57jobtqx89w.fsf@frobland.mtv.corp.google.com"]], [[!message-id "x57jd359fkx3.fsf@frobland.mtv.corp.google.com"]] as well as [[!debbug 629866]]/[[!message-id - "20110609002620.GA16719@const.famille.thibault.fr"]]. + "20110609002620.GA16719@const.famille.thibault.fr"]]. commit + 026e608ecebcb2a6193971006a85276307d79b00. # Build Here's a log of a GCC build run; this is from our [[Git repository's -2e2db3f92b534460c68c2f9ae64455884424beb6 (2012-06-15; 2012-06-06) +3336556d2cb32f46322922a83015f760cfb79d8f (2012-11-13; +6b7a0b5b7dfa4071c95418040cc0ee1528ba7915 (2012-08-05)) sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C @@ -297,12 +316,12 @@ sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE. Different hosts may default to different shells and compiler versions; thus harmonized. -This takes up around 3.1 GiB, and needs roughly 3.0 h on kepler.SCHWINGE and -12.75 h on coulomb.SCHWINGE. +This takes up around 3.1 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and +14.5 h on coulomb.SCHWINGE. @@ -482,6 +501,15 @@ This takes up around 3.1 GiB, and needs roughly 3.0 h on kepler.SCHWINGE and * `libatomic` on GNU/Linux compiles several more files than on GNU/Hurd. Is that correct? Probably futex support. + * 2e2db3f92b534460c68c2f9ae64455884424beb6..3336556d2cb32f46322922a83015f760cfb79d8f + + Both GNU/Linux and GNU/Hurd: + + -checking assembler for rep and lock prefix... yes + +checking assembler for rep and lock prefix... no + + TODO. + # Install @@ -514,24 +542,117 @@ min on coulomb.SCHWINGE. Testing on GNU/Hurd is blocked on [[fork_mach_port_mod_refs_ekern_urefs_owerflow]]. -TODO. Can use parallel testing, see [[!message-id -"20110331070322.GI11563@sunsite.ms.mff.cuni.cz"]]. +TODO. On GNU/Hurd, it is advisable to reboot after having built and installed +GCC, before running the testsuite, as otherwise there seems to be a tendency +that the system crashes during the `gcc.c-torture/compile/limits-structnest.c` +tests, which are rather memory hungry, see [[!message-id +"87bol6aixd.fsf@schwinge.name"]]. Likewise, it also seems advisable to add +further reboots in between, that is, separate `make check`'s `check-host` into +several separate runs, and then one for `check-target` (see +`[build]/Makefile:do-check`, `[build]/gcc/Makefile:CHECK_TARGETS`), as +otherwise there seems to be a tendency for the system crashing sooner or later. +(Running `check-host` accumulates to something like 44 hours worth of +forking/execing of GCC and testcases.) On GNU/Linux we run it in one go, so +that we'll catch any fundamental rearrangements of/additions to the testsuites. + +kepler.SCHWINGE: + + $ make -k RUNTESTFLAGS=-v check 2>&1 | tee log_test + [...] + +coulomb.SCHWINGE: + + $ grep ^CHECK_TARGETS gcc/Makefile + CHECK_TARGETS = check-ada check-c check-c++ check-fortran check-java check-lto check-objc - $ make -k RUNTESTFLAGS=-v check 2>&1 | tee log_check + $ export LC_ALL=C + $ t=check-ada/t=check-c/t=check-c++/t=check-fortran/t=check-java/t=check-lto/t=check-objc + $ make -k -C gcc RUNTESTFLAGS=-v "$t" 2>&1 | tee log_test_gcc_"$t" + [...] + $ make -k RUNTESTFLAGS=-v check-target 2>&1 | tee log_test_check-target [...] -This needs roughly 6.5 h on kepler.SCHWINGE and 50.25 h on coulomb.SCHWINGE. +This needs roughly 6.75 h on kepler.SCHWINGE and 3.75 h (`gcc/check-ada`) + +12.5 h (`gcc/check-c`) + 4.5 h (`gcc/check-c++`) + 5.25 h (`gcc/check-fortran`) ++ 0 h (`gcc/check-java`) + 0 h (`gcc/check-lto`) + 0.5 h (`gcc/check-objc`) + +8.5 h (`check-target`) = 35 h on coulomb.SCHWINGE. ## Analysis $ toolchain/logs/process gcc test -TODO. + * PTYs + + Occasionally tests FAIL due to: + + spawn -open -1 failed, 1 5, The system has no more ptys. Ask your system administrator to create more. + + TODO. + + * TODO + + +## Enhancements + + +### Parallel Testing + +[[!message-id "20110331070322.GI11563@sunsite.ms.mff.cuni.cz"]]. + + +### Distributed Testing + + +#### IRC, OFTC, #gcc, 2012-05-31 + jsm28: in your mentor testing, you have the source and build + tree available for make check? or it's a pure installed-tree test? + dnovillo: Source tree, install tree, no build tree. + jsm28: so, you run make check on top of the source tree or copy + the */testsuite trees to a testing area? + Create a site.exp and do runtest in a temporary directory. runtest + is pointed to the source tree to find sources. + For cross testing for GNU/Linux targets, the temporary directory is + mounted at the same path on host and target. + jsm28: thanks. i guess i'll have to find the slice of the + source tree i need to copy. + jsm28: for libstdc++ do you write a different site.exp? + i noticed that it generates a different site,exp there. + The site.exp is mostly the same for all testsuites (so includes + settings that only some testsuites use). + ok, thanks. + and when you say "pointed to the source tree" you mean "set + srcdir /path/to/top/of/gcc" ? + (in site.exp) + The GDB testsuite requires that you run the GDB testsuite's + configure script in the temporary directory where you will run runtest. + I don't think any GCC testsuites we use have requirements like that. + dnovillo: --srcdir option to runtest. + ah, yes. + (and --tool, --target_board etc.) + right + since i'm distributing the tests. i want each node to only do a + bunch of files. this means that i either use 'tool.exp=file-pattern' or + simply copy the subset of files i want tool.exp to find. + i chose the second approach, but that breaks in a handful of + cases that need files from other sub-directories. + like g++.dg gcc.dg using stuff from c-c++-common. + for libstdc++, the possibilities for splitting are enormous as + it has many directories. + but i'm not setting it right. runtest runs without even trying + to test anything. + i'm not having it pick up the right driver. + Probably all .exp files should be copied to anywhere running + testsuites, since some read .exp files from other directories. + jsm28: that could be it too. it's irritating that libstdc++ + does not even error out. runtest just does nothing and returns 0. -# Specific Languages +##### IRC, OFTC, #gcc, 2012-06-06 - * [[GNAT]] + any libstdc++ maintainer around? + or, does anyone know when the testsuite/data files are copied + into the running testsuite/ dir? + seems to be done in advance by make. - * [[gccgo]] +##### [[!message-id "4FC7791E.6040407@gmail.com"]] diff --git a/toolchain/logs b/toolchain/logs index 1084b70a..f168fcad 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 1084b70a4926752fc06e78e79e1b58f815b4dd2a +Subproject commit f168fcad9d41a6ac88ce24da8238e9c417a9f114 -- cgit v1.2.3 From 69f4f531625bb0fa3c5ab667279106dd77ae9732 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 27 Nov 2012 17:39:50 +0100 Subject: hurd/debugging/translator/capturing_stdout_and_stderr: Enhance example. --- hurd/debugging/translator/capturing_stdout_and_stderr.mdwn | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn b/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn index b7cfc3c9..47fbbc48 100644 --- a/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn +++ b/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2008, 2009, 2010 Free Software Foundation, +[[!meta copyright="Copyright © 2008, 2009, 2010, 2012 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -6,8 +6,8 @@ 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]]."]]"""]] Sometimes it may already be helpful to capture a translator's `stdout` and `stderr`, for example in this situation where [[translator/pfinet]] was @@ -15,13 +15,14 @@ silently dying all the time, without any console output: $ sudo settrans -fgap ↩ /servers/socket/2 ↩ - /bin/sh -c '/hurd/pfinet -i eth0 -a [...] > /tmp/stdout 2> /tmp/stderr' + /bin/sh -c 'exec >> /root/pfinet.log 2>&1 && date && ↩ + /hurd/pfinet -i eth0 -a [...]' $ [...] - $ cat /tmp/stdout + $ cat /root/pfinet.log + [date] NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP TCP: Hash tables configured (ehash 65536 bhash 65536) - $ cat /tmp/stderr pfinet: ../../hurd.work/pfinet/ethernet.c:196: ethernet_xmit: Unexpected error: (os/device) invalid IO size. (Trying to run [[GDB]] in this case was of no help -- due to a bug in GDB -- cgit v1.2.3 From 5cc8714e4af82bec2ad7ea2d2479016e5a74de9b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 27 Nov 2012 17:46:59 +0100 Subject: open_issues/code_analysis: Add some more references. Engineering zero-defect software by Eric S. Raymond, CIL, Frama-C. --- open_issues/code_analysis.mdwn | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/open_issues/code_analysis.mdwn b/open_issues/code_analysis.mdwn index a7a7031a..fd8a36de 100644 --- a/open_issues/code_analysis.mdwn +++ b/open_issues/code_analysis.mdwn @@ -42,10 +42,13 @@ There is a [[!FF_project 276]][[!tag bounty]] on some of these tasks. "1123688017.3905.22.camel@buko.sinrega.org"]]. This could be checked by a static analysis tool. - * [Static Source Code Analysis Tools for C](http://spinroot.com/static/) - * [[!wikipedia List_of_tools_for_static_code_analysis]] + * [Engineering zero-defect software](http://esr.ibiblio.org/?p=4340), Eric + S. Raymond, 2012-05-13 + + * [Static Source Code Analysis Tools for C](http://spinroot.com/static/) + * [Cppcheck](http://sourceforge.net/apps/mediawiki/cppcheck/) For example, [Debian's hurd_20110319-2 @@ -59,13 +62,9 @@ There is a [[!FF_project 276]][[!tag bounty]] on some of these tasks. * - * clang + * [clang](http://www.google.com/search?q=clang+analysis) - * - - * Linux' sparse - - * + * [Linux' sparse](https://sparse.wiki.kernel.org/) * @@ -85,6 +84,10 @@ There is a [[!FF_project 276]][[!tag bounty]] on some of these tasks. * [s-spider](http://code.google.com/p/s-spider/) + * [CIL (C Intermediate Language)](http://kerneis.github.com/cil/) + + * [Frama-C](http://frama-c.com/) + * [Coverity](http://www.coverity.com/) (nonfree?) -- cgit v1.2.3 From ae1cc0d932c8bb939fa2037e6183c1ce8f550942 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 27 Nov 2012 22:30:22 +0100 Subject: open_issues/code_analysis: MALLOC_CHECK_, MALLOC_PERTURB_. --- open_issues/code_analysis.mdwn | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/open_issues/code_analysis.mdwn b/open_issues/code_analysis.mdwn index fd8a36de..b3908243 100644 --- a/open_issues/code_analysis.mdwn +++ b/open_issues/code_analysis.mdwn @@ -103,18 +103,25 @@ There is a [[!FF_project 276]][[!tag bounty]] on some of these tasks. * - * IRC, freenode, #glibc, 2011-09-28 - - two things you can do -- there is an environment variable - (DEBUG_MALLOC_ iirc?) that can be set to 2 to make ptmalloc (glibc's - allocator) more forceful and verbose wrt error checking - another is to grab a copy of Tor's source tree and copy out - OpenBSD's allocator (its a clearly-identifyable file in the tree); - LD_PRELOAD it or link it into your app, it is even more aggressive - about detecting memory misuse. - third, Red hat has a gdb python plugin that can instrument - glibc's heap structure. its kinda handy, might help? - MALLOC_CHECK_ was the envvar you want, sorry. + * `MALLOC_CHECK_`/`MALLOC_PERTURB_` + + * IRC, freenode, #glibc, 2011-09-28 + + two things you can do -- there is an environment + variable (DEBUG_MALLOC_ iirc?) that can be set to 2 to make + ptmalloc (glibc's allocator) more forceful and verbose wrt error + checking + another is to grab a copy of Tor's source tree and copy + out OpenBSD's allocator (its a clearly-identifyable file in the + tree); LD_PRELOAD it or link it into your app, it is even more + aggressive about detecting memory misuse. + third, Red hat has a gdb python plugin that can + instrument glibc's heap structure. its kinda handy, might help? + MALLOC_CHECK_ was the envvar you want, sorry. + + * [`MALLOC_PERTURB_`](http://udrepper.livejournal.com/11429.html) + + * * In context of [[!message-id "1341350006-2499-1-git-send-email-rbraun@sceen.net"]]/the `alloca` issue -- cgit v1.2.3 From 111a12ba9002c0e69fb7976880ffced769622688 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 28 Nov 2012 16:01:11 +0100 Subject: hurd/libstore/nbd_store: Link to a few NBD servers. --- hurd/libstore/nbd_store.mdwn | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/hurd/libstore/nbd_store.mdwn b/hurd/libstore/nbd_store.mdwn index 5874b162..b27bb9df 100644 --- a/hurd/libstore/nbd_store.mdwn +++ b/hurd/libstore/nbd_store.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +[[!meta copyright="Copyright © 2007, 2008, 2009, 2012 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -10,3 +10,23 @@ is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!meta title="nbd store: Linux-compatible network block device"]] + +[[!wikipedia "Network block device"]]. + + +# Servers + + +## [Network Block Device (TCP version)](http://nbd.sourceforge.net/) + +[[tschwinge]] once was testing this (years ago), and found it didn't work. +Perhaps the protocol was extended? + + +## [xNBD](https://bitbucket.org/hirofuchi/xnbd/) + + +## [jNbd](http://vanheusden.com/java/JNbd/) + + +## [BlackHole](http://vanheusden.com/java/BlackHole/) -- cgit v1.2.3 From 646f30e7ca95e161c87e0bce9d40a7e7b9204e4b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 30 Nov 2012 09:01:51 +0100 Subject: open_issues/whole_system_debugging: New. --- microkernel/mach/message.mdwn | 3 ++- open_issues/whole_system_debugging.mdwn | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 open_issues/whole_system_debugging.mdwn diff --git a/microkernel/mach/message.mdwn b/microkernel/mach/message.mdwn index 6c6cfb1e..4c49af17 100644 --- a/microkernel/mach/message.mdwn +++ b/microkernel/mach/message.mdwn @@ -12,7 +12,8 @@ License|/fdl]]."]]"""]] *Messages* are collections of typed data, with a defined layout, including an [[ID|msgh_id]]. -They are used for [[IPC]], and are sent to and received from [[port]]s. +They are used for [[IPC]], and are sent to and received from [[port]]s using +the `mach_msg` interface. These messages are not only opaque data. They can also contain [[port rights|port]] to be passed to another [[task]]. Port rights are either diff --git a/open_issues/whole_system_debugging.mdwn b/open_issues/whole_system_debugging.mdwn new file mode 100644 index 00000000..b438c5cf --- /dev/null +++ b/open_issues/whole_system_debugging.mdwn @@ -0,0 +1,19 @@ +[[!meta copyright="Copyright © 2012 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]]."]]"""]] + +[[!tag open_issue_gdb open_issue_gnumach]] + +Given our distributed system structure, it'd be immensely useful then when a +[[RPC]] to another entitiy is made, [[GDB]] followed suit. + +[[GDB]] does have some *multi-process* debugging infrastructure which should +basically be usable for this. + +[[`mach_msg`|microkernel/mach/message]] is the *great barrier*, of course. -- cgit v1.2.3 From 45d76dc1c4c523d5773b154f3d01a4a8b8ccb769 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 30 Nov 2012 09:04:14 +0100 Subject: glibc/signal/discussion: Suitability of a linked list for _hurd_sigstates? --- glibc/signal/discussion.mdwn | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 glibc/signal/discussion.mdwn diff --git a/glibc/signal/discussion.mdwn b/glibc/signal/discussion.mdwn new file mode 100644 index 00000000..064c1c5b --- /dev/null +++ b/glibc/signal/discussion.mdwn @@ -0,0 +1,18 @@ +[[!meta copyright="Copyright © 2012 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]]."]]"""]] + + +# `_hurd_sigstates` + +In an [[hurd/translator/ext2fs]] instance with 1068 threads, `_hurd_sigstates` +was a linked with with 1067 entries, in one with 351 threads, 351 entries. Is +this noticeable already? Perhaps a different data structure is needed? +Though, a linked list is perfect for the common case of processes with only a +handful of threads. -- cgit v1.2.3 From ef6c5d9fe2ff7b5c0756ccba74145bec6b69dc55 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 30 Nov 2012 09:04:45 +0100 Subject: open_issues/gcc: Rerun build and install using SSD for root and data filesystems. --- open_issues/gcc.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn index 97dcb159..70a26a16 100644 --- a/open_issues/gcc.mdwn +++ b/open_issues/gcc.mdwn @@ -317,7 +317,7 @@ Different hosts may default to different shells and compiler versions; thus harmonized. This takes up around 3.1 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and -14.5 h on coulomb.SCHWINGE. +14 h on coulomb.SCHWINGE. -Last reviewed up to the [[Git mirror's 6b7a0b5b7dfa4071c95418040cc0ee1528ba7915 -(2012-08-05) sources|source_repositories/gcc]]. +Last reviewed up to the [[Git mirror's 769bf18a20ee2540ca7601cdafabd62b18b9751b +(2012-10-01) sources|source_repositories/gcc]]. has documentation for the `configure` switches. @@ -74,19 +74,22 @@ Last reviewed up to the [[Git mirror's 6b7a0b5b7dfa4071c95418040cc0ee1528ba7915 * [[`libmudflap`|libmudflap]]. - * Might [`-fsplit-stack`](http://nickclifton.livejournal.com/6889.html) be - worthwhile w.r.t. our [[multithreaded|multithreading]] libraries? + * [`-fsplit-stack`](http://nickclifton.livejournal.com/6889.html) * Also see `libgcc/config/i386/morestack.S`: comments w.r.t - `TARGET_THREAD_SPLIT_STACK_OFFSET`; likely needs porting. + `TARGET_THREAD_SPLIT_STACK_OFFSET`/`%gs:0x30` usage; likely needs + porting. - As per `libgcc/config/i386/t-stack-i386`, the former file is only used for - `-fsplit-stack` support -- which is currently enabled for us in - `libgcc/config.host`, but not usable via GCC proper. + * As per `libgcc/config/i386/t-stack-i386`, the former file is only used + for `-fsplit-stack` support -- which is currently enabled for us in + `libgcc/config.host`. * `gcc/config/gnu-user.h` defines `*SPLIT_STACK*` macros -- which aren't valid for us (yet), I think. + * Might `-fsplit-stack` be useful for us with respect to our + [[multithreaded|multithreading]] libraries? + * `--enable-languages=[...]` * [[Ada (GNAT)|GNAT]] support is work in progress. @@ -302,13 +305,13 @@ Last reviewed up to the [[Git mirror's 6b7a0b5b7dfa4071c95418040cc0ee1528ba7915 # Build Here's a log of a GCC build run; this is from our [[Git repository's -3336556d2cb32f46322922a83015f760cfb79d8f (2012-11-13; -6b7a0b5b7dfa4071c95418040cc0ee1528ba7915 (2012-08-05)) +b401cb7ed15602d244a6807835b0b9d740a302a8 (2012-11-26; +769bf18a20ee2540ca7601cdafabd62b18b9751b (2012-10-01)) sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C $ (cd ../master/ && contrib/gcc_update --touch) - $ ../master/configure --prefix="$PWD".install SHELL=/bin/dash CC=gcc-4.6 CXX=g++-4.6 --enable-build-with-cxx --enable-languages=all,ada 2>&1 | tee log_build + $ ../master/configure --prefix="$PWD".install SHELL=/bin/dash CC=gcc-4.6 CXX=g++-4.6 --enable-languages=all,ada 2>&1 | tee log_build [...] $ make 2>&1 | tee log_build_ [...] @@ -401,7 +404,7 @@ This takes up around 3.1 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and Just different order of object files, or another problem? TODO - * `libobjc/encoding.c`: + * `libobjc/encoding.c`: libtool: compile: [...]/hurd/master.build/./gcc/xgcc [...] [...]/hurd/master/libobjc/encoding.c -c [...] +[...]/hurd/master/libobjc/encoding.c:128:1: warning: '_darwin_rs6000_special_round_type_align' defined but not used [-Wunused-function] @@ -435,9 +438,11 @@ This takes up around 3.1 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and * *default library search path* - -checking for the default library search path... /lib /usr/lib /lib/i386-linux-gnu /usr/lib/i386-linux-gnu /lib/i486-linux-gnu /usr/lib/i486-linux-gnu /usr/local/lib /lib64 /usr/lib64 + -checking for the default library search path... /lib /usr/lib /lib/i386-linux-gnu /usr/lib/i386-linux-gnu /lib/i486-linux-gnu /usr/lib/i486-linux-gnu /usr/local/lib +checking for the default library search path... /lib /usr/lib + [[binutils]] issue? Should be aligned by Samuel's binutils patch. + * `./classpath/[...]/*.properties` Just different order of files, or another problem? @@ -471,13 +476,6 @@ This takes up around 3.1 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and There are other instances of this in the following. - * *default library search path* - - -checking for the default library search path... /lib /usr/lib /lib/[MULTIARCH] /usr/lib/[MULTIARCH] /lib/i486-linux-gnu /usr/lib/i486-linux-gnu /usr/local/lib /lib64 /usr/lib64 - +checking for the default library search path... /lib /usr/lib - - Should be aligned by Samuel's binutils patch. - * `value-unwind.h` -DEFINES='' HEADERS='../../../master/libgcc/config/i386/value-unwind.h' \ @@ -557,25 +555,51 @@ that we'll catch any fundamental rearrangements of/additions to the testsuites. kepler.SCHWINGE: - $ make -k RUNTESTFLAGS=-v check 2>&1 | tee log_test + $ make -k check 2>&1 | tee log_test [...] coulomb.SCHWINGE: - $ grep ^CHECK_TARGETS gcc/Makefile + $ awk '/^maybe-check-target/ { next; }; /^maybe-check-[^:]*:./ { print; };' < Makefile + maybe-check-fixincludes: check-fixincludes + maybe-check-gcc: check-gcc + maybe-check-intl: check-intl + maybe-check-libbacktrace: check-libbacktrace + maybe-check-libcpp: check-libcpp + maybe-check-libdecnumber: check-libdecnumber + maybe-check-libiberty: check-libiberty + maybe-check-zlib: check-zlib + maybe-check-gnattools: check-gnattools + maybe-check-lto-plugin: check-lto-plugin + $ grep ^CHECK_TARGETS gcc/Makefile CHECK_TARGETS = check-ada check-c check-c++ check-fortran check-java check-lto check-objc $ export LC_ALL=C - $ t=check-ada/t=check-c/t=check-c++/t=check-fortran/t=check-java/t=check-lto/t=check-objc - $ make -k -C gcc RUNTESTFLAGS=-v "$t" 2>&1 | tee log_test_gcc_"$t" + + $ make -k check-fixincludes 2>&1 | tee log_test_1_check-fixincludes + [...] + $ make -k -C gcc check-ada 2>&1 | tee log_test_2_gcc_check-ada [...] - $ make -k RUNTESTFLAGS=-v check-target 2>&1 | tee log_test_check-target + [reboot] + $ make -k -C gcc check-c 2>&1 | tee log_test_2_gcc_check-c + [...] + [reboot] + $ make -k -C gcc check-c++ 2>&1 | tee log_test_2_gcc_check-c++ + [...] + [reboot] + $ make -k -C gcc check-fortran check-java check-lto check-objc 2>&1 | tee log_test_2_gcc_check-fortran,check-java,check-lto,check-objc + [...] + [reboot] + $ make -k check-intl check-libbacktrace check-libcpp check-libdecnumber check-libiberty check-zlib check-gnattools check-lto-plugin 2>&1 | tee log_test_3 + [...] + $ make -k check-target 2>&1 | tee log_test_4_check-target [...] -This needs roughly 6.75 h on kepler.SCHWINGE and 3.75 h (`gcc/check-ada`) + -12.5 h (`gcc/check-c`) + 4.5 h (`gcc/check-c++`) + 5.25 h (`gcc/check-fortran`) -+ 0 h (`gcc/check-java`) + 0 h (`gcc/check-lto`) + 0.5 h (`gcc/check-objc`) + -8.5 h (`check-target`) = 35 h on coulomb.SCHWINGE. +This needs roughly 6.75 h on kepler.SCHWINGE and 3.5 h (`check-fixincludes`, +`gcc/check-ada`) + 10 h (`gcc/check-c`) + 3.75 h (`gcc/check-c++`) + 5.5 h +(`gcc/check-fortran`, `gcc/check-java`, `gcc/check-lto`, `gcc/check-objc`) + +8.25 h (`check-intl`, [...], `check-lto-plugin`, `check-target`) = 31 h on +coulomb.SCHWINGE. ## Analysis @@ -590,12 +614,27 @@ This needs roughly 6.75 h on kepler.SCHWINGE and 3.75 h (`gcc/check-ada`) + TODO. + * As of b401cb7ed15602d244a6807835b0b9d740a302a8 (2012-11-26; + 769bf18a20ee2540ca7601cdafabd62b18b9751b (2012-10-01)), all + `gcc.dg/guality` and `g++.dg/guality` and a few more are no longer tested + on coulomb.SCHWINGE and kepler.SCHWINGE. + + * As of b401cb7ed15602d244a6807835b0b9d740a302a8 (2012-11-26; + 769bf18a20ee2540ca7601cdafabd62b18b9751b (2012-10-01)), there are + regressions (FAILs) in libgomp execution tests on coulomb.SCHWINGE. + * TODO ## Enhancements +### `contrib/testsuite-management/`, `contrib/regression/` + + * 35a27ee8c4b349fea44fd1fadc9614ab3cc9d578 `Add an xfail manifest for + x86_64-unknown-linux-gnu to trunk.` + + ### Parallel Testing [[!message-id "20110331070322.GI11563@sunsite.ms.mff.cuni.cz"]]. diff --git a/toolchain/logs b/toolchain/logs index f168fcad..8a5c250b 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit f168fcad9d41a6ac88ce24da8238e9c417a9f114 +Subproject commit 8a5c250b9d7fdf37c72a6cee5a75ed4c6815c308 -- cgit v1.2.3 From 573d363a3458b8a37e6ec929c778dae8abf90fab Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 10 Dec 2012 20:03:35 +0100 Subject: open_issues/gdb: ded7dfe6274b281d92a6ed76cedf29d06c918dec (2012-12-10) --- open_issues/gdb.mdwn | 69 +++++++++++++++++++++++++++++++++++++++------------- toolchain/logs | 2 +- 2 files changed, 53 insertions(+), 18 deletions(-) diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn index 6d08b0b3..f5daff48 100644 --- a/open_issues/gdb.mdwn +++ b/open_issues/gdb.mdwn @@ -29,12 +29,12 @@ Here's what's to be done for maintaining GNU GDB. git checkout reviewed git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --cc ..sourceware/master -i -/^commit |^Merge:|^---$|hurd|linux|nacl|nptl|glibc|gs:|gnu-nat|i386gnu +/^commit |^merge:|^---$|hurd|linux|nacl|nptl|glibc|gs:|gnu-nat|i386gnu --> -Last reviewed up to the [[Git mirror's 38950d85c63f8528d11112d10b11bfa76e3d5bf8 -(2012-11-11) sources|source_repositories/gdb]]. +Last reviewed up to the [[Git mirror's ded7dfe6274b281d92a6ed76cedf29d06c918dec +(2012-12-10) sources|source_repositories/gdb]]. * Globally @@ -63,12 +63,15 @@ Last reviewed up to the [[Git mirror's 38950d85c63f8528d11112d10b11bfa76e3d5bf8 * 82763a3d329b0d342d0273941b1521be9ef0c604 »MODIFIED is unknown, pass it as true.« + * Configure so that Debian system's `/usr/lib/debug/[...]` will be loaded + automatically. + # Build Here's a log of a GDB build run; this is from our [[Git repository|source_repositories/gdb]]'s `tschwinge/Ferry_Tagscherer` branch, -commit 38950d85c63f8528d11112d10b11bfa76e3d5bf8 (2012-11-11), run on +commit ded7dfe6274b281d92a6ed76cedf29d06c918dec (2012-12-10), run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C @@ -102,14 +105,6 @@ formats and more emulation vectors. $ toolchain/logs/process gdb build - * DFP - - -checking for decimal floating point... bid - +checking for decimal floating point... configure: WARNING: decimal float is not supported for this target, ignored - +dpd - - Have to sync libdecnumber? - * Why do we specify `-D_GNU_SOURCE`, and GNU/Linux doesn't? * GNU/Linux: `gdb/symfile-mem.c` for vDSO. @@ -212,7 +207,7 @@ min on coulomb.SCHWINGE. $ make -k check [...] -This needs roughly 14 min on kepler.SCHWINGE and 135 min on coulomb.SCHWINGE. +This needs roughly 14 min on kepler.SCHWINGE and 110 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 @@ -229,10 +224,6 @@ GNU/Hurd, these generally are `gdb.multi/watchpoint-multi`, and an unknown * Disabled - * `gdb.base/morestack.exp` - - TODO `-fsplit-stack` issue. - * `gdb.base/readline.exp` [[term_blocking]] issue. @@ -241,6 +232,50 @@ GNU/Hurd, these generally are `gdb.multi/watchpoint-multi`, and an unknown 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. + * `UNSUPPORTED: gdb.threads/ia64-sigill.exp: Couldn't compile ../../../master/gdb/testsuite/gdb.threads/ia64-sigill.c: unrecognized error` ../../../master/gdb/testsuite/gdb.threads/ia64-sigill.c:29:24: fatal error: asm/unistd.h: No such file or directory diff --git a/toolchain/logs b/toolchain/logs index 8a5c250b..27239768 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 8a5c250b9d7fdf37c72a6cee5a75ed4c6815c308 +Subproject commit 272397686eea60669290da0add796ca601b1a2e1 -- cgit v1.2.3