Package: glibc / 2.24-11+deb9u4

Metadata

Package Version Patches format
glibc 2.24-11+deb9u4 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
hurd i386/local enable ldconfig.diff | (download)

elf/ldconfig.c | 4 4 + 0 - 0 !
sysdeps/mach/hurd/configure | 2 2 + 0 - 0 !
sysdeps/mach/hurd/configure.ac | 2 2 + 0 - 0 !
3 files changed, 8 insertions(+)

 enable ldconfig and such on hurd-i386
hurd i386/tg context_functions.diff | (download)

sysdeps/mach/hurd/i386/Makefile | 5 5 + 0 - 0 !
sysdeps/mach/hurd/i386/getcontext.S | 74 74 + 0 - 0 !
sysdeps/mach/hurd/i386/makecontext-helper.c | 69 69 + 0 - 0 !
sysdeps/mach/hurd/i386/makecontext.S | 130 130 + 0 - 0 !
sysdeps/mach/hurd/i386/setcontext.S | 92 92 + 0 - 0 !
sysdeps/mach/hurd/i386/swapcontext.S | 110 110 + 0 - 0 !
sysdeps/mach/hurd/i386/ucontext_i.sym | 29 29 + 0 - 0 !
7 files changed, 509 insertions(+)

 [patch] getcontext, makecontext, setcontext, swapcontext

hurd i386/tg tls.diff | (download)

csu/libc-start.c | 2 2 + 0 - 0 !
hurd/hurdfault.c | 2 2 + 0 - 0 !
hurd/hurdsig.c | 2 2 + 0 - 0 !
include/errno.h | 14 8 + 6 - 0 !
mach/mach.h | 3 3 + 0 - 0 !
mach/setup-thread.c | 30 29 + 1 - 0 !
sysdeps/generic/thread_state.h | 1 1 + 0 - 0 !
sysdeps/mach/hurd/fork.c | 7 6 + 1 - 0 !
sysdeps/mach/hurd/i386/init-first.c | 53 33 + 20 - 0 !
sysdeps/mach/hurd/i386/tls.h | 47 40 + 7 - 0 !
sysdeps/mach/hurd/i386/trampoline.c | 2 1 + 1 - 0 !
sysdeps/mach/hurd/libc-lock.h | 3 3 + 0 - 0 !
sysdeps/mach/hurd/profil.c | 2 2 + 0 - 0 !
sysdeps/mach/hurd/setitimer.c | 3 2 + 1 - 0 !
sysdeps/mach/i386/thread_state.h | 11 10 + 1 - 0 !
sysdeps/mach/thread_state.h | 3 3 + 0 - 0 !
16 files changed, 147 insertions(+), 38 deletions(-)

 [patch] tls

TLS support.

All by Samuel Thibault.

hurd i386/tg tls threadvar.diff | (download)

hurd/Versions | 6 1 + 5 - 0 !
hurd/hurd/signal.h | 23 13 + 10 - 0 !
hurd/hurd/threadvar.h | 76 7 + 69 - 0 !
hurd/hurdsig.c | 51 31 + 20 - 0 !
hurd/hurdstartup.c | 1 0 + 1 - 0 !
hurd/sigunwind.c | 4 2 + 2 - 0 !
include/errno.h | 2 1 + 1 - 0 !
sysdeps/mach/hurd/Versions | 4 2 + 2 - 0 !
sysdeps/mach/hurd/cthreads.c | 2 2 + 0 - 0 !
sysdeps/mach/hurd/dl-sysdep.c | 19 0 + 19 - 0 !
sysdeps/mach/hurd/errno-loc.c | 22 15 + 7 - 0 !
sysdeps/mach/hurd/errno.c | 1 0 + 1 - 0 !
sysdeps/mach/hurd/fork.c | 7 3 + 4 - 0 !
sysdeps/mach/hurd/i386/init-first.c | 36 0 + 36 - 0 !
sysdeps/mach/hurd/i386/makecontext-helper.c | 2 2 + 0 - 0 !
sysdeps/mach/hurd/i386/makecontext.S | 2 1 + 1 - 0 !
sysdeps/mach/hurd/i386/sigreturn.c | 5 2 + 3 - 0 !
sysdeps/mach/hurd/i386/tls.h | 29 29 + 0 - 0 !
sysdeps/mach/hurd/libc-lock.h | 4 2 + 2 - 0 !
sysdeps/mach/hurd/libc-tsd.h | 34 0 + 34 - 0 !
sysdeps/mach/hurd/mig-reply.c | 39 10 + 29 - 0 !
sysdeps/mach/hurd/profil.c | 6 3 + 3 - 0 !
22 files changed, 126 insertions(+), 249 deletions(-)

 [patch] tls-threadvar

replace the custom threadvar mechanism with generic TLS.
That will fix sigaltstack.

Note: the added reply_port and _hurd_sigstate fields should be kept last.


hurd i386/tg tlsdesc.sym.diff | (download)

sysdeps/mach/hurd/i386/tlsdesc.sym | 19 19 + 0 - 0 !
1 file changed, 19 insertions(+)

 [patch] tlsdesc.sym

i386 version of tlsdesc.sym for GNU Hurd.


hurd i386/tg sysvshm.diff | (download)

hurd/Makefile | 1 1 + 0 - 0 !
hurd/sysvshm.c | 97 97 + 0 - 0 !
hurd/sysvshm.h | 47 47 + 0 - 0 !
sysdeps/mach/hurd/bits/posix_opt.h | 4 2 + 2 - 0 !
sysdeps/mach/hurd/ftok.c | 43 43 + 0 - 0 !
sysdeps/mach/hurd/shmat.c | 79 79 + 0 - 0 !
sysdeps/mach/hurd/shmctl.c | 132 132 + 0 - 0 !
sysdeps/mach/hurd/shmdt.c | 51 51 + 0 - 0 !
sysdeps/mach/hurd/shmget.c | 242 242 + 0 - 0 !
9 files changed, 694 insertions(+), 2 deletions(-)

 [patch] implement sysv shared memory for gnu/hurd.

2005-07-11  Marcus Brinkmann  <marcus@gnu.org>

        * hurd/Makefile (routines): Add sysvshm.
        (distribute): Add sysvshm.h.
        * hurd/sysvshm.h: New file.
        * hurd/sysvshm.c: New file.
        * sysdeps/mach/hurd/bits/stat.h (S_IMMAP0): New macro.
        (S_ISPARE): Unset the S_IMMAP0 flag.
        * sysdeps/mach/hurd/ftok.c: New file.
        * sysdeps/mach/hurd/shmat.c: New file.
        * sysdeps/mach/hurd/shmctl.c: New file.
        * sysdeps/mach/hurd/shmdt.c: New file.
        * sysdeps/mach/hurd/bits/posix_opt.h: Define _XOPEN_SHM to 1.


hurd i386/tg _dl_random.diff | (download)

sysdeps/mach/hurd/dl-sysdep.c | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 [patch] _dl_random

_dl_random


hurd i386/tg thread cancel.diff | (download)

hurd/hurdexec.c | 1 0 + 1 - 0 !
hurd/thread-cancel.c | 2 0 + 2 - 0 !
sysdeps/mach/hurd/jmp-unwind.c | 3 1 + 2 - 0 !
sysdeps/mach/hurd/spawni.c | 1 0 + 1 - 0 !
4 files changed, 1 insertion(+), 6 deletions(-)

 [patch] the critical section lock _can_ be held in these place.

At least since hurd_thread_cancel can be called by another thread and lock our
critical lock.

http://bugs.debian.org/46859

“
Thomas suggested that there is no need to take the critical section
lock.  I believe that taking the critical section lock is necessary to
prevent the target thread from entering a signal handler.  Roland will
look into the problem.
”

Taking the critical section lock makes these assertions bogus.

It happens that hurd_thread_cancel is only called from libports and inside
/hurd/term so this is rare in practice.

A reproducer can be found here:

http://lists.gnu.org/archive/html/bug-hurd/2014-05/msg00025.html

2006-08-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>

       * hurd/thread-cancel.c (hurd_thread_cancel): Do not assert that
       `&ss->critical_section_lock' is unlocked.
       * sysdeps/mach/hurd/jmp-unwind.c (_longjmp_unwind): Likewise, and take
       critical section lock before taking the sigstate lock.
       * sysdeps/mach/hurd/spawni.c (__spawni): Likewise.


hurd i386/tg bigmem.diff | (download)

sysdeps/mach/hurd/dl-sysdep.c | 28 22 + 6 - 0 !
1 file changed, 22 insertions(+), 6 deletions(-)

 [patch] allow the kernel to start earlier than vm_max_address

A bit hackish.


hurd i386/local disable ioctls.diff | (download)

sysdeps/mach/hurd/bits/ioctls.h | 6 6 + 0 - 0 !
1 file changed, 6 insertions(+)

---
hurd i386/tg locarchive.diff | (download)

locale/programs/locarchive.c | 18 18 + 0 - 0 !
1 file changed, 18 insertions(+)

 [patch] fix installation of locales-all

Dirty hack to fix installation of locales-all: instead of just locking the
archive extension (which is not supported on hurd-i386), lock it all.


hurd i386/tg no hp timing.diff | (download)

sysdeps/mach/hurd/hp-timing.h | 42 42 + 0 - 0 !
1 file changed, 42 insertions(+)

 [patch] no hp timing

2010-08-21  Samuel Thibault  <samuel.thibault@ens-lyon.org> 

We don't have support for hp timing for now, even the i686 variant, which needs
to know the CPU speed.
Copied from sysdeps/generic/hp-timing.h


hurd i386/tg sendmsg SCM_RIGHTS.diff | (download)

sysdeps/mach/hurd/recvmsg.c | 97 95 + 2 - 0 !
sysdeps/mach/hurd/sendmsg.c | 73 62 + 11 - 0 !
2 files changed, 157 insertions(+), 13 deletions(-)

 [patch] add support to send file descriptors over unix sockets


hurd i386/tg sendmsg SCM_CREDS.diff | (download)

hurd/Makefile | 2 1 + 1 - 0 !
sysdeps/mach/hurd/recvmsg.c | 137 137 + 0 - 0 !
sysdeps/mach/hurd/sendmsg.c | 36 36 + 0 - 0 !
3 files changed, 174 insertions(+), 1 deletion(-)

 [patch] hurd: scm_creds support

Svante Signell  <svante.signell@gmail.com>
Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* sysdeps/mach/hurd/sendmsg.c (__libc_sendmsg): On SCM_CREDS
	control messages, record uids, pass a rendez-vous port in the
	control message, and call __auth_user_authenticate_request to
	make auth send credentials on that port.  Do not wait for a
	reply.
	* sysdeps/mach/hurd/recvmsg.c (contains_uid, contains_gid,
	check_auth): New functions.
	(__libc_recvmsg): On SCM_CREDS control messages, call check_auth
	to check the passed credentials thanks to the answer from the
	auth server.
	* hurd/Makefile (user-interfaces): Add auth_request and
	auth_reply.


hurd i386/tg grantpt.diff | (download)

sysdeps/mach/hurd/ptsname.c | 18 14 + 4 - 0 !
1 file changed, 14 insertions(+), 4 deletions(-)

 [patch] t/grantpt

    /media/Stalin/tmp/glibc.hurd.gnu-2/libc_pic.os: In function `pts_name':
    /media/data/home/thomas/tmp/source/glibc/git/glibc.hurd/login/../sysdeps/unix/grantpt.c:52: undefined reference to `__ptsname_internal'
    collect2: ld returned 1 exit status
    make[1]: *** [/media/Stalin/tmp/glibc.hurd.gnu-2/libc.so] Error 1

Cf. aa9890239a2aef81e64f3f22a31c7e01b6501f69

Need any of the checks (stat, etc.) that Linux' __ptsname_internal does?

Implement close_all_fds as in 139ee080b6b428240bf49f3e6361f3ac729f891a?


hurd i386/submitted add needed.diff | (download)

Makerules | 3 3 + 0 - 0 !
1 file changed, 3 insertions(+)

---
hurd i386/local ED.diff | (download)

sysdeps/mach/hurd/bits/errno.h | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

---
hurd i386/tg posix_thread.diff | (download)

sysdeps/mach/hurd/Makefile | 4 4 + 0 - 0 !
sysdeps/mach/hurd/bits/local_lim.h | 9 9 + 0 - 0 !
sysdeps/mach/hurd/bits/posix_opt.h | 42 28 + 14 - 0 !
3 files changed, 41 insertions(+), 14 deletions(-)

 [patch] t/posix_thread

Declare that we have a libpthread.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>


hurd i386/tg gai_misc.diff | (download)

sysdeps/mach/hurd/gai_misc.h | 44 44 + 0 - 0 !
1 file changed, 44 insertions(+)

 [patch] t/gai_misc

Add a hurd version of threaded gai_misc.h

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>


hurd i386/local madvise_warn.diff | (download)

misc/madvise.c | 2 1 + 1 - 0 !
posix/posix_madvise.c | 2 1 + 1 - 0 !
2 files changed, 2 insertions(+), 2 deletions(-)

---
hurd i386/tg hurdsig fixes.diff | (download)

hurd/hurdsig.c | 272 160 + 112 - 0 !
1 file changed, 160 insertions(+), 112 deletions(-)

 [patch] signal code refactoring.

These patches should not change the current
behavior, although they do fix a few minor bugs which were made
apparent in the process. They are unchanged from my previous post
earlier this month.

    34f5960 _hurd_internal_post_signal: Split into more functions
    420eec9 _hurd_internal_post_signal: Scope variables more restrictively
    1f5accd _hurd_internal_post_signal: Split out inner functions
    1bb0a1d Hurd signals: refactor check_pending_signals
    1764465 Hurd signals: reindent
    28473d2 Hurd signals: make sigsuspend POSIX-conformant.
    26d091a Hurd signals: fix uninitialized value.


hurd i386/tg hurdsig global dispositions.diff | (download)

hurd/ctty-input.c | 16 10 + 6 - 0 !
hurd/ctty-output.c | 16 10 + 6 - 0 !
hurd/hurd/signal.h | 38 29 + 9 - 0 !
hurd/hurdexec.c | 9 5 + 4 - 0 !
hurd/hurdmsg.c | 24 4 + 20 - 0 !
hurd/hurdsig.c | 272 211 + 61 - 0 !
sysdeps/mach/hurd/fork.c | 24 20 + 4 - 0 !
sysdeps/mach/hurd/i386/sigreturn.c | 10 5 + 5 - 0 !
sysdeps/mach/hurd/i386/trampoline.c | 6 5 + 1 - 0 !
sysdeps/mach/hurd/sigaction.c | 16 8 + 8 - 0 !
sysdeps/mach/hurd/sigpending.c | 6 3 + 3 - 0 !
sysdeps/mach/hurd/sigprocmask.c | 8 4 + 4 - 0 !
sysdeps/mach/hurd/sigsuspend.c | 15 8 + 7 - 0 !
sysdeps/mach/hurd/sigwait.c | 21 13 + 8 - 0 !
sysdeps/mach/hurd/spawni.c | 23 13 + 10 - 0 !
15 files changed, 348 insertions(+), 156 deletions(-)

 [patch] global signal dispositions.

Although they should not change the
default behaviors of signals for cthread programs, these patches add
new functions which can be used by libpthread to enable
POSIX-conforming behavior of signals on a per-thread basis.

YYYY-MM-DD  Jeremie Koenig  <jk@jk.fr.eu.org>

    e407ae3 Hurd signals: implement global signal dispositions
    38eb4b3 Hurd signals: provide a sigstate destructor
    344dfd6 Hurd signals: fix sigwait() for global signals
    fb055f2 Hurd signals: fix global untraced signals.

YYYY-MM-DD  Thomas Schwinge  <thomas@codesourcery.com>

	* sysdeps/mach/hurd/fork.c (__fork): In the child, reinitialize
	the global sigstate's lock.

This is work in progress.

This cures an issue that would very rarely cause a deadlock in the child
in fork, tries to unlock ss' critical section lock at the end of fork.
This will typically (always?) be observed in /bin/sh, which is not
surprising as that is the foremost caller of fork.

To reproduce an intermediate state, add an endless loop if
_hurd_global_sigstate is locked after __proc_dostop (cast through
volatile); that is, while still being in the fork's parent process.

When that triggers (use the libtool testsuite), the signal thread has
already locked ss (which is _hurd_global_sigstate), and is stuck at
hurdsig.c:685 in post_signal, trying to lock _hurd_siglock (which the
main thread already has locked and keeps locked until after
__task_create).  This is the case that ss->thread == MACH_PORT_NULL, that
is, a global signal.  In the main thread, between __proc_dostop and
__task_create is the __thread_abort call on the signal thread which would
abort any current kernel operation (but leave ss locked).  Later in fork,
in the parent, when _hurd_siglock is unlocked in fork, the parent's
signal thread can proceed and will unlock eventually the global sigstate.
In the client, _hurd_siglock will likewise be unlocked, but the global
sigstate never will be, as the client's signal thread has been configured
to restart execution from _hurd_msgport_receive.  Thus, when the child
tries to unlock ss' critical section lock at the end of fork, it will
first lock the global sigstate, will spin trying to lock it, which can
never be successful, and we get our deadlock.

Options seem to be:

  * Move the locking of _hurd_siglock earlier in post_signal -- but that
    may generally impact performance, if this locking isn't generally
    needed anyway?

    On the other hand, would it actually make sense to wait here until we
    are not any longer in a critical section (which is meant to disable
    signal delivery anway (but not for preempted signals?))?

  * Clear the global sigstate in the fork's child with the rationale that
    we're anyway restarting the signal thread from a clean state.  This
    has now been implemented.

Why has this problem not been observed before Jérémie's patches?  (Or has
it?  Perhaps even more rarely?)  In _S_msg_sig_post, the signal is now
posted to a *global receiver thread*, whereas previously it was posted to
the *designated signal-receiving thread*.  The latter one was in a
critical section in fork, so didn't try to handle the signal until after
leaving the critical section?  (Not completely analyzed and verified.)

Another question is what the signal is that is being received
during/around the time __proc_dostop executes.


hurd i386/local hurdsig global dispositions version.diff | (download)

hurd/Versions | 16 16 + 0 - 0 !
hurd/hurdsig.c | 56 51 + 5 - 0 !
2 files changed, 67 insertions(+), 5 deletions(-)

---
hurd i386/tg hurdsig SA_SIGINFO.diff | (download)

hurd/hurd/signal.h | 5 5 + 0 - 0 !
hurd/hurd/sigpreempt.h | 4 2 + 2 - 0 !
hurd/hurdfault.c | 2 1 + 1 - 0 !
hurd/hurdinit.c | 2 1 + 1 - 0 !
hurd/hurdsig.c | 2 1 + 1 - 0 !
sysdeps/mach/hurd/bits/sigaction.h | 81 81 + 0 - 0 !
sysdeps/mach/hurd/i386/bits/sigcontext.h | 4 4 + 0 - 0 !
sysdeps/mach/hurd/i386/exc2signal.c | 123 77 + 46 - 0 !
sysdeps/mach/hurd/i386/trampoline.c | 126 115 + 11 - 0 !
sysdeps/mach/hurd/kill.c | 2 1 + 1 - 0 !
sysdeps/mach/hurd/setitimer.c | 2 1 + 1 - 0 !
11 files changed, 289 insertions(+), 64 deletions(-)

 [patch] implement sa_siginfo signal handlers.

    52baaca Hurd signals: Copy bits/sigaction.h
    4232c66 Hurd signals: SA_SIGINFO support
    1831cfe Hurd signals: Use POSIX sigcodes


hurd i386/tg hurdsig fixes 2.diff | (download)

hurd/hurdsig.c | 4 1 + 3 - 0 !
sysdeps/mach/hurd/fork.c | 4 3 + 1 - 0 !
sysdeps/mach/hurd/spawni.c | 2 1 + 1 - 0 !
3 files changed, 5 insertions(+), 5 deletions(-)

 [patch] small signal fixes

    22e7268 Hurd signals: fix sigwait for pending signals
    da8bf5e Hurd signals: clear the pending mask in fork and spawn
    8e87205 Hurd signals: don't drop blocked ignored signals     


hurd i386/tg hooks.diff | (download)

Makerules | 39 39 + 0 - 0 !
1 file changed, 39 insertions(+)

 [patch] t/hooks

Add link rules to sort hooks, otherwise they are not properly recorded

2012-04-21  Samuel Thibault  <samuel.thibault@ens-lyon.org>

        * Makerules (shlib.lds): Add hurd hooks sorting rules.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>


hurd i386/cvs libpthread.diff | (download)

libpthread/ChangeLog | 6 6 + 0 - 0 !
libpthread/Makeconfig | 13 13 + 0 - 0 !
libpthread/Makefile | 371 371 + 0 - 0 !
libpthread/TODO | 131 131 + 0 - 0 !
libpthread/Versions | 147 147 + 0 - 0 !
libpthread/configure | 2 2 + 0 - 0 !
libpthread/configure.in | 4 4 + 0 - 0 !
libpthread/forward.c | 280 280 + 0 - 0 !
libpthread/include/pthread.h | 7 7 + 0 - 0 !
libpthread/include/pthread/pthread.h | 835 835 + 0 - 0 !
libpthread/include/pthread/pthreadtypes.h | 125 125 + 0 - 0 !
libpthread/libc_pthread_init.c | 35 35 + 0 - 0 !
libpthread/libpthread.a | 22 22 + 0 - 0 !
libpthread/libpthread_pic.a | 22 22 + 0 - 0 !
libpthread/lockfile.c | 65 65 + 0 - 0 !
libpthread/not-in-libc.h | 12 12 + 0 - 0 !
libpthread/pthread/Versions | 15 15 + 0 - 0 !
libpthread/pthread/alloca_cutoff.c | 27 27 + 0 - 0 !
libpthread/pthread/cthreads-compat.c | 101 101 + 0 - 0 !
libpthread/pthread/pt-alloc.c | 219 219 + 0 - 0 !
libpthread/pthread/pt-cancel.c | 63 63 + 0 - 0 !
libpthread/pthread/pt-cleanup.c | 28 28 + 0 - 0 !
libpthread/pthread/pt-create.c | 254 254 + 0 - 0 !
libpthread/pthread/pt-dealloc.c | 69 69 + 0 - 0 !
libpthread/pthread/pt-detach.c | 80 80 + 0 - 0 !
libpthread/pthread/pt-exit.c | 112 112 + 0 - 0 !
libpthread/pthread/pt-getattr.c | 51 51 + 0 - 0 !
libpthread/pthread/pt-initialize.c | 88 88 + 0 - 0 !
libpthread/pthread/pt-internal.h | 330 330 + 0 - 0 !
libpthread/pthread/pt-join.c | 76 76 + 0 - 0 !
libpthread/pthread/pt-self.c | 34 34 + 0 - 0 !
libpthread/pthread/pt-setcancelstate.c | 47 47 + 0 - 0 !
libpthread/pthread/pt-setcanceltype.c | 47 47 + 0 - 0 !
libpthread/pthread/pt-sigmask.c | 33 33 + 0 - 0 !
libpthread/pthread/pt-spin-inlines.c | 34 34 + 0 - 0 !
libpthread/pthread/pt-testcancel.c | 36 36 + 0 - 0 !
libpthread/pthread/pt-yield.c | 26 26 + 0 - 0 !
libpthread/pthreadP.h | 27 27 + 0 - 0 !
libpthread/shlib-versions | 1 1 + 0 - 0 !
libpthread/sysdeps/generic/fork.h | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/old_pt-atfork.c | 27 27 + 0 - 0 !
libpthread/sysdeps/generic/pt-atfork.c | 34 34 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-destroy.c | 28 28 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-getdetachstate.c | 31 31 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-getguardsize.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-getinheritsched.c | 31 31 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-getschedparam.c | 34 34 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-getschedpolicy.c | 31 31 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-getscope.c | 31 31 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-getstack.c | 31 31 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-getstackaddr.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-getstacksize.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-init.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-setdetachstate.c | 40 40 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-setguardsize.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-setinheritsched.c | 40 40 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-setschedparam.c | 40 40 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-setschedpolicy.c | 44 44 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-setscope.c | 43 43 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-setstack.c | 51 51 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-setstackaddr.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr-setstacksize.c | 30 30 + 0 - 0 !
libpthread/sysdeps/generic/pt-attr.c | 41 41 + 0 - 0 !
libpthread/sysdeps/generic/pt-barrier-destroy.c | 27 27 + 0 - 0 !
libpthread/sysdeps/generic/pt-barrier-init.c | 53 53 + 0 - 0 !
libpthread/sysdeps/generic/pt-barrier-wait.c | 69 69 + 0 - 0 !
libpthread/sysdeps/generic/pt-barrier.c | 26 26 + 0 - 0 !
libpthread/sysdeps/generic/pt-barrierattr-destroy.c | 27 27 + 0 - 0 !
libpthread/sysdeps/generic/pt-barrierattr-getpshared.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-barrierattr-init.c | 28 28 + 0 - 0 !
libpthread/sysdeps/generic/pt-barrierattr-setpshared.c | 39 39 + 0 - 0 !
libpthread/sysdeps/generic/pt-cond-brdcast.c | 45 45 + 0 - 0 !
libpthread/sysdeps/generic/pt-cond-destroy.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-cond-init.c | 47 47 + 0 - 0 !
libpthread/sysdeps/generic/pt-cond-signal.c | 43 43 + 0 - 0 !
libpthread/sysdeps/generic/pt-cond-timedwait.c | 178 178 + 0 - 0 !
libpthread/sysdeps/generic/pt-cond-wait.c | 39 39 + 0 - 0 !
libpthread/sysdeps/generic/pt-cond.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-condattr-destroy.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-condattr-getclock.c | 31 31 + 0 - 0 !
libpthread/sysdeps/generic/pt-condattr-getpshared.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-condattr-init.c | 30 30 + 0 - 0 !
libpthread/sysdeps/generic/pt-condattr-setclock.c | 52 52 + 0 - 0 !
libpthread/sysdeps/generic/pt-condattr-setpshared.c | 39 39 + 0 - 0 !
libpthread/sysdeps/generic/pt-destroy-specific.c | 28 28 + 0 - 0 !
libpthread/sysdeps/generic/pt-equal.c | 31 31 + 0 - 0 !
libpthread/sysdeps/generic/pt-getconcurrency.c | 27 27 + 0 - 0 !
libpthread/sysdeps/generic/pt-getcpuclockid.c | 35 35 + 0 - 0 !
libpthread/sysdeps/generic/pt-getschedparam.c | 31 31 + 0 - 0 !
libpthread/sysdeps/generic/pt-getspecific.c | 27 27 + 0 - 0 !
libpthread/sysdeps/generic/pt-init-specific.c | 27 27 + 0 - 0 !
libpthread/sysdeps/generic/pt-key-create.c | 30 30 + 0 - 0 !
libpthread/sysdeps/generic/pt-key-delete.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-key.h | 22 22 + 0 - 0 !
libpthread/sysdeps/generic/pt-kill.c | 33 33 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutex-destroy.c | 39 39 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutex-getprioceiling.c | 30 30 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutex-init.c | 50 50 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutex-lock.c | 37 37 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutex-setprioceiling.c | 30 30 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutex-timedlock.c | 196 196 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutex-transfer-np.c | 66 66 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutex-trylock.c | 112 112 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutex-unlock.c | 108 108 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutexattr-destroy.c | 27 27 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutexattr-getprioceiling.c | 30 30 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutexattr-getprotocol.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutexattr-getpshared.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutexattr-gettype.c | 28 28 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutexattr-init.c | 28 28 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutexattr-setprioceiling.c | 30 30 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutexattr-setprotocol.c | 42 42 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutexattr-setpshared.c | 39 39 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutexattr-settype.c | 37 37 + 0 - 0 !
libpthread/sysdeps/generic/pt-mutexattr.c | 45 45 + 0 - 0 !
libpthread/sysdeps/generic/pt-once.c | 45 45 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlock-attr.c | 26 26 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlock-destroy.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlock-init.c | 45 45 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlock-rdlock.c | 33 33 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlock-timedrdlock.c | 120 120 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlock-timedwrlock.c | 103 103 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlock-tryrdlock.c | 56 56 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlock-trywrlock.c | 46 46 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlock-unlock.c | 99 99 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlock-wrlock.c | 35 35 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlockattr-destroy.c | 27 27 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlockattr-getpshared.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlockattr-init.c | 28 28 + 0 - 0 !
libpthread/sysdeps/generic/pt-rwlockattr-setpshared.c | 39 39 + 0 - 0 !
libpthread/sysdeps/generic/pt-setconcurrency.c | 34 34 + 0 - 0 !
libpthread/sysdeps/generic/pt-setschedparam.c | 31 31 + 0 - 0 !
libpthread/sysdeps/generic/pt-setschedprio.c | 29 29 + 0 - 0 !
libpthread/sysdeps/generic/pt-setspecific.c | 27 27 + 0 - 0 !
libpthread/sysdeps/generic/pt-startup.c | 25 25 + 0 - 0 !
libpthread/sysdeps/generic/raise.c | 51 51 + 0 - 0 !
libpthread/sysdeps/generic/sem-close.c | 32 32 + 0 - 0 !
libpthread/sysdeps/generic/sem-destroy.c | 38 38 + 0 - 0 !
libpthread/sysdeps/generic/sem-getvalue.c | 33 33 + 0 - 0 !
libpthread/sysdeps/generic/sem-init.c | 46 46 + 0 - 0 !
libpthread/sysdeps/generic/sem-open.c | 32 32 + 0 - 0 !
libpthread/sysdeps/generic/sem-post.c | 62 62 + 0 - 0 !
libpthread/sysdeps/generic/sem-timedwait.c | 100 100 + 0 - 0 !
libpthread/sysdeps/generic/sem-trywait.c | 42 42 + 0 - 0 !
libpthread/sysdeps/generic/sem-unlink.c | 32 32 + 0 - 0 !
libpthread/sysdeps/generic/sem-wait.c | 32 32 + 0 - 0 !
libpthread/sysdeps/generic/shm-directory.h | 31 31 + 0 - 0 !
libpthread/sysdeps/hurd/pt-destroy-specific.c | 79 79 + 0 - 0 !
libpthread/sysdeps/hurd/pt-getspecific.c | 40 40 + 0 - 0 !
libpthread/sysdeps/hurd/pt-init-specific.c | 30 30 + 0 - 0 !
libpthread/sysdeps/hurd/pt-key-create.c | 110 110 + 0 - 0 !
libpthread/sysdeps/hurd/pt-key-delete.c | 64 64 + 0 - 0 !
libpthread/sysdeps/hurd/pt-key.h | 76 76 + 0 - 0 !
libpthread/sysdeps/hurd/pt-kill.c | 52 52 + 0 - 0 !
libpthread/sysdeps/hurd/pt-setspecific.c | 48 48 + 0 - 0 !
libpthread/sysdeps/i386/bits/memory.h | 40 40 + 0 - 0 !
libpthread/sysdeps/i386/bits/pt-atomic.h | 66 66 + 0 - 0 !
libpthread/sysdeps/i386/machine-sp.h | 30 30 + 0 - 0 !
libpthread/sysdeps/i386/pt-machdep.h | 29 29 + 0 - 0 !
libpthread/sysdeps/mach/bits/spin-lock-inline.h | 90 90 + 0 - 0 !
libpthread/sysdeps/mach/bits/spin-lock.h | 38 38 + 0 - 0 !
libpthread/sysdeps/mach/hurd/Implies | 2 2 + 0 - 0 !
libpthread/sysdeps/mach/hurd/bits/pthread-np.h | 38 38 + 0 - 0 !
libpthread/sysdeps/mach/hurd/i386/pt-machdep.c | 83 83 + 0 - 0 !
libpthread/sysdeps/mach/hurd/i386/pt-setup.c | 110 110 + 0 - 0 !
libpthread/sysdeps/mach/hurd/pt-attr-setstackaddr.c | 29 29 + 0 - 0 !
libpthread/sysdeps/mach/hurd/pt-attr-setstacksize.c | 29 29 + 0 - 0 !
libpthread/sysdeps/mach/hurd/pt-docancel.c | 66 66 + 0 - 0 !
libpthread/sysdeps/mach/hurd/pt-hurd-cond-timedwait.c | 169 169 + 0 - 0 !
libpthread/sysdeps/mach/hurd/pt-hurd-cond-wait.c | 41 41 + 0 - 0 !
libpthread/sysdeps/mach/hurd/pt-sigstate-destroy.c | 28 28 + 0 - 0 !
libpthread/sysdeps/mach/hurd/pt-sigstate-init.c | 44 44 + 0 - 0 !
libpthread/sysdeps/mach/hurd/pt-sigstate.c | 80 80 + 0 - 0 !
libpthread/sysdeps/mach/hurd/pt-sysdep.c | 98 98 + 0 - 0 !
libpthread/sysdeps/mach/hurd/pt-sysdep.h | 67 67 + 0 - 0 !
libpthread/sysdeps/mach/i386/bits/spin-lock-inline.h | 98 98 + 0 - 0 !
libpthread/sysdeps/mach/i386/bits/spin-lock.h | 39 39 + 0 - 0 !
libpthread/sysdeps/mach/pt-block.c | 39 39 + 0 - 0 !
libpthread/sysdeps/mach/pt-spin.c | 36 36 + 0 - 0 !
libpthread/sysdeps/mach/pt-stack-alloc.c | 69 69 + 0 - 0 !
libpthread/sysdeps/mach/pt-thread-alloc.c | 95 95 + 0 - 0 !
libpthread/sysdeps/mach/pt-thread-start.c | 51 51 + 0 - 0 !
libpthread/sysdeps/mach/pt-thread-terminate.c | 85 85 + 0 - 0 !
libpthread/sysdeps/mach/pt-timedblock.c | 68 68 + 0 - 0 !
libpthread/sysdeps/mach/pt-wakeup.c | 38 38 + 0 - 0 !
libpthread/sysdeps/posix/pt-spin.c | 54 54 + 0 - 0 !
libpthread/sysdeps/pthread/Makefile | 7 7 + 0 - 0 !
libpthread/sysdeps/pthread/bits/barrier-attr.h | 32 32 + 0 - 0 !
libpthread/sysdeps/pthread/bits/barrier.h | 39 39 + 0 - 0 !
libpthread/sysdeps/pthread/bits/cancelation.h | 51 51 + 0 - 0 !
libpthread/sysdeps/pthread/bits/condition-attr.h | 34 34 + 0 - 0 !
libpthread/sysdeps/pthread/bits/condition.h | 39 39 + 0 - 0 !
libpthread/sysdeps/pthread/bits/mutex-attr.h | 41 41 + 0 - 0 !
libpthread/sysdeps/pthread/bits/mutex.h | 75 75 + 0 - 0 !
libpthread/sysdeps/pthread/bits/once.h | 34 34 + 0 - 0 !
libpthread/sysdeps/pthread/bits/pthread-np.h | 27 27 + 0 - 0 !
libpthread/sysdeps/pthread/bits/pthread.h | 38 38 + 0 - 0 !
libpthread/sysdeps/pthread/bits/pthreadtypes.h | 29 29 + 0 - 0 !
libpthread/sysdeps/pthread/bits/rwlock-attr.h | 32 32 + 0 - 0 !
libpthread/sysdeps/pthread/bits/rwlock.h | 46 46 + 0 - 0 !
libpthread/sysdeps/pthread/bits/semaphore.h | 44 44 + 0 - 0 !
libpthread/sysdeps/pthread/bits/thread-attr.h | 47 47 + 0 - 0 !
libpthread/sysdeps/pthread/bits/thread-specific.h | 25 25 + 0 - 0 !
libpthread/sysdeps/pthread/flockfile.c | 32 32 + 0 - 0 !
libpthread/sysdeps/pthread/ftrylockfile.c | 35 35 + 0 - 0 !
libpthread/sysdeps/pthread/funlockfile.c | 33 33 + 0 - 0 !
libpthread/sysdeps/pthread/libc-lockP.h | 158 158 + 0 - 0 !
libpthread/sysdeps/pthread/pthread-functions.h | 141 141 + 0 - 0 !
libpthread/sysdeps/pthread/semaphore.h | 81 81 + 0 - 0 !
libpthread/tests/.cvsignore | 1 1 + 0 - 0 !
libpthread/tests/Makefile | 40 40 + 0 - 0 !
libpthread/tests/README | 6 6 + 0 - 0 !
libpthread/tests/test-1.c | 50 50 + 0 - 0 !
libpthread/tests/test-10.c | 46 46 + 0 - 0 !
libpthread/tests/test-11.c | 143 143 + 0 - 0 !
libpthread/tests/test-12.c | 29 29 + 0 - 0 !
libpthread/tests/test-13.c | 66 66 + 0 - 0 !
libpthread/tests/test-14.c | 44 44 + 0 - 0 !
libpthread/tests/test-15.c | 87 87 + 0 - 0 !
libpthread/tests/test-16.c | 71 71 + 0 - 0 !
libpthread/tests/test-17.c | 57 57 + 0 - 0 !
libpthread/tests/test-2.c | 39 39 + 0 - 0 !
libpthread/tests/test-3.c | 55 55 + 0 - 0 !
libpthread/tests/test-4.c | 86 86 + 0 - 0 !
libpthread/tests/test-5.c | 75 75 + 0 - 0 !
libpthread/tests/test-6.c | 96 96 + 0 - 0 !
libpthread/tests/test-7.c | 70 70 + 0 - 0 !
libpthread/tests/test-8.c | 60 60 + 0 - 0 !
libpthread/tests/test-9.c | 88 88 + 0 - 0 !
libpthread/tests/test-__pthread_destroy_specific-skip.c | 83 83 + 0 - 0 !
230 files changed, 13152 insertions(+)

---
hurd i386/libpthread_build.diff | (download)

sysdeps/mach/hurd/Implies | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

---
hurd i386/tg libpthread_depends.diff | (download)

nscd/Depend | 1 1 + 0 - 0 !
resolv/Depend | 1 1 + 0 - 0 !
rt/Depend | 1 1 + 0 - 0 !
3 files changed, 3 insertions(+)

 [patch] t/libpthread_depends

libpthread needs to be built before modules which need it.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>


hurd i386/libpthread_version.diff | (download)

libpthread/Versions | 28 26 + 2 - 0 !
libpthread/forward.c | 52 47 + 5 - 0 !
libpthread/sysdeps/mach/hurd/pt-hurd-cond-timedwait.c | 14 13 + 1 - 0 !
libpthread/sysdeps/mach/hurd/pt-hurd-cond-wait.c | 16 15 + 1 - 0 !
4 files changed, 101 insertions(+), 9 deletions(-)

---
hurd i386/submitted exec_filename.diff | (download)

hurd/Makefile | 4 2 + 2 - 0 !
hurd/Versions | 8 8 + 0 - 0 !
hurd/hurd.h | 12 10 + 2 - 0 !
hurd/hurdexec.c | 63 54 + 9 - 0 !
sysdeps/mach/hurd/execve.c | 3 2 + 1 - 0 !
sysdeps/mach/hurd/fexecve.c | 5 3 + 2 - 0 !
sysdeps/mach/hurd/spawni.c | 57 35 + 22 - 0 !
7 files changed, 114 insertions(+), 38 deletions(-)

 [patch] use the new file_exec_file_name rpc

Pass the file name of executable to the exec server, which it needs to
execute #!-scripts.  Currently, the exec server tries to guess the name
from argv[0] but argv[0] only contains the executable name by convention.

hurd i386/unsubmitted gnumach.defs.diff | (download)

sysdeps/mach/configure | 2 1 + 1 - 0 !
sysdeps/mach/configure.ac | 2 1 + 1 - 0 !
2 files changed, 2 insertions(+), 2 deletions(-)

---
hurd i386/tg hurdsig boot fix.diff | (download)

hurd/hurdsig.c | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

---
hurd i386/tg single select timeout.diff | (download)

hurd/hurdselect.c | 5 1 + 4 - 0 !
1 file changed, 1 insertion(+), 4 deletions(-)

---
hurd i386/tg setitimer.diff | (download)

sysdeps/mach/hurd/setitimer.c | 20 12 + 8 - 0 !
1 file changed, 12 insertions(+), 8 deletions(-)

---
hurd i386/tg pie sbrk.diff | (download)

sysdeps/mach/hurd/brk.c | 6 5 + 1 - 0 !
1 file changed, 5 insertions(+), 1 deletion(-)

 fix sbrk in pie binaries

In PIE mode, the program gets loaded at very low address, and thus _end is very
low, just before libraries, and thus initializing the brk to it does not make
sense, since there is no room left there. Hardcode the brk to 0x8000000 for now
as a workaround.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>


hurd i386/tg ifaddrs_v6.diff | (download)

sysdeps/mach/hurd/ifaddrs.c | 306 306 + 0 - 0 !
1 file changed, 306 insertions(+)

 [patch] workaround to add ipv6 support to getifaddrs

ifreq only contains sockaddr structures, which are not big enough for
IPv6 addresses. This takes another, ugly, approach, by parsing fsysopts
/servers/socket/2 options...

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>


hurd i386/tg remap_getcwd.diff | (download)

sysdeps/mach/hurd/getcwd.c | 12 0 + 12 - 0 !
1 file changed, 12 deletions(-)

 [patch] allow unknown root directory.

To be efficient, the remap translator simply returns ports from the underlying
filesystem, and thus the root directory found through browsing '..' is the
underlying root, not the remap root. This should not be a reason for getcwd to
fail.

* sysdeps/mach/hurd/getcwd.c (_hurd_canonicalize_directory_name_internal): Do
not remove the heading slash if we got an unknown root directory.
(__getcwd): Do not fail with EGRATUITOUS if we got an unknown root directory.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>


hurd i386/tg exec static.diff | (download)

sysdeps/mach/hurd/i386/init-first.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch] fix boot with statically-linked exec server.

* sysdeps/mach/hurd/i386/init-first.c (init): Also find ELF headers by oneself
when the pointer given in D is nul (as set by ext2fs).

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>


hurd i386/tg EIEIO fr.diff | (download)

po/fr.po | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch] correction traduction « computer bought the farm »

* po/fr.po: Fix EIEIO french translation.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>


hurd i386/tg EGREGIOUS fr.diff | (download)

po/fr.po | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch] t/egregious-fr

Fix grammar in french translation for EGREGIOUS

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>


hurd i386/tg io_select_timeout.diff | (download)

hurd/Makefile | 3 2 + 1 - 0 !
hurd/hurdselect.c | 116 77 + 39 - 0 !
2 files changed, 79 insertions(+), 40 deletions(-)

 fix timeout handling in _hurd_select
    
Rely on servers to implement timeouts, so that very short values (including
0) don't make mach_msg return before valid replies can be received. The
purpose of this scheme is to guarantee a full client-server round-trip,
whatever the timeout value.

This change depends on the new io_select_timeout RPC being implemented by
servers.

* hurd/Makefile (user-interfaces): Add io_reply and io_request.
* hurd/hurdselect.c: Include <sys/time.h>, <hurd/io_request.h> and <limits.h>.
(_hurd_select): Replace the call to __io_select with either __io_select_request
or __io_select_timeout_request, depending on the timeout. Count the number of
ready descriptors (replies for which at least one type bit is set). Implement
the timeout locally when there is no file descriptor.


hurd i386/tg poll_errors_fixes.diff | (download)

hurd/hurdselect.c | 149 108 + 41 - 0 !
1 file changed, 108 insertions(+), 41 deletions(-)

 fix poll and select posix compliancy details about errors
    
This fixes the following:

- On error, poll must not return without polling, including EBADF, and instead
report POLLHUP/POLLERR/POLLNVAL
- Select must report EBADF if some set contains an invalid FD.

The idea is to move error management to after all select calls, in the
poll/select final treatment. The error is instead recorded in a new `error'
field, and a new SELECT_ERROR bit set.

Thanks Svante Signell for the initial version of the patch.

* hurd/hurdselect.c (SELECT_ERROR): New macro.
(_hurd_select):
- Add `error' field to `d' structures array.
- If a poll descriptor is bogus, set EBADF, but continue with a zero timeout.
- Go through the whole fd_set, not only until _hurd_dtablesize. Return EBADF
there is any bit set above _hurd_dtablesize.
- Do not request io_select on bogus descriptors (SELECT_ERROR).
- On io_select request error, record the error.
- On io_select bogus reply, use EIO error code.
- On io_select bogus or error reply, record the error.
- Do not destroy reply port for bogus FDs.
- On error, make poll set POLLHUP in the EPIPE case, POLLNVAL in the EBADF
case, or else POLLERR.
- On error, make select simulated readiness.



hurd i386/unsubmitted clock_t_centiseconds.diff | (download)

sysdeps/mach/hurd/clock.c | 8 4 + 4 - 0 !
sysdeps/mach/hurd/getclktck.c | 5 2 + 3 - 0 !
sysdeps/mach/hurd/setitimer.c | 2 1 + 1 - 0 !
sysdeps/mach/hurd/times.c | 2 1 + 1 - 0 !
4 files changed, 8 insertions(+), 9 deletions(-)

---
hurd i386/submitted path_mounted.diff | (download)

sysdeps/generic/paths.h | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch 2/2] define _path_mounted as "/etc/mtab"
Date: Thu, 15 Aug 2013 10:43:35 +0200

Change the definition of _PATH_MOUNTED to "/etc/mtab". This is the
value used on Linux.

The change is motivated by the fact that on Debian /etc/mtab is a
symbolic link to /proc/mounts. This patch adjusts the macro for
non-linux systems such as Hurd. Changing this using
sysdeps/mach/hurd/paths.h causes build problems because
/usr/include/hurd/paths.h is shadowed by this file. This change is
proposed in the hope that aligning the non-linux targets with the
glibc for Linux is perceived as a good thing while fixing this problem
on Debian/Hurd along the way.

* sysdeps/generic/paths.h (_PATH_MOUNTED): Change value to "/etc/mtab".

hurd i386/unsubmitted NO_HIDDEN.diff | (download)

sysdeps/generic/symbol-hacks.h | 3 3 + 0 - 0 !
1 file changed, 3 insertions(+)

---
hurd i386/tg socket_flags.diff | (download)

sysdeps/mach/hurd/kernel-features.h | 1 1 + 0 - 0 !
sysdeps/mach/hurd/socket.c | 15 14 + 1 - 0 !
2 files changed, 15 insertions(+), 1 deletion(-)

 [patch] socket_flags

2008-12-17  Thomas Schwinge  <tschwinge@gnu.org>

	SOCK_CLOEXEC and SOCK_NONBLOCK for socket on GNU Hurd.
	* sysdeps/mach/hurd/socket.c (__socket): Handle SOCK_CLOEXEC and
	SOCK_NONBLOCK.
	* sysdeps/mach/hurd/kernel-features.h (__ASSUME_SOCK_CLOEXEC): Define.


hurd i386/tg socketpair_flags.diff | (download)

sysdeps/mach/hurd/socketpair.c | 25 22 + 3 - 0 !
1 file changed, 22 insertions(+), 3 deletions(-)

 [patch] socketpair_flags

2008-12-17  Thomas Schwinge  <tschwinge@gnu.org>

	SOCK_CLOEXEC and SOCK_NONBLOCK for socketpair on GNU Hurd.
	* sysdeps/mach/hurd/socketpair.c (__socketpair): Handle SOCK_CLOEXEC
	and SOCK_NONBLOCK.


hurd i386/tg pipe2.diff | (download)

sysdeps/mach/hurd/kernel-features.h | 1 1 + 0 - 0 !
sysdeps/mach/hurd/pipe.c | 21 1 + 20 - 0 !
sysdeps/mach/hurd/pipe2.c | 61 61 + 0 - 0 !
3 files changed, 63 insertions(+), 20 deletions(-)

 [patch] pipe2

2008-12-17  Thomas Schwinge  <tschwinge@gnu.org>

	pipe2 for GNU Hurd.
	* sysdeps/mach/hurd/pipe2.c: New file, copy from pipe.c.  Evolve it to
	implement __pipe2.
	* sysdeps/mach/hurd/pipe.c (__pipe): Reimplement using __pipe2.
	* sysdeps/mach/hurd/kernel-features.h (__ASSUME_PIPE2): Define.


hurd i386/tg libc_getspecific.diff | (download)

sysdeps/mach/hurd/cthreads.c | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

---
hurd i386/tg futimens.diff | (download)

sysdeps/mach/hurd/futimens.c | 50 50 + 0 - 0 !
1 file changed, 50 insertions(+)

 [patch] add futimens support

* sysdeps/mach/hurd/futimens.c: New file.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>


hurd i386/tg sigstate_thread_reference.diff | (download)

hurd/hurd/signal.h | 17 14 + 3 - 0 !
hurd/hurdsig.c | 17 14 + 3 - 0 !
2 files changed, 28 insertions(+), 6 deletions(-)

 [patch] hurd: make sigstates hold a reference on thread ports

This change is required in order to correctly release per-thread
resources. Directly reusing the threading library reference isn't
possible since the sigstate is also used early in the main thread,
before threading is initialized.

* hurd/hurd/signal.h (_hurd_self_sigstate): Drop thread reference after
calling _hurd_thread_sigstate.
(_hurd_critical_section_lock): Likewise.
* hurd/hurdsig.c (_hurd_thread_sigstate): Add a reference on the thread.
(_hurd_sigstate_delete): Drop thread reference.


hurd i386/tg tls_thread_leak.diff | (download)

sysdeps/mach/hurd/i386/tls.h | 21 13 + 8 - 0 !
1 file changed, 13 insertions(+), 8 deletions(-)

 [patch] hurd: fix port leak in tls

Depending on whether the thread is the main thread or not, the threading
library can have trouble determining whether the thread reference in the
TCB is valid. The simple solution is to let the threading library
initialize the TCB, and use a temporary reference when initializing TLS.

* sysdeps/mach/hurd/i386/tls.h (_hurd_tls_init): Use a temporary thread
reference.


hurd i386/submitted bind_umask2.diff | (download)

sysdeps/mach/hurd/bind.c | 17 11 + 6 - 0 !
1 file changed, 11 insertions(+), 6 deletions(-)

---
hurd i386/local libpthread stacksize.diff | (download)

libpthread/sysdeps/mach/hurd/pt-sysdep.h | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
hurd i386/tg WRLCK upgrade.diff | (download)

misc/sys/file.h | 1 1 + 0 - 0 !
sysdeps/mach/hurd/fcntl.c | 4 2 + 2 - 0 !
2 files changed, 3 insertions(+), 2 deletions(-)

 [patch] make f_rdlck/f_wrlck atomic

lockf(LOCK_EX) would for instance drop any existing shared lock before taking
the exclusive lock. F_RDLCK/F_WRLCK need atomic changes, so introduce and use
__LOCK_ATOM

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

* misc/sys/file.h (__LOCK_ATOMIC): New macro.
* sysdeps/mach/hurd/fcntl.c (__libc_fcntl): Use __LOCK_ATOMIC along LOCK_SH and
LOCK_EX.


hurd i386/tg reboot startup.diff | (download)

sysdeps/mach/hurd/reboot.c | 5 3 + 2 - 0 !
1 file changed, 3 insertions(+), 2 deletions(-)

 [patch] lookup the startup server through /servers/startup

* sysdeps/mach/hurd/reboot.c: Include <hurd/paths.h>
(reboot): Lookup _SERVERS_STARTUP instead of calling proc_getmsgport to get a
port to the startup server.




hurd i386/cvs revert gnu gnu cleanup.diff | (download)

configure | 12 12 + 0 - 0 !
configure.ac | 12 12 + 0 - 0 !
2 files changed, 24 insertions(+)

---
hurd i386/tg allocalim.diff | (download)

sysdeps/pthread/allocalim.h | 7 5 + 2 - 0 !
1 file changed, 5 insertions(+), 2 deletions(-)

---
hurd i386/libpthread_pthread_types.diff | (download)

libpthread/sysdeps/i386/bits/pthreadtypes.h | 29 29 + 0 - 0 !
1 file changed, 29 insertions(+)

---