diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-08-01 01:05:53 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-08-01 01:05:53 +0200 |
commit | 68567b88ee8f9e395e0c1f0a565affe8a1d4d68b (patch) | |
tree | 07d3b7b96832493cb3cc57a26e88157e354cf899 | |
parent | fa0f7d1afb65bf077edfcc0f8977f95fca5656b9 (diff) |
Move files to libpthread/ for inclusion along hurd
-rw-r--r-- | libpthread/ChangeLog | 2201 | ||||
-rw-r--r-- | libpthread/Makefile | 247 | ||||
-rw-r--r-- | libpthread/Makefile.am (renamed from Makefile.am) | 0 | ||||
-rw-r--r-- | libpthread/TODO | 174 | ||||
-rw-r--r-- | libpthread/headers.m4 (renamed from headers.m4) | 0 | ||||
-rw-r--r-- | libpthread/include/libc-symbols.h | 395 | ||||
-rw-r--r-- | libpthread/include/pthread.h | 7 | ||||
-rw-r--r-- | libpthread/include/pthread/pthread.h | 744 | ||||
-rw-r--r-- | libpthread/include/pthread/pthreadtypes.h | 136 | ||||
-rw-r--r-- | libpthread/include/semaphore.h | 69 | ||||
-rw-r--r-- | libpthread/include/set-hooks.h | 72 | ||||
-rw-r--r-- | libpthread/libpthread.a (renamed from libpthread.a) | 0 | ||||
-rw-r--r-- | libpthread/libpthread_pic.a (renamed from libpthread_pic.a) | 0 | ||||
-rw-r--r-- | libpthread/lockfile.c (renamed from lockfile.c) | 0 | ||||
-rw-r--r-- | libpthread/not-in-libc.h (renamed from not-in-libc.h) | 0 | ||||
-rw-r--r-- | libpthread/pthread/Versions (renamed from pthread/Versions) | 0 | ||||
-rw-r--r-- | libpthread/pthread/cthreads-compat.c (renamed from pthread/cthreads-compat.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-alloc.c (renamed from pthread/pt-alloc.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-cancel.c (renamed from pthread/pt-cancel.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-cleanup.c (renamed from pthread/pt-cleanup.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-create.c (renamed from pthread/pt-create.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-dealloc.c (renamed from pthread/pt-dealloc.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-detach.c (renamed from pthread/pt-detach.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-exit.c (renamed from pthread/pt-exit.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-getattr.c (renamed from pthread/pt-getattr.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-initialize.c (renamed from pthread/pt-initialize.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-internal.h (renamed from pthread/pt-internal.h) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-join.c (renamed from pthread/pt-join.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-self.c (renamed from pthread/pt-self.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-setcancelstate.c (renamed from pthread/pt-setcancelstate.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-setcanceltype.c (renamed from pthread/pt-setcanceltype.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-sigmask.c (renamed from pthread/pt-sigmask.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-spin-inlines.c (renamed from pthread/pt-spin-inlines.c) | 0 | ||||
-rw-r--r-- | libpthread/pthread/pt-testcancel.c (renamed from pthread/pt-testcancel.c) | 0 | ||||
-rw-r--r-- | libpthread/signal/README (renamed from signal/README) | 0 | ||||
-rw-r--r-- | libpthread/signal/TODO (renamed from signal/TODO) | 0 | ||||
-rw-r--r-- | libpthread/signal/kill.c (renamed from signal/kill.c) | 0 | ||||
-rw-r--r-- | libpthread/signal/pt-kill-siginfo-np.c (renamed from signal/pt-kill-siginfo-np.c) | 0 | ||||
-rw-r--r-- | libpthread/signal/sig-internal.c (renamed from signal/sig-internal.c) | 0 | ||||
-rw-r--r-- | libpthread/signal/sig-internal.h (renamed from signal/sig-internal.h) | 0 | ||||
-rw-r--r-- | libpthread/signal/sigaction.c (renamed from signal/sigaction.c) | 0 | ||||
-rw-r--r-- | libpthread/signal/sigaltstack.c (renamed from signal/sigaltstack.c) | 0 | ||||
-rw-r--r-- | libpthread/signal/signal-dispatch.c (renamed from signal/signal-dispatch.c) | 0 | ||||
-rw-r--r-- | libpthread/signal/signal.h (renamed from signal/signal.h) | 0 | ||||
-rw-r--r-- | libpthread/signal/sigpending.c (renamed from signal/sigpending.c) | 0 | ||||
-rw-r--r-- | libpthread/signal/sigsuspend.c (renamed from signal/sigsuspend.c) | 0 | ||||
-rw-r--r-- | libpthread/signal/sigtimedwait.c (renamed from signal/sigtimedwait.c) | 0 | ||||
-rw-r--r-- | libpthread/signal/sigwaiter.c (renamed from signal/sigwaiter.c) | 0 | ||||
-rw-r--r-- | libpthread/signal/sigwaitinfo.c (renamed from signal/sigwaitinfo.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/barrier-attr.h (renamed from sysdeps/generic/bits/barrier-attr.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/barrier.h (renamed from sysdeps/generic/bits/barrier.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/cancelation.h (renamed from sysdeps/generic/bits/cancelation.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/condition-attr.h (renamed from sysdeps/generic/bits/condition-attr.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/condition.h (renamed from sysdeps/generic/bits/condition.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/mutex-attr.h (renamed from sysdeps/generic/bits/mutex-attr.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/mutex.h (renamed from sysdeps/generic/bits/mutex.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/once.h (renamed from sysdeps/generic/bits/once.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/pthread-np.h (renamed from sysdeps/generic/bits/pthread-np.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/pthread.h (renamed from sysdeps/generic/bits/pthread.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/pthreadtypes.h (renamed from sysdeps/generic/bits/pthreadtypes.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/rwlock-attr.h (renamed from sysdeps/generic/bits/rwlock-attr.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/rwlock.h (renamed from sysdeps/generic/bits/rwlock.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/semaphore.h (renamed from sysdeps/generic/bits/semaphore.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/thread-attr.h (renamed from sysdeps/generic/bits/thread-attr.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/bits/thread-specific.h (renamed from sysdeps/generic/bits/thread-specific.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/killpg.c (renamed from sysdeps/generic/killpg.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-atfork.c (renamed from sysdeps/generic/pt-atfork.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-destroy.c (renamed from sysdeps/generic/pt-attr-destroy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-getdetachstate.c (renamed from sysdeps/generic/pt-attr-getdetachstate.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-getguardsize.c (renamed from sysdeps/generic/pt-attr-getguardsize.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-getinheritsched.c (renamed from sysdeps/generic/pt-attr-getinheritsched.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-getschedparam.c (renamed from sysdeps/generic/pt-attr-getschedparam.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-getschedpolicy.c (renamed from sysdeps/generic/pt-attr-getschedpolicy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-getscope.c (renamed from sysdeps/generic/pt-attr-getscope.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-getstack.c (renamed from sysdeps/generic/pt-attr-getstack.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-getstackaddr.c (renamed from sysdeps/generic/pt-attr-getstackaddr.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-getstacksize.c (renamed from sysdeps/generic/pt-attr-getstacksize.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-init.c (renamed from sysdeps/generic/pt-attr-init.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-setdetachstate.c (renamed from sysdeps/generic/pt-attr-setdetachstate.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-setguardsize.c (renamed from sysdeps/generic/pt-attr-setguardsize.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-setinheritsched.c (renamed from sysdeps/generic/pt-attr-setinheritsched.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-setschedparam.c (renamed from sysdeps/generic/pt-attr-setschedparam.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-setschedpolicy.c (renamed from sysdeps/generic/pt-attr-setschedpolicy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-setscope.c (renamed from sysdeps/generic/pt-attr-setscope.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-setstack.c (renamed from sysdeps/generic/pt-attr-setstack.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-setstackaddr.c (renamed from sysdeps/generic/pt-attr-setstackaddr.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr-setstacksize.c (renamed from sysdeps/generic/pt-attr-setstacksize.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-attr.c (renamed from sysdeps/generic/pt-attr.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-barrier-destroy.c (renamed from sysdeps/generic/pt-barrier-destroy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-barrier-init.c (renamed from sysdeps/generic/pt-barrier-init.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-barrier-wait.c (renamed from sysdeps/generic/pt-barrier-wait.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-barrier.c (renamed from sysdeps/generic/pt-barrier.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-barrierattr-destroy.c (renamed from sysdeps/generic/pt-barrierattr-destroy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-barrierattr-getpshared.c (renamed from sysdeps/generic/pt-barrierattr-getpshared.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-barrierattr-init.c (renamed from sysdeps/generic/pt-barrierattr-init.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-barrierattr-setpshared.c (renamed from sysdeps/generic/pt-barrierattr-setpshared.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-cond-brdcast.c (renamed from sysdeps/generic/pt-cond-brdcast.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-cond-destroy.c (renamed from sysdeps/generic/pt-cond-destroy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-cond-init.c (renamed from sysdeps/generic/pt-cond-init.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-cond-signal.c (renamed from sysdeps/generic/pt-cond-signal.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-cond-timedwait.c (renamed from sysdeps/generic/pt-cond-timedwait.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-cond-wait.c (renamed from sysdeps/generic/pt-cond-wait.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-cond.c (renamed from sysdeps/generic/pt-cond.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-condattr-destroy.c (renamed from sysdeps/generic/pt-condattr-destroy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-condattr-getclock.c (renamed from sysdeps/generic/pt-condattr-getclock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-condattr-getpshared.c (renamed from sysdeps/generic/pt-condattr-getpshared.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-condattr-init.c (renamed from sysdeps/generic/pt-condattr-init.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-condattr-setclock.c (renamed from sysdeps/generic/pt-condattr-setclock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-condattr-setpshared.c (renamed from sysdeps/generic/pt-condattr-setpshared.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-destroy-specific.c (renamed from sysdeps/generic/pt-destroy-specific.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-equal.c (renamed from sysdeps/generic/pt-equal.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-getconcurrency.c (renamed from sysdeps/generic/pt-getconcurrency.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-getcpuclockid.c (renamed from sysdeps/generic/pt-getcpuclockid.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-getschedparam.c (renamed from sysdeps/generic/pt-getschedparam.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-getspecific.c (renamed from sysdeps/generic/pt-getspecific.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-init-specific.c (renamed from sysdeps/generic/pt-init-specific.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-key-create.c (renamed from sysdeps/generic/pt-key-create.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-key-delete.c (renamed from sysdeps/generic/pt-key-delete.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-key.h (renamed from sysdeps/generic/pt-key.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-kill.c (renamed from sysdeps/generic/pt-kill.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutex-destroy.c (renamed from sysdeps/generic/pt-mutex-destroy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutex-getprioceiling.c (renamed from sysdeps/generic/pt-mutex-getprioceiling.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutex-init.c (renamed from sysdeps/generic/pt-mutex-init.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutex-lock.c (renamed from sysdeps/generic/pt-mutex-lock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutex-setprioceiling.c (renamed from sysdeps/generic/pt-mutex-setprioceiling.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutex-timedlock.c (renamed from sysdeps/generic/pt-mutex-timedlock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutex-transfer-np.c (renamed from sysdeps/generic/pt-mutex-transfer-np.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutex-trylock.c (renamed from sysdeps/generic/pt-mutex-trylock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutex-unlock.c (renamed from sysdeps/generic/pt-mutex-unlock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutexattr-destroy.c (renamed from sysdeps/generic/pt-mutexattr-destroy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutexattr-getprioceiling.c (renamed from sysdeps/generic/pt-mutexattr-getprioceiling.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutexattr-getprotocol.c (renamed from sysdeps/generic/pt-mutexattr-getprotocol.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutexattr-getpshared.c (renamed from sysdeps/generic/pt-mutexattr-getpshared.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutexattr-gettype.c (renamed from sysdeps/generic/pt-mutexattr-gettype.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutexattr-init.c (renamed from sysdeps/generic/pt-mutexattr-init.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutexattr-setprioceiling.c (renamed from sysdeps/generic/pt-mutexattr-setprioceiling.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutexattr-setprotocol.c (renamed from sysdeps/generic/pt-mutexattr-setprotocol.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutexattr-setpshared.c (renamed from sysdeps/generic/pt-mutexattr-setpshared.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutexattr-settype.c (renamed from sysdeps/generic/pt-mutexattr-settype.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-mutexattr.c (renamed from sysdeps/generic/pt-mutexattr.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-once.c (renamed from sysdeps/generic/pt-once.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlock-attr.c (renamed from sysdeps/generic/pt-rwlock-attr.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlock-destroy.c (renamed from sysdeps/generic/pt-rwlock-destroy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlock-init.c (renamed from sysdeps/generic/pt-rwlock-init.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlock-rdlock.c (renamed from sysdeps/generic/pt-rwlock-rdlock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlock-timedrdlock.c (renamed from sysdeps/generic/pt-rwlock-timedrdlock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlock-timedwrlock.c (renamed from sysdeps/generic/pt-rwlock-timedwrlock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlock-tryrdlock.c (renamed from sysdeps/generic/pt-rwlock-tryrdlock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlock-trywrlock.c (renamed from sysdeps/generic/pt-rwlock-trywrlock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlock-unlock.c (renamed from sysdeps/generic/pt-rwlock-unlock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlock-wrlock.c (renamed from sysdeps/generic/pt-rwlock-wrlock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlockattr-destroy.c (renamed from sysdeps/generic/pt-rwlockattr-destroy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlockattr-getpshared.c (renamed from sysdeps/generic/pt-rwlockattr-getpshared.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlockattr-init.c (renamed from sysdeps/generic/pt-rwlockattr-init.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-rwlockattr-setpshared.c (renamed from sysdeps/generic/pt-rwlockattr-setpshared.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-setconcurrency.c (renamed from sysdeps/generic/pt-setconcurrency.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-setschedparam.c (renamed from sysdeps/generic/pt-setschedparam.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-setschedprio.c (renamed from sysdeps/generic/pt-setschedprio.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-setspecific.c (renamed from sysdeps/generic/pt-setspecific.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/pt-startup.c (renamed from sysdeps/generic/pt-startup.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/raise.c (renamed from sysdeps/generic/raise.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sem-close.c (renamed from sysdeps/generic/sem-close.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sem-destroy.c (renamed from sysdeps/generic/sem-destroy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sem-getvalue.c (renamed from sysdeps/generic/sem-getvalue.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sem-init.c (renamed from sysdeps/generic/sem-init.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sem-open.c (renamed from sysdeps/generic/sem-open.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sem-post.c (renamed from sysdeps/generic/sem-post.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sem-timedwait.c (renamed from sysdeps/generic/sem-timedwait.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sem-trywait.c (renamed from sysdeps/generic/sem-trywait.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sem-unlink.c (renamed from sysdeps/generic/sem-unlink.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sem-wait.c (renamed from sysdeps/generic/sem-wait.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sigaddset.c (renamed from sysdeps/generic/sigaddset.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sigdelset.c (renamed from sysdeps/generic/sigdelset.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sigemptyset.c (renamed from sysdeps/generic/sigemptyset.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sigfillset.c (renamed from sysdeps/generic/sigfillset.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/siginterrupt.c (renamed from sysdeps/generic/siginterrupt.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sigismember.c (renamed from sysdeps/generic/sigismember.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/signal.c (renamed from sysdeps/generic/signal.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/generic/sigwait.c (renamed from sysdeps/generic/sigwait.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/hurd/pt-destroy-specific.c (renamed from sysdeps/hurd/pt-destroy-specific.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/hurd/pt-getspecific.c (renamed from sysdeps/hurd/pt-getspecific.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/hurd/pt-init-specific.c (renamed from sysdeps/hurd/pt-init-specific.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/hurd/pt-key-create.c (renamed from sysdeps/hurd/pt-key-create.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/hurd/pt-key-delete.c (renamed from sysdeps/hurd/pt-key-delete.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/hurd/pt-key.h (renamed from sysdeps/hurd/pt-key.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/hurd/pt-kill.c (renamed from sysdeps/hurd/pt-kill.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/hurd/pt-setspecific.c (renamed from sysdeps/hurd/pt-setspecific.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/ia32/bits/atomic.h (renamed from sysdeps/ia32/bits/atomic.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/ia32/bits/memory.h (renamed from sysdeps/ia32/bits/memory.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/ia32/bits/spin-lock-inline.h (renamed from sysdeps/ia32/bits/spin-lock-inline.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/ia32/bits/spin-lock.h (renamed from sysdeps/ia32/bits/spin-lock.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/ia32/machine-sp.h (renamed from sysdeps/ia32/machine-sp.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/ia32/pt-machdep.h (renamed from sysdeps/ia32/pt-machdep.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/bits/pthread-np.h (renamed from sysdeps/l4/bits/pthread-np.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/bits/pthread-np.h (renamed from sysdeps/l4/hurd/bits/pthread-np.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/ia32/pt-machdep.c (renamed from sysdeps/l4/hurd/ia32/pt-machdep.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/ia32/pt-setup.c (renamed from sysdeps/l4/hurd/ia32/pt-setup.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/ia32/signal-dispatch-lowlevel.c (renamed from sysdeps/l4/hurd/ia32/signal-dispatch-lowlevel.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/powerpc/pt-machdep.c (renamed from sysdeps/l4/hurd/powerpc/pt-machdep.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/powerpc/pt-setup.c (renamed from sysdeps/l4/hurd/powerpc/pt-setup.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/pt-block.c (renamed from sysdeps/l4/hurd/pt-block.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/pt-kill.c (renamed from sysdeps/l4/hurd/pt-kill.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/pt-setactivity-np.c (renamed from sysdeps/l4/hurd/pt-setactivity-np.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/pt-sigstate-destroy.c (renamed from sysdeps/l4/hurd/pt-sigstate-destroy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/pt-sigstate-init.c (renamed from sysdeps/l4/hurd/pt-sigstate-init.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/pt-sigstate.c (renamed from sysdeps/l4/hurd/pt-sigstate.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/pt-startup.c (renamed from sysdeps/l4/hurd/pt-startup.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/pt-sysdep.c (renamed from sysdeps/l4/hurd/pt-sysdep.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/pt-sysdep.h (renamed from sysdeps/l4/hurd/pt-sysdep.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/pt-thread-alloc.c (renamed from sysdeps/l4/hurd/pt-thread-alloc.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/pt-thread-halt.c (renamed from sysdeps/l4/hurd/pt-thread-halt.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/pt-thread-start.c (renamed from sysdeps/l4/hurd/pt-thread-start.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/pt-wakeup.c (renamed from sysdeps/l4/hurd/pt-wakeup.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/sig-sysdep.h (renamed from sysdeps/l4/hurd/sig-sysdep.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/hurd/sigprocmask.c (renamed from sysdeps/l4/hurd/sigprocmask.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/pt-block.c (renamed from sysdeps/l4/pt-block.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/pt-docancel.c (renamed from sysdeps/l4/pt-docancel.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/pt-pool-np.c (renamed from sysdeps/l4/pt-pool-np.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/pt-spin.c (renamed from sysdeps/l4/pt-spin.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/pt-stack-alloc.c (renamed from sysdeps/l4/pt-stack-alloc.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/pt-thread-alloc.c (renamed from sysdeps/l4/pt-thread-alloc.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/pt-thread-dealloc.c (renamed from sysdeps/l4/pt-thread-dealloc.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/pt-thread-halt.c (renamed from sysdeps/l4/pt-thread-halt.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/pt-thread-start.c (renamed from sysdeps/l4/pt-thread-start.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/pt-timedblock.c (renamed from sysdeps/l4/pt-timedblock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/pt-wakeup.c (renamed from sysdeps/l4/pt-wakeup.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/bits/spin-lock-inline.h (renamed from sysdeps/mach/bits/spin-lock-inline.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/bits/spin-lock.h (renamed from sysdeps/mach/bits/spin-lock.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/hurd/ia32/pt-machdep.c (renamed from sysdeps/mach/hurd/ia32/pt-machdep.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/hurd/ia32/pt-setup.c (renamed from sysdeps/mach/hurd/ia32/pt-setup.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/hurd/pt-attr-setstackaddr.c (renamed from sysdeps/mach/hurd/pt-attr-setstackaddr.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/hurd/pt-attr-setstacksize.c (renamed from sysdeps/mach/hurd/pt-attr-setstacksize.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/hurd/pt-docancel.c (renamed from sysdeps/mach/hurd/pt-docancel.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/hurd/pt-sigstate-destroy.c (renamed from sysdeps/mach/hurd/pt-sigstate-destroy.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/hurd/pt-sigstate-init.c (renamed from sysdeps/mach/hurd/pt-sigstate-init.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/hurd/pt-sigstate.c (renamed from sysdeps/mach/hurd/pt-sigstate.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/hurd/pt-sysdep.c (renamed from sysdeps/mach/hurd/pt-sysdep.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/hurd/pt-sysdep.h (renamed from sysdeps/mach/hurd/pt-sysdep.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/pt-block.c (renamed from sysdeps/mach/pt-block.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/pt-spin.c (renamed from sysdeps/mach/pt-spin.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/pt-stack-alloc.c (renamed from sysdeps/mach/pt-stack-alloc.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/pt-thread-alloc.c (renamed from sysdeps/mach/pt-thread-alloc.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/pt-thread-dealloc.c (renamed from sysdeps/mach/pt-thread-dealloc.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/pt-thread-halt.c (renamed from sysdeps/mach/pt-thread-halt.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/pt-thread-start.c (renamed from sysdeps/mach/pt-thread-start.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/pt-timedblock.c (renamed from sysdeps/mach/pt-timedblock.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/mach/pt-wakeup.c (renamed from sysdeps/mach/pt-wakeup.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/posix/pt-spin.c (renamed from sysdeps/posix/pt-spin.c) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/powerpc/bits/machine-lock.h (renamed from sysdeps/powerpc/bits/machine-lock.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/powerpc/bits/memory.h (renamed from sysdeps/powerpc/bits/memory.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/powerpc/bits/spin-lock.h (renamed from sysdeps/powerpc/bits/spin-lock.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/powerpc/machine-sp.h (renamed from sysdeps/powerpc/machine-sp.h) | 0 | ||||
-rw-r--r-- | libpthread/sysdeps/powerpc/pt-machdep.h (renamed from sysdeps/powerpc/pt-machdep.h) | 0 | ||||
-rw-r--r-- | libpthread/tests/.cvsignore (renamed from tests/.cvsignore) | 0 | ||||
-rw-r--r-- | libpthread/tests/Makefile (renamed from tests/Makefile) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-1.c (renamed from tests/test-1.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-10.c (renamed from tests/test-10.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-11.c (renamed from tests/test-11.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-12.c (renamed from tests/test-12.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-13.c (renamed from tests/test-13.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-14.c (renamed from tests/test-14.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-15.c (renamed from tests/test-15.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-16.c (renamed from tests/test-16.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-2.c (renamed from tests/test-2.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-3.c (renamed from tests/test-3.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-4.c (renamed from tests/test-4.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-5.c (renamed from tests/test-5.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-6.c (renamed from tests/test-6.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-7.c (renamed from tests/test-7.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-8.c (renamed from tests/test-8.c) | 0 | ||||
-rw-r--r-- | libpthread/tests/test-9.c (renamed from tests/test-9.c) | 0 |
271 files changed, 4045 insertions, 0 deletions
diff --git a/libpthread/ChangeLog b/libpthread/ChangeLog new file mode 100644 index 00000000..2dcc1777 --- /dev/null +++ b/libpthread/ChangeLog @@ -0,0 +1,2201 @@ +2009-01-10 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * sysdeps/i386/bits/spin-lock.h (__SPIN_LOCK_INITIALIZER): Rename + macro to... + (__PTHREAD_SPIN_LOCK_INITIALIZER): ... this. + * sysdeps/mach/bits/spin-lock.h (__SPIN_LOCK_INITIALIZER): Rename + macro to... + (__PTHREAD_SPIN_LOCK_INITIALIZER): ... this. + + * include/pthread/pthread.h (PTHREAD_SPINLOCK_INITIALIZER): Use + __PTHREAD_SPIN_LOCK_INITIALIZER instead of + __SPIN_LOCK_INITIALIZER. + * sysdeps/generic/bits/condition.h (__PTHREAD_COND_INITIALIZER): + Likewise. + * sysdeps/generic/bits/mutex.h (__PTHREAD_MUTEX_INITIALIZER, + __PTHREAD_RECURSIVE_MUTEX_INITIALIZER): + Likewise. + * sysdeps/generic/bits/once.h (__PTHREAD_ONCE_INIT): Likewise. + * sysdeps/generic/bits/rwlock.h (__PTHREAD_RWLOCK_INITIALIZER): + Likewise. + * sysdeps/generic/bits/semaphore.h (__SEMAPHORE_INITIALIZER): + Likewise. + * sysdeps/i386/bits/spin-lock-inline.h (__pthread_spin_init): + Likewise. + * sysdeps/i386/mach/spin-lock-inline.h (__pthread_spin_init): + Likewise. + +2008-12-21 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * sysdeps/mach/pt-timedblock.c (__pthread_timedblock): Fix timeout + computation from abstime and now. + * include/pthread/pthread.h (PTHREAD_RWLOCK_INITIALIZER): New macro. + +2008-10-02 Neal H. Walfield <neal@gnu.org> + + * sysdeps/generic/pt-mutex-timedlock.c + (__pthread_mutex_timedlock_internal) [! ALWAYS_TRACK_MUTEX_OWNER]: + Don't update MUTEX->OWNER or assert MUTEX->OWNER for normal + mutexes. + * sysdeps/generic/pt-mutex-unlock.c (__pthread_mutex_unlock) + [! ALWAYS_TRACK_MUTEX_OWNER]: Don't update MUTEX->OWNER or assert + MUTEX->OWNER for normal mutexes. + * sysdeps/generic/pt-mutex-transfer-np.c + (__pthread_mutex_transfer_np) [! ALWAYS_TRACK_MUTEX_OWNER]: Don't + update MUTEX->OWNER for normal mutexes. + +2008-08-27 Neal H. Walfield <neal@gnu.org> + + * pthread/cthreads-compat.c: Don't include <cthreads.h>. + (cthread_t): New type definition. + (cthread_fn_t): Likewise. + (cthread_key_t): Likewise. + (CTHREAD_KEY_INVALID): Define. + +2008-08-26 Neal H. Walfield <neal@gnu.org> + + * sysdeps/mach/pt-thread-alloc.c (__pthread_thread_alloc): Set + THREAD->HAVE_KERNEL_RESOURCES to 1, not true. Reported by Flávio + Cruz <Flávio Cruz>. + +2008-08-16 Neal H. Walfield <neal@gnu.org> + + * pthread/pt-alloc.c: Don't include <bits/atomic.h>. + (__pthread_free_threads): Change to a struct __pthread *. + (__pthread_free_threads_lock): New variable. + (__pthread_alloc): When looking for a TCB to reuse, iterate over + __pthread_free_threads taking the first for which the STATE field + is PTHREAD_TERMINATED. When reusing a TCB, first call + __pthread_thread_halt on it. + * pthread/pt-dealloc.c: Don't include <bits/atomic.h>. + (__pthread_free_threads): Change to a struct __pthread *. + (__pthread_free_threads_lock): New declaration. + (__pthread_dealloc): Enqueue PTHREAD on __PTHREAD_FREE_THREADS. + Set PTHREAD->STATE to PTHREAD_TERMINATED after everything else. + * pthread/pt-join.c (pthread_join): Call __pthread_thread_halt + before destroying the thread. When destroying the thread, call + __pthread_thread_dealloc on it. + * pthread/pt-detach.c (pthread_detach): If destroying the thread, + call __pthread_thread_halt before deallocating the stack. In this + case, also call __pthread_thread_dealloc on the tcb. + * pthread/pt-exit.c (pthread_exit): Call __pthread_dealloc only if + the thread is detached and then as the last thing we do before + calling __pthread_thread_halt. + * pthread/pt-internal.h (__pthread_thread_halt): Remove argument + NEED_DEALLOC. Update users. + * sysdeps/mach/pt-thread-halt.c (__pthread_thread_halt): Remove + argument need_dealloc. + * sysdeps/mach/hurd/pt-sysdep.h (PTHREAD_SYSDEP_MEMBERS): Add field + have_kernel_resources. + * sysdeps/mach/hurd/pt-thread-alloc.c (__pthread_thread_alloc): If + THREAD->HAVE_KERNEL_RESOURCES is true, just return. After + allocating the resources, set THREAD->HAVE_KERNEL_RESOURCES to + true. + +2008-08-12 Neal H. Walfield <neal@gnu.org> + + Merge changes from hurd-l4 fork. + + * Makefile (SRCS): Add pt-startup.c and pt-mutex-transfer-np.c. + (sysdeps_headers): Add pthread-np.h. + +2008-08-12 Neal H. Walfield <neal@gnu.org> + + * sysdeps/generic/bits/pthread-np.h: New file. + +2008-08-12 Neal H. Walfield <neal@gnu.org> + + * sysdeps/generic/pt-startup.c: New file. + +2008-08-12 Neal H. Walfield <neal@gnu.org> + + * sysdeps/generic/bits/mutex.h (__PTHREAD_RECURSIVE_MUTEX_INITIALIZER): + Define. + (__PTHREAD_MUTEX_RECURSIVE_INITIALIZER): Don't define. + * include/pthread/pthread.h + (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP) [__USE_GNU]: Define. + (PTHREAD_MUTEX_RECURSIVE_INITIALIZER_NP): Don't define. + +2008-08-12 Neal H. Walfield <neal@gnu.org> + + * include/pthread/pthread.h: Include <sys/cdefs.h>. + (__extern_inline): If not defined, define appropriately. + +2008-06-01 Neal H. Walfield <neal@gnu.org> + + * include/pthread/pthread.h (PTHREAD_MUTEX_RECURSIVE_INITIALIZER_NP): + New definition. + * sysdeps/generic/bits/mutex.h + (__PTHREAD_MUTEX_RECURSIVE_INITIALIZER): New definition. + * sysdeps/generic/bits/mutex-attr.h (__pthread_recursive_mutexattr): + New definition. + * sysdeps/generic/pt-mutexattr.c (__pthread_recursive_mutexattr): + New declaration. + * sysdeps/generic/pt-mutex-init.c (_pthread_mutex_init): If ATTR + is &__PTHREAD_RECURSIVE_MUTEXATTR, don't allocate a copy, just + save in MUTEX->ATTR. + * sysdeps/generic/pt-mutex-destroy.c (_pthread_mutex_destroy): If + MUTEX->ATTR is &__PTHREAD_RECURSIVE_MUTEXATTR, don't free it. + +2008-05-29 Thomas Schwinge <tschwinge@gnu.org> + + * sysdeps/generic/sem-timedwait.c: Don't include <error.h>. + +2008-05-21 Neal H. Walfield <neal@gnu.org> + + * include/pthread/pthread.h: Include <bits/pthread-np.h>. + +2008-03-01 Neal H. Walfield <neal@gnu.org> + + * sysdeps/generic/pt-mutex-transfer-np.c: New file. + + * pthread/pt-self.c (pthread_self): Assert that SELF is not NULL. + +2007-12-23 Neal H. Walfield <neal@gnu.org> + + * pthread/pt-join.c (pthread_join): Cast argument to + pthread_cleanup_push to avoid warning. + +2007-11-23 Neal H. Walfield <neal@gnu.org> + + * pthread/pt-internal.h (__pthread_startup): Add declaration. + * pthread/pt-create.c (entry_point): Call __pthread_startup. + +2008-08-12 Neal H. Walfield <neal@gnu.org> + + * sysdeps/generic/pt-mutex-unlock.c (__pthread_mutex_unlock): + Remove dead code. + +2008-08-11 Neal H. Walfield <neal@gnu.org> + + * sysdeps/l4/pt-docancel.c: Remove file. + * sysdeps/l4/pt-thread-alloc.c: Likewise. + * sysdeps/l4/pt-wakeup.c: Likewise. + * sysdeps/l4/pt-thread-halt.c: Likewise. + * sysdeps/l4/pt-start.c: Likewise. + * sysdeps/l4/pt-stack-alloc.c: Likewise. + * sysdeps/l4/pt-thread-start.c: Likewise. + * sysdeps/l4/pt-block.c: Likewise. + * sysdeps/l4/hurd/pt-sysdep.h: Likewise. + * sysdeps/l4/hurd/pt-sysdep.c: Likewise. + * sysdeps/l4/hurd/i386/pt-setup.c: Likewise. + * sysdeps/l4/hurd/i386/pt-machdep.c: Likewise. + +2008-08-04 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * include/pthread/pthreadtypes.h (__pthread_inheritsched): Remove + comma at end of enumeration. + +2008-08-03 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * Makefile (sysdeps_headers): Add spin-lock-inline.h. + (SYSDEP_PATH): Move sysdeps/i386 right after + sysdeps/$(MICROKERNEL)/i386. + * include/pthread/pthread.h: Include <bits/spin-lock-inline.h>. + * sysdeps/i386/bits/spin-lock.h: Move inlines to... + * sysdeps/i386/bits/spin-lock-inline.h: ... new file. + * sysdeps/mach/bits/spin-lock.h: Move inlines to... + * sysdeps/mach/bits/spin-lock-inline.h: ... new file. + +2008-08-02 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * sysdeps/generic/bits/mutex.h: Do not include <errno.h> and + <stddef.h> + * sysdeps/i386/bits/memory.h (__memory_barrier): Add memory clobber. + * sysdeps/i386/bits/spin-lock.h (__pthread_spin_trylock, + __pthread_spin_unlock): Add memory clobbers. + * sysdeps/mach/hurd/i386/pt-setup.c (stack_setup): Fix cast from + thread to integer. Fix reservation of stack room for initial frame. + * sysdeps/l4/hurd/i386/pt-setup.c (stack_setup): Fix reservation of + stack room for initial frame. + +2008-07-18 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * Makefile (sysdeps_headers): add pthread/pthreadtypes.h + +2008-06-29 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * sysdeps/generic/pt-mutex-unlock.c (__pthread_mutex_unlock): + Do not use assertx and threadid. + +2008-06-27 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * include/pthread/pthread.h: Do not define __need_clockid_t, include + <time.h>, and define clockid_t if __clockid_defined is not defined. + Include <pthread/pthreadtypes.h> + (pthread_equal): New extern inline. + (pthread_cleanup_push, pthread_cleanup_pop): New macros. + (__pthread_process_shared, __pthread_inheritsched, + __pthread_contentionscope, __pthread_detachstate, + __pthread_mutex_protocol, __pthread_mutex_type, + pthread_attr_t, pthread_mutex_attr_t, pthread_mutex_t, + pthread_condattr_t, pthread_cond_t, pthread_spinlock_t, + pthread_rwlockattr_t, pthread_rwlock_t, pthread_barrierattr_t, + pthread_barrier_t, pthread_key_t, pthread_once_t): Move enums and + typedefs to... + * include/pthread/pthreadtypes.h: ... new file. + * sysdeps/generic/bits/cancelation.h (pthread_cleanup_push): Rename + macro to __pthread_cleanup_push. + (pthread_cleanup_pop): Rename macro to __pthread_cleanup_pop. + * sysdeps/generic/bits/barrier-attr.h (__pthread_process_shared): + Forward-declare enum. + * sysdeps/generic/bits/condition-attr.h (__pthread_process_shared): + Likewise. + * sysdeps/generic/bits/mutex-attr.h (__pthread_mutex_protocol, + __pthread_process_shared, __pthread_mutex_type): + Likewise. + * sysdeps/generic/bits/rwlock-attr.h (__pthread_process_shared): + Likewise. + * sysdeps/generic/bits/thread-attr.h (__pthread_detachstate, + __pthread_inheritsched, __pthread_contentionscope): + Likewise. + * sysdeps/generic/bits/pthread.h (pthread_t): Rename type to + __pthread_t. + (pthread_equal): Rename to __pthread_equal. + +2008-06-27 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * sysdeps/generic/bits/thread-barrier.h: Remove unused file. + +2008-06-22 Neal H. Walfield <neal@gnu.org> + + * sysdeps/generic/pt-mutex-timedlock.c + (__pthread_mutex_timedlock_internal) [! NDEBUG]: Set MUTEX->OWNER + appropriately and assert that it is consistent. + * sysdeps/generic/pt-mutex-unlock.c (__pthread_mutex_unlock) [! + NDEBUG]: Set MUTEX->OWNER appropriately and assert that it is + consistent. + * sysdeps/generic/pt-mutex-trylock.c (__pthread_mutex_trylock) [! + NDEBUG]: Set MUTEX->OWNER. + +2008-06-07 Neal H. Walfield <neal@gnu.org> + + * pthread/pt-internal.h (__pthread_queue_iterate): Use 1, not + true. + (__pthread_dequeuing_iterate): Likewise. + +2008-05-27 Neal H. Walfield <neal@gnu.org> + + * pthread/pt-internal.h (__pthread_queue_iterate): Before + returning the current element, save its next pointer. + (__pthread_dequeuing_iterate): Likewise. + +2008-05-27 Neal H. Walfield <neal@gnu.org> + + * sysdeps/mach/hurd/pt-docancel.c (__pthread_do_cancel): Fix + assert. + +2008-05-17 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * include/pthread/pthread.h (pthread_getattr_np): New declaration. + * pthread/pt-getattr.c: New file. + * Makefile (SRCS): Add pt-getattr.c. + +2008-03-16 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * include/libc-symbols.h (HAVE_ASM_PREVIOUS_DIRECTIVE): Define. + +2008-02-29 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * sysdeps/l4/hurd/i386/pt-setup.c (stack_setup): Align stack on 0x10 + for MMX operations. + * sysdeps/mach/hurd/i386/pt-setup.c (stack_setup): Likewise. + +2008-01-01 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * include/pthread/pthread.h (pthread_spin_destroy, pthread_spin_init, + pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock): Use + __extern_inline macro instead of extern __inline. + * sysdeps/i386/bits/spin-lock.h (__PT_SPIN_INLINE, + __pthread_spin_lock): Likewise + * sysdeps/mach/bits/spin-lock.h (__PT_SPIN_INLINE, + __pthread_spin_lock): Likewise + * sysdeps/generic/bits/pthread.h (pthread_equal): Declare ; only + provide inline when __USE_EXTERN_INLINES is defined. Use __extern_inline + macro instead of extern __inline. + * sysdeps/i386/bits/memory.h (__memory_barrier): Add static to inline. + +2007-11-19 Thomas Schwinge <tschwinge@gnu.org> + + * Makefile (CFLAGS): Don't set and instead... + (CPPFLAGS): ... append the inclusion stuff to these. + +2007-08-02 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * sysdeps/generic/bits/mutex.h (pthread_mutex_init) + (pthread_mutex_destroy, __pthread_mutex_lock, __pthread_mutex_trylock) + (pthread_mutex_lock, pthread_mutex_trylock): Remove inline + definitions. + * sysdeps/generic/bits/rwlock.h (pthread_rwlock_init) + (pthread_rwlock_destroy): Likewise. + +2007-06-24 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * include/semaphore.h (sem_timedwait): Declare only if __USE_XOPEN2K + is defined. + * include/pthread/pthread.h (pthread_attr_getstack) + (pthread_attr_setstack, pthread_mutex_timedlock) + (pthread_condattr_getclock, pthread_condattr_setclock) + (pthread_rwlock_timedrdlock, pthread_rwlock_timedwrlock) + (pthread_barrierattr_t, pthread_barrierattr_init) + (pthread_barrierattr_destroy, pthread_barrierattr_getpshared) + (pthread_barrierattr_setpshared, pthread_barrier_t) + (PTHREAD_BARRIER_SERIAL_THREAD, pthread_barrier_init) + (pthread_barrier_destroy, pthread_barrier_wait) + (pthread_getcpuclockid): Declare only if __USE_XOPEN2K is defined. + (pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling) + (pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol) + (pthread_mutexattr_gettype, pthread_mutexattr_settype) + (pthread_mutex_getprioceiling, pthread_mutex_setprioceiling) + (pthread_setconcurrency, pthread_getconcurrency): Declare only if + __USE_UNIX98 is defined. + (pthread_rwlockattr_t, pthread_rwlockattr_init) + (pthread_rwlockattr_destroy, pthread_rwlockattr_getpshared) + (pthread_rwlockattr_setpshared, pthread_rwlock_t, pthread_rwlock_init) + (pthread_rwlock_destroy, pthread_rwlock_rdlock) + (pthread_rwlock_tryrdlock, pthread_rwlock_wrlock) + (pthread_rwlock_trywrlock, pthread_rwlock_unlock): Declare only if + __USE_UNIX98 or __USE_XOPEN2K are defined. + (PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, PTHREAD_PRIO_PROTECT) + (PTHREAD_MUTEX_NORMAL, PTHREAD_MUTEX_ERRORCHECK) + (PTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_DEFAULT): + Define only if __USE_UNIX98 is defined. + (PTHREAD_MUTEX_FAST_NP): Define for compatibility when __USE_GNU is + defined. + * sysdeps/generic/bits/rwlock.h (pthread_rwlock_init) + (pthread_rwlock_destroy): Declare only if __USE_UNIX98 or + __USE_XOPEN2K are defined. + * TODO: Drop that TODO item. + +2006-03-04 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * sysdeps/i386/machine-sp.h (thread_stack_pointer): + Optimize esp read. + * include/pthread/pthread.h: Add the restrict keyword where + appropriate for full compliance. + * pthread/pt-internal.h: Likewise. + * sysdeps/generic/bits/mutex.h: Likewise. + * sysdeps/generic/bits/rwlock.h: Likewise. + * TODO: Drop that TODO item. + +2006-01-20 Samuel Thibault <samuel.thibault@ens-lyon.org> + + Do not let other libraries (like libX11) override libpthread's + pthread_mutex_*, pthread_rwlock_* and sem_* dynamic symbols. + * sysdeps/generic/pt-mutex-destroy.c + (pthread_mutex_destroy): Make the alias strong. + * sysdeps/generic/pt-mutex-init.c + (pthread_mutex_init): Likewise. + * sysdeps/generic/pt-mutex-lock.c + (_pthread_mutex_lock, pthread_mutex_lock): Likewise. + * sysdeps/generic/pt-mutex-trylock.c + (_pthread_mutex_trylock, pthread_mutex_trylock): Likewise. + * sysdeps/generic/pt-mutex-unlock.c + (_pthread_mutex_lock, pthread_mutex_unlock): Likewise. + * sysdeps/generic/pt-rwlock-destroy.c + (pthread_rwlock_destroy): Likewise. + * sysdeps/generic/pt-rwlock-init.c + (pthread_rwlock_init): Likewise. + * sysdeps/generic/sem-destroy.c (sem_destroy): Likewise. + * sysdeps/generic/sem-getvalue.c (sem_getvalue): Likewise. + * sysdeps/generic/sem-init.c (sem_init): Likewise. + * sysdeps/generic/sem-open.c (sem_open): Likewise. + * sysdeps/generic/sem-post.c (sem_post): Likewise. + * sysdeps/generic/sem-timedwait.c (sem_timedwait): Likewise. + * sysdeps/generic/sem-trywait.c (sem_trywait): Likewise. + * sysdeps/generic/sem-unlink.c (sem_unlink): Likewise. + * sysdeps/generic/sem-wait.c (sem_wait): Likewise. + +2006-03-27 Thomas Schwinge <tschwinge@gnu.org> + + * Makefile (SRCS): Don't define two times and only list `pt-attr.c' + once. Reported by Jeff Bailey <jbailey@gnu.org>. + +2005-08-28 Neal H. Walfield <neal@gnu.org> + + * include/semaphore.h: Use __restrict, not restrict. + +2005-05-31 Neal H. Walfield <neal@gnu.org> + + * include/pthread/pthread.h: If clockid_t is still not defined + after including <time.h>, define it manually. + +2005-05-17 Neal H. Walfield <neal@gnu.org> + + * include/pthread/pthread.h: Define __need_clockid_t before + including <time.h>. + +2005-05-12 Neal H. Walfield <neal@gnu.org> + + * include/pthread/pthread.h (pthread_exit): Add noreturn + attribute. + + * sysdeps/generic/bits/condition.h (__PTHREAD_COND_INITIALIZER): + Don't create a compound literal. + * sysdeps/generic/bits/mutex.h (__PTHREAD_MUTEX_INITIALIZER): + Don't create a compound literal. + (pthread_mutex_init): Don't assign to *__MUTEX directly. + Initialize an intermediate local variable and then copy the + result. + * sysdeps/generic/bits/rwlock.h (__PTHREAD_RWLOCK_INITIALIZER): + Don't create a compound literal. + (pthread_rwlock_init): Don't assign to *__RWLOCK directly. + Initialize an intermediate local variable and then copy the + result. + * sysdeps/i386/bits/spin-lock.h (__SPIN_LOCK_INITIALIZER): + Don't create a compound literal. + + * pthread/pt-alloc.c (initialize_pthread): Cast + PTHREAD_MUTEX_INITIALIZER and PTHREAD_COND_INITIALIZER to create a + compound literal. + * tests/test-1.c (main): Use pthread_mutex_init, not + PTHREAD_MUTEX_INIT for mutex initialization + + * sysdeps/generic/pt-barrier-init.c (pthread_barrier_init): Remove + assert. Copy ATTR if non-defaults are used. + * sysdeps/generic/pt-cond-init.c (pthread_cond_init): Include + <string.h>. Remove assert. Copy ATTR if non-defaults are used. + * sysdeps/generic/pt-mutex-init.c (_pthread_mutex_init): Cast + PTHREAD_MUTEX_INITIALIZER to create a compound literal. + * sysdeps/generic/pt-rwlock-init.c: Include <string.h>. + (_pthread_rwlock_init): Cast __PTHREAD_RWLOCK_INITIALIZER to + create a compound literal. Copy ATTR if non-defaults are used. + + * sysdeps/generic/pt-cond-timedwait.c + (__pthread_cond_timedwait_internal): Check that ABSTIME->TV_NSEC + is valid. Don't shadow ERR. Don't return before cleaning up. + * sysdeps/generic/pt-mutex-timedlock.c (pthread_mutex_timedlock): + Move after __pthread_mutex_timedlock_internal. Check that + ABSTIME->TV_NSEC is valid. + * sysdeps/generic/pt-rwlock-timedrdlock.c + (pthread_rwlock_timedrdlock): Move after. + __pthread_rwlock_timedrdlock_internal. + (__pthread_rwlock_timedrdlock_internal): Check that + ABSTIME->TV_NSEC is valid. + * sysdeps/generic/pt-rwlock-timedwrlock.c + (pthread_rwlock_timedwrlock): Move after + __pthread_rwlock_timedwrlock_internal. + (__pthread_rwlock_timedwrlock_internal): Check that + ABSTIME->TV_NSEC is valid. + * sysdeps/generic/sem-timedwait.c (__sem_timedwait_internal): + Check that TIMEOUT->TV_NSEC is valid before enqueuing the thread. + + * sysdeps/generic/pt-rwlock-rdlock.c + (__pthread_rwlock_timedrdlock_internal): Fix declaration. + + * sysdeps/generic/pt-mutex-trylock.c (__pthread_mutex_trylock): + Don't return EDEADLK. POSIX does not allow it. + + * sysdeps/mach/pt-timedblock.c (__pthread_timedblock): Calculate + the relative timeout without overflowing. + + * sysdeps/mach/hurd/i386/pt-setup.c (stack_setup): Cast THREAD. + +2005-05-12 Neal H. Walfield <neal@gnu.org> + + * Makefile (SRCS): Add sem-close.c, sem-destroy.c, sem-getvalue.c, + sem-init.c, sem-open.c, sem-post.c, sem-timedwait.c, sem-trywait.c, + sem-unlink.c and sem-wait.c. + (sysdeps_headers): Add semaphore.h and bits/semaphore.h. + * include/semaphore.h: New file. + * sysdeps/generic/sem-close.c: New file. + * sysdeps/generic/sem-destroy.c: New file. + * sysdeps/generic/sem-getvalue.c: New file. + * sysdeps/generic/sem-init.c: New file. + * sysdeps/generic/sem-open.c: New file. + * sysdeps/generic/sem-post.c: New file. + * sysdeps/generic/sem-timedwait.c: New file. + * sysdeps/generic/sem-trywait.c: New file. + * sysdeps/generic/sem-unlink.c: New file. + * sysdeps/generic/sem-wait.c: New file. + * sysdeps/generic/bits/semaphore.h: New file. + +2005-05-04 Neal H. Walfield <neal@gnu.org> + + * Makefile (SRCS): Add pt-thread_dealloc.c. + * sysdeps/mach/pt-thread-dealloc.c: New file. + * pthread/pt-internal.h (__pthread_thread_dealloc): New + declaration. + (__pthread_thread_halt): Add parameter NEED_DEALLOC. Update + callers. + * sysdeps/mach/pt-thread-halt.c (__pthread_thread_halt): Respect + new NEED_DEALLOC parameter. Move code which deallocates kernel + resources from here ... + * sysdeps/mach/pt-thread-dealloc.c (__pthread_thread_dealloc): + ...to here. + * pthread/pt-create.c (__pthread_create_internal): Call + __pthread_thread_dealloc on failure. + * pthread/pt-exit.c (pthread_exit): Call __pthread_thread_dealloc. + + * sysdeps/mach/pt-thread-alloc.c (create_wakeupmsg): Call + __mach_port_destroy to deallocate the receive right. + __mach_port_deallocate won't do it. + + * pthread/pt-detach.c (pthread_detach): Don't call + __pthread_thread_halt a second time. + + * sysdeps/mach/hurd/pt-sysdep.c (_cthread_init_routine): Fix + declaration. + (init_routine): Update declaration and remove gratuitous cast. + +2005-05-02 Neal H. Walfield <neal@gnu.org> + + * pthread/pt-alloc.c (__pthread_alloc): Set the thread id to the + table index plus one. + * pthread/pt-internal.h (__pthread_getid): Index __pthread_threads + using THREAD - 1, not THREAD. + (__pthread_setid): Likewise. + * pthread/pt-create.c (__pthread_create_internal): Likewise. + + * sysdeps/generic/pt-mutex-trylock.c (__pthread_mutex_trylock): + When returning EBUSY, don't forget to first unlock MUTEX->__HELD. + +2005-04-20 Neal H. Walfield <neal@gnu.org> + + * sysdeps/generic/pt-setschedparam.c: policy's type is int, not + int *. + * include/pthread/pthread.h: Likewise. + Reported by Christopher `Physicman' Bodenstein <cb@physicman.net>. + +2005-01-21 Michael Banck <mbanck@debian.org> + + * Makefile ($(libdir)/libpthread2.a): Install linker script + from $(srcdir) instead of current directory. + ($(libdir)/libpthread2_pic.a): Likewise. + +2005-02-08 Neal H. Walfield <neal@gnu.org> + + * sysdeps/mach/pt-spin.c (__pthread_spin_lock): Make a weak alias + to _pthread_spin_lock. + * sysdeps/posix/pt-spin.c (__pthread_spin_lock): Likewise. + +2005-01-18 Neal H. Walfield <neal@gnu.org> + + * sysdeps/mach/hurd/pt-sysdep.h (__pthread_stack_dealloc): Add + __always_inline__ attribute. + * sysdeps/l4/hurd/pt-sysdep.h (_pthread_self): Likewise. + (__pthread_stack_dealloc): Likewise. + +2005-01-12 Pietro Ferrari <pietro@bastardi.net> + + * include/pthread/pthread.h (pthread_spin_destroy): Replace extern + inline with extern __inline. + (pthread_spin_init): Likewise. + (pthread_spin_lock): Likewise. + (pthread_spin_trylock): Likewise. + (pthread_spin_unlock): Likewise. + * sysdeps/mach/bits/spin-lock.h (__pthread_spin_lock): Likewise. + * sysdeps/i386/bits/spin-lock.h (__pthread_spin_lock): Likewise. + * sysdeps/generic/bits/mutex.h (__pthread_mutex_trylock): + Likewise. + (pthread_mutex_lock): Likewise. + (pthread_mutex_trylock): Likewise. + * sysdeps/generic/bits/pthread.h (pthread_equal): Likewise. + +2003-08-17 Marcus Brinkmann <marcus@gnu.org> + + * sysdeps/hurd/pt-key.h (PTHREAD_KEY_MEMBERS): Change type of + THREAD_SPECIFICS to hurd_ihash_t. + * sysdeps/hurd/pt-setspecific.c (pthread_setspecific): Call + hurd_ihash_create instead ihash_create, and hurd_ihash_add instead + ihash_add. + * sysdeps/hurd/pt-getspecific.c (pthread_getspecific): Call + hurd_ihash_find instead of ihash_find. + * sysdeps/hurd/pt-destroy-specific.c (__pthread_destroy_specific): + Call hurd_ihash_find instead of ihash_find, hurd_ihash_remove + instead of ihash_remove, and hurd_ihash_free instead of + ihash_free. + +2003-08-03 Marco Gerards <metgerards@student.han.nl> + + * Makefile (install): Do not install from $(srcdir). + +2002-11-26 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-create.c [HAVE_USELOCAL]: Include <locale.h>. + (entry_point) [HAVE_USELOCALE]: Initialize the thread to the + global locale. + +2002-11-25 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/mach/hurd/i386/pt-setup.c (__pthread_setup): Fix last + change. + +2002-11-18 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/mach/pt-wakeup.c (__pthread_wakeup): Use the size of + THREAD->wakeupmsg which may not be a mach_msg_header_t. + + * sysdeps/generic/pt-mutex-timedlock.c + (__pthread_mutex_timedlock_internal): Really test for equality. + * sysdeps/generic/pt-rwlock-timedrdlock.c + (__pthread_rwlock_timedrdlock_internal): Likewise. + * sysdeps/generic/pt-rwlock-timedwrlock.c + (__pthread_rwlock_timedwrlock_internal): Likewise. + + * sysdeps/generic/pt-cond-timedwait.c + (__pthread_cond_timedwait_internal): On timeout, remove our thread + structure from the wait queue if necessary. + + * sysdeps/l4/pt-start.c (__pthread_start): Call L4_Myself, not + __mach_thread_self. + + * sysdeps/mach/hurd/i386/pt-setup.c: Include <mach.h>. + (__pthread_setup): Do not leak references from __mach_thread_self. + * sysdeps/mach/hurd/pt-docancel.c (__pthread_do_cancel): Likewise. + * sysdeps/mach/hurd/pt-sysdep.h (_pthread_self): Likewise. + * sysdeps/mach/pt-thread-alloc.c (__pthread_thread_alloc): Likewise. + * sysdeps/mach/pt-thread-start.c (__pthread_thread_start): Likewise. + + * sysdeps/mach/pt-start.c: Remove dead file. + +2002-11-09 Roland McGrath <roland@frob.com> + + * include/pthread/pthread.h: Avoid `__thread' as an identifier, + since it might be a keyword. + +2002-11-02 Alfred M. Szmidt <ams@kemisten.nu> + + * sysdeps/generic/pt-key-delete.c, sysdeps/hurd/pt-key-delete.c + (pthread_key_delete): Renamed from pthread_key_destroy. + Reported by Michael Koch <konqueror@gmx.de> + +2002-10-12 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/hurd/pt-destroy-specific.c (__pthread_destroy_specific): + Only call the destructor if there is one set. + +2002-10-10 Neal H. Walfield <neal@cs.uml.edu> + + * libpthread.a: It is _cthread_init_routine, not _cthread_init. + Add -lihash. + * libpthread_pic.a: Likewise but add -lihash_pic. + + * tests/Makefile (%-static): New rule. + (CHECK_PROGS): Build static test programs. + +2002-10-10 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile (install): Add $(libdir)/libpthread2.a and + $(libdir)/libpthread2_pic.a. + (.PHONY): Likewise. + ($(libdir)/libpthread2.a): New rule. + ($(libdir)/libpthread2_pic.a): Likewise. + + * libpthread_pic.a: New file. + * libpthread.a: New file. + +2002-10-10 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile (SRCS): Remove pt-errno.c. + * sysdeps/mach/hurd/pt-errno.c: Removed. + * sysdeps/l4/hurd/pt-errno.c: Removed. + +2002-10-10 Neal H. Walfield <neal@cs.uml.edu> + + * include/lock-intern.h: Removed. Use the one provided by glibc. + * Makefile (sysdeps_headers): Remove lock-intern.h. + +2002-10-10 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/mach/hurd/i386/pt-setup.c (stack_setup): Save the thread + pointer using the __hurd_threadvar routines; not a the top of the + stack. + * sysdeps/mach/hurd/pt-sysdep.h (_HURD_THREADVAR_THREAD): New + marcro. + (_pthread_self): Use __hurd_threadvar_location to access the self + pointer. + * sysdeps/mach/hurd/pt-sysdep.c (init_routine): Likewise. Update + the calculation of __hurd_threadvar_stack_offset. + +2002-10-10 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-alloc.c (alloc_init): Removed. + (__pthread_alloc): Allocate __pthread_threads lazily. + + * sysdeps/hurd/pt-getspecific.c (pthread_getspecific): Add an + assert. + +2002-09-28 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/pt-cond-timedwait.c + (__pthread_cond_timedwait_internal): Add definition. + * sysdeps/generic/pt-rwlock-rdlock.c + (__pthread_rwlock_timedrdlock_internal): Define this ... + (__pthread_mutex_timedlock_internal): ... not this. + * sysdeps/generic/pt-rwlock-wrlock.c + (__pthread_rwlock_timedwrlock_internal): Add an extern. + +2002-09-28 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/mach/hurd/pt-sysdep.h (_pthread_self): Assert that + __pthread_threads is initialized. + + (__pthread_self): Beautify. + +2002-09-28 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/mach/hurd/pt-sysdep.c (init_routine): Only call + __pthread_initialize once. + +2002-09-28 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/pt-cond-init.c (pthread_cond_init): Only assert + that ATTR->pshared is PTHREAD_PROCESS_PRIVATE if ATTR is not NULL. + Reported by Manuel Menal <mmenal@netcourrier.com>. + +2002-09-27 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/bits/mutex.h (__PTHREAD_MUTEX_INITIALIZER): + Initialize the LOCKS member of struct __pthread_mutex to 0, not + NULL. + +2002-09-27 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/bits/mutex.h (struct __pthread_mutex): New + field, cthreadcompat1: cthreads does not initialize the third + field of a mutex and as a result, neither does glibc. Avoid + this pit. + (__PTHREAD_MUTEX_INITIALIZER): Initialize cthreadcompat1 to 0. + +2002-09-27 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile ($(addprefix $(includedir)/, $(sysdeps_headers))): Do + not prepend ${srcdir}. + +2002-09-27 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-internal.h (__pthread_enqueue): New function. + (__pthread_dequeue): New function. + (__pthread_queue_iterate): New macro. + (__pthread_dequeuing_iterate): New macro. + + * sysdeps/generic/pt-barrier-wait.c (pthread_barrier_wait): Use + the new convenience functions. + * sysdeps/generic/pt-cond-brdcast.c (pthread_cond_broadcast): + Likewise. + * sysdeps/generic/pt-cond-signal.c (cond_signal): Likewise. + * sysdeps/generic/pt-cond-timedwait.c + (__pthread_cond_timedwait_internal): Likewise. + * sysdeps/generic/pt-mutex-timedlock.c + (__pthread_mutex_timedlock_internal): Likewise. + * sysdeps/generic/pt-mutex-unlock.c (__pthread_mutex_unlock): + Likewise. + * sysdeps/generic/pt-rwlock-timedrdlock.c + (__pthread_rwlock_timedrdlock_internal): Likewise. + * sysdeps/generic/pt-rwlock-timedwrlock.c + (__pthread_rwlock_timedwrlock_internal): Likewise. + * sysdeps/generic/pt-rwlock-unlock.c (pthread_rwlock_unlock): + Likewise. + + * pthread/pt-alloc.c (initialize_pthread): Initialize the next and + prevp pointers to 0. + +2002-09-27 Neal H. Walfield <neal@cs.uml.edu> + + * tests/Makefile (CFLAGS): New variable. + +2002-09-27 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/pt-mutex-timedlock.c (pthread_mutex_timedlock): + Call __pthread_mutex_timedlock_internal, not + pthread_mutex_timedlock. + +2002-09-27 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-internal.h (__pthread_rwlock_unlock): Remove obsolete + definition. + * pthread/pt-alloc.c (__pthread_alloc): Use pthread_rwlock_wrlock + and pthread_rwlock_unlock, not __pthread_rwlock_wrlock and + __pthread_rwlock_unlock. + * pthread/pt-create.c (__pthread_create_internal): Use + pthread_rwlock_rdlock and pthread_rwlock_unlock, not + __pthread_rwlock_rdlock and __pthread_rwlock_unlock. + * sysdeps/generic/pt-cond-timedwait.c (pthread_cond_timedwait): + Call __pthread_cond_timedwait_internal, not + __pthread_cond_timedwait. + +2002-09-27 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-internal.h (__pthread_mutex_timedlock): Remove + definition. + (__pthread_rwlock_timedrdlock): Likewise. + (__pthread_rwlock_timedwrlock): Likewise. + (__pthread_cond_timedwait): Likewise. + * include/pthread/pthread.h (pthread_mutex_timedlock): Remove + verbage about GNU extension. + (pthread_cond_timedwait): Likewise. + (pthread_rwlock_timedrdlock): Likewise. + (pthread_rwlock_timedwrlock): Likewise. + + * sysdeps/generic/pt-rwlock-timedrdlock.c + (__pthread_rwlock_timedrdlock_internal): Renamed from + __pthread_rwlock_timedrdlock. + (pthread_rwlock_timedrdlock): New function. Remove weak alias. + * sysdeps/generic/pt-rwlock-rdlock.c + (__pthread_mutex_timedlock_internal): New definition. + (pthread_rwlock_rdlock): Renamed from __pthread_rwlock_rdlock. + Use __pthread_rwlock_timedlock_internal. Remove weak alias. + + * sysdeps/generic/pt-cond-timedwait.c + (__pthread_cond_timedwait_internal): Rename from + __pthread_cond_timedwait. Remove weak aliases. + (pthread_cond_timedwait): New function. + * sysdeps/generic/pt-cond-wait.c + (__pthread_cond_timedwait_internal): New definition. + (pthread_cond_wait): Use it. + + * sysdeps/generic/pt-mutex-timedlock.c + (__pthread_mutex_timedlock_internal): Rename from + __pthread_mutex_timedlock. Remove weak alias. + (pthread_mutex_timedlock): New function. + * sysdeps/generic/pt-mutex-lock.c + (__pthread_mutex_timedlock_internal): New definition. + (__pthread_mutex_lock): Use it. + + * sysdeps/generic/pt-rwlock-timedwrlock.c + (__pthread_rwlock_timedwrlock_internal): Rename from + __pthread_rwlock_timedwrlock. + (pthread_rwlock_timedwrlock): New function. Remove weak alias. + * sysdeps/generic/pt-rwlock-wrlock.c + (__pthread_mutex_timedlock_internal): New definition. + (pthread_rwlock_wrlock): Renamed from __pthread_rwlock_wrlock. + Use __pthread_rwlock_timedlock_internal. Remove weak alias. + + * sysdeps/generic/pt-rwlock-tryrdlock.c + (pthread_rwlock_tryrdlock): Rename from + __pthread_rwlock_tryrdlock. Remove weak alias. + * sysdeps/generic/pt-rwlock-trywrlock.c + (pthread_rwlock_trywrlock): Rename from + __pthread_rwlock_trywrlock. Remove weak alias. + + * sysdeps/hurd/pt-kill.c (pthread_kill): Rename from + __pthread_kill. Remove weak alias. + * sysdeps/generic/pt-atfork.c (pthread_atfork): Rename from + __pthread_atfork. Remove weak alias. + +2002-09-27 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-internal.h (__pthread_create_internal): Renamed from + __pthread_create. Updated all callers. Suggested by Roland + McGrath. + +2002-09-27 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile: New file. + * tests/Makefile: New file. + +2002-09-27 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/bits/barrier.h: Include <bits/spin-lock.h>. + (struct __pthread_barrier): Change lock to a __pthread_spinlock_t: + pthread_spinlock_t may not be defined in this context. + +2002-09-26 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/bits/once.h (__PTHREAD_ONCE_INIT): Be standards + compliant: do not cast the result. + +2002-09-26 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-join.c (pthread_join): Fix typo in previous change. + +2002-09-26 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/bits/barrier.h (struct __pthread_barrier): Add + new members attr and data. + * sysdeps/generic/pt-barrier-init.c: Inlucde <string.h>. + (pthread_barrier_init): Set *BARRIER to zero. + + * sysdeps/generic/bits/condition.h (__PTHREAD_COND_INITIALIZER): + Initialize all fields. + + * sysdeps/generic/bits/mutex.h (__pthread_mutex): Rename + cthread_compat1 to data. + (pthread_mutex_destroy): Avoid + inline version if __MUTEX->data is not NULL. + (__pthread_mutex_lock): Likewise. + (__pthread_mutex_trylock): Likewise. + + * sysdeps/generic/bits/rwlock.h: New member __attr. + (__PTHREAD_RWLOCK_INITIALIZER): Initialize it to zero. + (pthread_rwlock_destroy): Avoid inline version if __RWLOCK->__data + is not NULL. + +2002-09-26 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-join.c (pthread_join): Protect PTHREAD->state_lock + inconsistency due to cancelation. + +2002-09-26 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/bits/pthread.h (pthread_equal): Change from + static inline to extern inline. + * sysdeps/generic/pt-equal.c: New file. + * Makefile.am (libpthread_a_SOURCES): Add pt-equal.c. + +2002-09-26 Neal H. Walfield <neal@cs.uml.edu> + + * include/pthread/pthread.h (pthread_mutex_getprioceiling): New + definition. + (pthread_mutex_setprioceiling): New definition. + (pthread_getschedparam): New definition. + (pthread_setschedparam): New definition. + (pthread_setschedprio): New definition. + + * sysdeps/generic/pt-getschedparam.c: New file. + * sysdeps/generic/pt-mutex-getprioceiling.c: New file. + * sysdeps/generic/pt-mutex-setprioceiling.c: New file. + * sysdeps/generic/pt-setschedparam.c: New file. + * sysdeps/generic/pt-setschedprio.c: New file. + * Makefile.am (libpthread_a_SOURCES): Add pt-getschedparam.c, + pt-mutex-getprioceiling.c, pt-mutex-setprioceiling.c, + pt-setschedparam.c and pt-setschedprio.c. + +2002-09-26 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/Makefile.glibc: Removed. + * pthread/pthread.patch: Removed. + +2002-09-26 Neal H. Walfield <neal@cs.uml.edu> + + * include/pthread/pthread.h (pthread_getcpuclockid): New + definition. + * sysdeps/generic/pt-getcpuclockid.c: New file. + * Makefile.am (libpthread_a_SOURCES): Add pt-getcpuclockid.c. + +2002-09-25 Neal H. Walfield <neal@cs.uml.edu> + + * include/pthread/pthread.h (pthread_kill): New definition. + * sysdeps/hurd/pt-kill.c (__pthread_kill): New file. + * Makefile.am (libpthread_a_SOURCES): Add pt-kill.c. + + * tests/Makefile.am (check_PROGRAMS): Add test-16. + (TEST_COUNT): Bump to 16. + (MOSTLYCLEANFILES): Add test-16.out. + (test_16_SOURCES): New variable. + + * tests/test-16.c: New file. + +2002-09-25 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/pt-attr.c: Include <sched.h>. + +2002-09-25 Neal H. Walfield <neal@cs.uml.edu> + + * tests/Makefile.am (check_PROGRAMS): Remove test-5. + Unintentionally checked in. + +2002-09-25 Neal H. Walfield <neal@cs.uml.edu> + + * include/pthread/pthread.h (pthread_atfork): New definition. + * sysdeps/generic/pt-atfork.c: New file. + + * Makefile.am (libpthread_a_SOURCES): Add pt-atfork.c. + +2002-09-25 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-internal.h (__pthread_rwlock_rdlock): New definition. + (__pthread_rwlock_timedrdlock): New definition. + (__pthread_rwlock_wrlock): New definition. + (__pthread_rwlock_timedwrlock): New definition. + (__pthread_rwlock_unlock): New definition. + +2002-09-25 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-internal.h (__pthread_timedblock): New definition. + * sysdeps/mach/pt-timedblock.c: New file. + + * include/pthread/pthread.h (pthread_mutex_timedlock): New + definition. + (pthread_cond_timedwait): Enable unconditionally. + (pthread_rwlock_timedrdlock): New definition. + (pthread_rwlock_timedwrlock): New definition. + + * sysdeps/generic/pt-mutex-timedlock.c: New file. + * sysdeps/generic/pt-mutex-lock.c (__pthread_mutex_lock): + Reimplement in terms of __pthread_mutex_timedlock. + + * sysdeps/generic/pt-cond-timedwait.c: New file. + * sysdeps/generic/pt-cond-wait.c (pthread_cond_wait): Reimplement + in terms of pthread_cond_timedwait. + + * sysdeps/generic/pt-rwlock-timedrdlock.c: New file. + * sysdeps/generic/pt-rwlock-rdlock.c + (__pthread_rwlock_rdlock): Reimplement in terms of + __pthread_rwlock_timedrdlock. + + * sysdeps/generic/pt-rwlock-timedwrlock.c: New file. + * sysdeps/generic/pt-rwlock-wrlock.c (__pthread_rwlock_wrlock): + Reimplement in terms of __pthread_rwlock_timedwrlock. + + * sysdeps/generic/pt-cond-signal.c (cond_signal): Clear the + previous pointer of the thread which we decide to wake up. + + * Makefile.am (libpthread_a_SOURCES): Add pt-mutex-lock.c, + pt-mutex-trylock.c, pt-mutex-timedlock.c, pt-rwlock-timedrdlock.c, + pt-rwlock-timedwrlock.c, pt-cond-timedwait.c and pt-timedblock.c. + + * tests/Makefile.am (check_PROGRAMS): Add test-13, test-14 and + test-15. + (TEST_COUNT): Bump to 15. + (MOSTLYCLEANFILES): Add test-13.out, test-14.out and test-15.out. + (test_13_SOURCES): New variable. + (test_14_SOURCES): New variable. + (test_15_SOURCES): New variable. + * tests/test-13.c: New file. + * tests/test-14.c: New file. + * tests/test-15.c: New file. + +2002-09-25 Neal H. Walfield <neal@cs.uml.edu> + + * include/pthread/pthread.h: Include <bits/condition-attr.h> + (pthread_condattr_t): New type. + (pthread_condattr_init): New definition. + (pthread_condattr_destroy): New definition. + (pthread_condattr_getclock): New definition. + (pthread_condattr_setclock): New definition. + (pthread_condattr_getpshared): New definition. + (pthread_condattr_setpshared): New definition. + (pthread_cond_init): New definition. + (pthread_cond_destroy): New definition. + * pthread/pt-internal.h (__pthread_default_condattr): New + definition. + + * sysdeps/generic/pt-cond-destroy.c: New file. + * sysdeps/generic/pt-cond-init.c: New file. + * sysdeps/generic/pt-cond.c: New file. + * sysdeps/generic/pt-condattr-destroy.c: New file. + * sysdeps/generic/pt-condattr-getclock.c: New file. + * sysdeps/generic/pt-condattr-getpshared.c: New file. + * sysdeps/generic/pt-condattr-init.c: New file. + * sysdeps/generic/pt-condattr-setclock.c: New file. + * sysdeps/generic/pt-condattr-setpshared.c: New file. + * sysdeps/generic/bits/condition-attr.h: New file. + * Makefile.am (libpthread_a_SOURCES): Add pt-cond.c, + pt-condattr-init.c, pt-condattr-destroy.c, pt-condattr-getclock.c, + pt-condattr-getpshared.c, pt-condattr-setclock.c, + pt-condattr-setpshared.c, pt-cond-destroy.c and pt-cond-init.c. + * headers.m4 (hurd_SYSDEPS): Add bits/condition-attr.h. + +2002-09-24 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/pt-cond-wait.c (pthread_cond_wait): If canceled, + be sure to disconnect ourself from the waiters' queue. + +2002-09-24 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/mach/hurd/pt-docancel.c (__pthread_do_cancel): Before + overwriting the thread's state, abort any system call in progress. + +2002-09-24 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/pt-cond-wait.c (pthread_cond_wait): Rewrite + cancelation support. + +2002-09-24 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/pt-cond-wait.c (pthread_cond_wait): Before + returning add a cancelation point. + +2002-09-24 Neal H. Walfield <neal@cs.uml.edu> + + * include/pthread/pthread.h (pthread_setconcurrency): New + definition. + (pthread_getconcurrency): New definition. + + * pthread/pt-internal.h (__pthread_concurrency): New definition. + + * sysdeps/generic/pt-getconcurrency.c: New file. + * sysdeps/generic/pt-setconcurrency.c: New file. + + * Makefile.am (libpthread_a_SOURCES): Add pt-getconcurrency.c and + pt-setconcurrency.c. + + * tests/Makefile.am (check_PROGRAMS): Add test-12. + (TEST_COUNT): Bump to 12. + (MOSTLYCLEANFILES): Add test-12.out. + (test_12_SOURCES): New variable. + * tests/test-12.c: New file. + +2002-09-24 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/hurd/pt-key.h (__pthread_key_lock_ready): New function. + Initialize the __pthread_key_lock. + * sysdeps/hurd/pt-key-create.c (__pthread_key_lock): Do not + initialize it. + (pthread_key_create): Do it here by calling + __pthread_key_lock_ready. + * sysdeps/hurd/pt-key-delete.c (pthread_key_destory): Call + __pthread_key_lock_ready. + * sysdeps/hurd/pt-destroy-specific.c (__pthread_destroy_specific): + Likewise. + +2002-09-24 Neal H. Walfield <neal@cs.uml.edu> + + * include/pthread/pthread.h: Include <bits/rwlock-attr.h>. + (pthread_rwlockattr_t): New type. + (pthread_rwlockattr_init): New definition. + (pthread_rwlockattr_destroy): New definition. + (pthread_rwlockattr_getpshared): New definition. + (pthread_rwlockattr_setpshared): New definition. + + Include <bits/rwlock.h>. + (pthread_rwlock_t): New type. + + (pthread_rwlock_init): New definition. + (pthread_rwlock_destroy): New definition. + (pthread_rwlock_rdlock): New definition. + (pthread_rwlock_tryrdlock): New definition. + (pthread_rwlock_wrlock): New definition. + (pthread_rwlock_trywrlock): New definition. + (pthread_rwlock_unlock): New definition. + + * pthread/pt-internal.h (pthread_rwlock_t): Remove macro. + (__pthread_rwlock_rlock): Remove macro. + (__pthread_rwlock_wlock): Remove macro. + (__pthread_rwlock_unlock): Remove macro. + + (__pthread_default_rwlockattr): New definition. + + * pthread/pt-alloc.c (__pthread_alloc): Use + __pthread_rwlock_wrlock, not __pthread_rwlock_wlock. + * pthread/pt-create.c (__pthread_create): Use + __pthread_rwlock_rdlock, not __pthread_rwlock_rlock. + + * sysdeps/generic/pt-rwlock-attr.c: New file. + * sysdeps/generic/pt-rwlock-destroy.c: New file. + * sysdeps/generic/pt-rwlock-init.c: New file. + * sysdeps/generic/pt-rwlock-rdlock.c: New file. + * sysdeps/generic/pt-rwlock-tryrdlock.c: New file. + * sysdeps/generic/pt-rwlock-trywrlock.c: New file. + * sysdeps/generic/pt-rwlock-unlock.c: New file. + * sysdeps/generic/pt-rwlock-wrlock.c: New file. + * sysdeps/generic/pt-rwlockattr-destroy.c: New file. + * sysdeps/generic/pt-rwlockattr-getpshared.c: New file. + * sysdeps/generic/pt-rwlockattr-init.c: New file. + * sysdeps/generic/pt-rwlockattr-setpshared.c: New file. + * sysdeps/generic/bits/rwlock-attr.h: New file. + * sysdeps/generic/bits/rwlock.h: New file. + + * headers.m4 [hurd_SYSDEPS]: Add bits/rwlock.h and + bits/rwlock-attr.h. + + * Makefile.am (libpthread_a_SOURCES): Add pt-rwlock-attr.c, + pt-rwlockattr-init.c, pt-rwlockattr-destroy.c, + pt-rwlockattr-getpshared.c, pt-rwlockattr-setpshared.c, + pt-rwlock-init.c, pt-rwlock-destroy.c, pt-rwlock-rdlock.c, + pt-rwlock-tryrdlock.c, pt-rwlock-trywrlock.c, pt-rwlock-wrlock.c + and pt-rwlock-unlock.c. + + * tests/Makefile.am (check_PROGRAMS): Add test-11. + (TEST_COUNT): Bump to 11. + (MOSTLYCLEANFILES): Add test-11.out. + (test_11_SOURCES): New variable. + * tests/test-11.c: New file. + +2002-09-24 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile.am (SYSDEPS) [L4]: Removed crt0.c. + + * crt0.c: Moved to ../libc/crt0.c. + +2002-09-23 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile.am (libpthread_a_SOURCES): Add pt-mutexattr.c, + pt-mutexattr-destroy.c, pt-mutexattr-init.c, + pt-mutexattr-getprioceiling.c, pt-mutexattr-getprotocol.c, + pt-mutexattr-getpshared.c, pt-mutexattr-gettype.c, + pt-mutexattr-setprioceiling.c, pt-mutexattr-setprotocol.c, + pt-mutexattr-setpshared.c, pt-mutexattr-settype.c, + pt-mutex-init.c, pt-mutex-destroy.c and pt-mutex-trylock.c. + + * headers.m4 [hurd_SYSDEPS]: Add bits/mutex-attr.h. + + * include/pthread/pthread.h: Include <bits/mutex-attr.h>. + (__pthread_mutex_protocol): New enumeration. + (__pthread_mutex_type): New enumeration. + (pthread_mutexattr_t): New type. + (pthread_mutexattr_init): New definition. + (pthread_mutexattr_destroy): New definition. + (pthread_mutexattr_getprioceiling): New definition. + (pthread_mutexattr_setprioceiling): New definition. + (pthread_mutexattr_getprotocol): New definition. + (pthread_mutexattr_setprotocol): New definition. + (pthread_mutexattr_getpshared): New definition. + (pthread_mutexattr_setpshared): New definition. + (pthread_mutexattr_gettype): New definition. + (pthread_mutexattr_settype): New definition. + + * pthread/pt-internal.h (__pthread_default_mutexattr): New + definition. + + * sysdeps/generic/bits/mutex.h: Include <bits/mutex-attr.h>. + (struct __pthread_mutex): Add member OWNER and member LOCKS to + support error checking and recursive mutexes. Renamed __attr to + attr, updated users. + (pthread_mutexattr_t): Removed. + (__PTHREAD_MUTEX_INITIALIZER): Add initializers for new members. + (pthread_mutex_init): If ATTR, call _pthread_mutex_init. + (pthread_mutex_destroy): If __MUTEX has an attribute, call + _pthread_mutex_destroy. + * sysdeps/generic/pt-mutex-lock.c (__pthread_mutex_lock): Grok + mutex attribute. + * sysdeps/generic/pt-mutex-unlock.c (__pthread_mutex_unlock): + Likewise. + Add a weak alias to _pthread_mutex_unlock. + + * sysdeps/generic/pt-mutex-destroy.c: New file. + * sysdeps/generic/pt-mutex-init.c: New file. + * sysdeps/generic/pt-mutex-trylock.c: New file. + * sysdeps/generic/pt-mutexattr-destroy.c: New file. + * sysdeps/generic/pt-mutexattr-getprioceiling.c: New file. + * sysdeps/generic/pt-mutexattr-getprotocol.c: New file. + * sysdeps/generic/pt-mutexattr-getpshared.c: New file. + * sysdeps/generic/pt-mutexattr-gettype.c: New file. + * sysdeps/generic/pt-mutexattr-init.c: New file. + * sysdeps/generic/pt-mutexattr-setprioceiling.c: New file. + * sysdeps/generic/pt-mutexattr-setprotocol.c: New file. + * sysdeps/generic/pt-mutexattr-setpshared.c: New file. + * sysdeps/generic/pt-mutexattr-settype.c: New file. + * sysdeps/generic/pt-mutexattr.c: New file. + * sysdeps/generic/bits/mutex-attr.h: New file. + + * tests/Makefile.am (AM_LDFLAGS): Add `-u__pthread_mutex_trylock + -u__pthread_mutex_unlock -u__pthread_mutex_unlock'. + (check_PROGRAMS): Add test-9 and test-10. + (TEST_COUNT): Bump to 10. + (MOSTLYCLEANFILES): Add test-9.out and test-10.out. + (test_9_SOURCES): New variable. + (test_10_SOURCES): Likewise. + * tests/test-9.c: New file. + * tests/test-10.c: New file. + +2002-09-23 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-exit.c (pthread_exit): Call pthread_setcancelstate + correctly: NULL is not a legal value for the oldstate parameter. + +2002-09-21 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-exit.c: Remove dead code. + (pthread_exit): When running the cancelation handlers, disable + cancelation. + +2002-09-21 Neal H. Walfield <neal@cs.uml.edu> + + * tests/test-5.c (main): Fork a child. Do not dump a core. + (thr): Renamed from foo. + +2002-09-21 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-initialize.c (__pthread_init): Fully prototype it. + +2002-09-21 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile.am (libpthread_a_SOURCES): Add pt-sigmask.c, + pt-stack-alloc.c, pt-thread-alloc.c, pt-thread-dealloc.c, + pt-thread-start.c, pt-sigstate-init.c, pt-sigstate-destroy.c + pt-sigstate.c. + Remove pt-stack.c and pt-start.c. + + * pthread/pt-create.c (__pthread_create): Instead of calling + __pthread_start, first call __pthread_thread_alloc, then setup the + signal state and finally start the thread by calling + __pthread_thread_start. + + * pthread/pt-exit.c (pthread_exit): Destroy any signal state by + calling __pthread_sigstate_destroy. + + * pthread/pt-sigmask.c: New file. + + * pthread/pt-internal.c (__pthread_thread_halt): New definition to + replace __pthread_halt macro. Update all callers. + * sysdeps/mach/hurd/pt-sysdep.h (__pthread_halt): Renamed to + __pthread_thread_halt and moved from here ... + * sysdeps/mach/pt-thread-halt.c: ... to here. + * sysdeps/l4/hurd/pt-sysdep.h (__pthread_halt): Renamed to + __pthread_thread_halt and moved from here ... + * sysdeps/l4/pt-thread-halt.c: ... to here. + + * pthread/pt-internal.h (__pthread_start): Split into + __pthread_thread_alloc and __pthread_thread_start. Update all + callers. + (__pthread_thread_alloc): New definition. + (__pthread_thread_start): Likewise. + * sysdeps/l4/pt-start.c: Split file into ... + * sysdeps/l4/pt-thread-alloc.c: ... this ... + * sysdeps/l4/pt-thread-start.c: ... and this. + * sysdeps/mach/pt-start.c: Split file into ... + * sysdeps/mach/pt-thread-alloc.c: ... this ... + * sysdeps/mach/pt-thread-start.c: ... and this. + + * sysdeps/l4/pt-stack.c: Moved from here ... + * sysdeps/l4/pt-stack-alloc.c: ... to here. + * sysdeps/mach/pt-stack.c: Moved from here ... + * sysdeps/mach/pt-stack-alloc.c: ... to here. + + * pt-internal.h: Include <signal.h>. + (__pthread_sigstate_init): New definition. + (__pthread_sigstate_destroy): Likewise. + (__pthread_sigstate): Likewise. + * sysdeps/mach/hurd/pt-sigstate-destroy.c: New file. + * sysdeps/mach/hurd/pt-sigstate-init.c: New file. + * sysdeps/mach/hurd/pt-sigstate.c: New file. + + * sysdeps/mach/hurd/i386/pt-setup.c (__pthread_setup): Setup the + initial thread state but only if THREAD is not the main thread. + +2002-09-17 Neal H. Walfield <neal@cs.uml.edu> + + Get signals working. + + * sysdeps/mach/hurd/pt-destroy-signal-state.c: Likewise. + * sysdeps/mach/hurd/pt-init-signal-state.c: Likewise. + * sysdeps/mach/hurd/pt-sigstate.c: Likewise. + + + * pthread/pt-internal.h: Include <signal.h>. + (__pthread_init_signal_state): New definition. + (__pthread_destroy_signal_state): Likewise. + (__pthread_sigstate): Likewise. + + * pthread/pt-create.c (pthread_create): Call + __pthread_init_signal_state (and __pthread_destroy_signal_state on + a failure). Also set the new thread's sigmask and pending signal + state appropriately. + + * pthread/pt-exit.c (pthread_exit): Call + __pthread_destroy_signal_state as appropriate. + +2002-09-21 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-alloc.c (__pthread_alloc): Factor out initialization + code into ... + (initialize_pthread): ... this new function. + + (__pthread_alloc): If reusing a thread structure fails, clean up + the mess correctly. + +2002-09-21 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-alloc.c (__pthread_alloc): Revert last change. + +2002-09-21 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-alloc.c (__pthread_alloc): Remove assert. + +2002-09-21 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-initialize.c (__pthread_main): Removed. The added + convenience does not help initialization and severely complicates + the library if the the main thread calls pthread_exit. + (__pthread_init): Remove parameter, thread. + (__pthread_initialize): Updated to reflect new semantics. + * pthread/pt-alloc.c (alloc_init): Update to new semantics. Do + not try to initialize the main thread. + + * pthread/pt-create.c (__pthread_total): The main thread is now + created explicitly, initialize to zero. + + * pthread/pt-internal.h (__pthread_num_threads): Add definition. + (__pthread_main): Removed. + + * pthread/pt-internal.h (__pthread_create): New definition. + * pthread/pt-create.c (pthread_create): Move functionality from + here ... + (__pthread_create): ... to here. + (pthread_create): Use __pthread_create. + + * sysdeps/mach/hurd/pt-sysdep.c (init_routine): Use + __pthread_create directly rather than rewriting the functionality + here. + * sysdeps/l4/hurd/pt-sysdep.c (init_routine): Likewise. + + * sysdeps/mach/pt-start.c (__pthread_start): Do not detect the + main thread using __pthread_main. If main thread, set the kernel + thread id. + * sysdeps/l4/pt-start.c (__pthread_start): Likewise. + +2002-09-21 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/l4/hurd/pt-save-self.c (__pthread_save_self): Move + functionality from here ... + * sysdeps/l4/hurd/i386/pt-setup.c (__pthread_setup): ... to here + where it belongs. + + * sysdeps/l4/hurd/pt-sysdep.c (init_routine): Do not save pthread + self pointer here, it will be done automatically in + __pthread_setup. + + __pthread_save_self is now obsolete. + + * pthread/pt-internal.h (__pthread_save_self): Remove definition. + * sysdeps/mach/hurd/pt-save-self.c: Removed file. + * sysdeps/l4/hurd/pt-save-self.c: Removed file. + * Makefile.am (libpthread_a_SOURCES): Remove pt-save-self.c. + +2002-09-21 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-create.c (pthread_create): Do not call + __pthread_save_self. This is completely bogus. + + * pthread/pt-internal.h: Permit _pthread_self to be a macro. + + * sysdeps/mach/hurd/pt-sysdep.h (__pthread_self): Renamed from + _pthread_self. + (_pthread_self): New marcro. Do some sanity checks. + +2002-09-21 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/mach/hurd/pt-sysdep.c (init_routine): We cannot use + __hurd_threadvar_location with the initial stack. This is + completely bogus; removed. Neither can we use the TSD on the new + stack: once the initial thread returns to the libc initialization + code, libc overwrites it. Thus, we shift the TSD by a pointer and + use the first word of the stack to store the self pointer. + * sysdeps/mach/hurd/pt-sysdep.h (_HURD_THREADVAR_THREAD): Removed. + (_pthread_self): Update to reflect new semantics. + * sysdeps/mach/hurd/pt-save-self.c (__pthread_save_self): + Likewise. + * sysdeps/mach/hurd/i386/pt-setup.c (stack_setup): Likewise. + +2002-09-17 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile.am (AM_CPPFLAGS): Add -D_IO_MTSAFE_IO. + (SYSDEPS) [MACH]: Add lockfile.c. + + * lockfile.c: Include <cthread.h>. + + * tests/Makefile.am (AM_LDFLAGS): Add -u_cthreads_flockfile to + force the inclusion of lockfile.c. + +2002-09-16 Neal H. Walfield <neal@cs.uml.edu> + + * tests/test-7.c: Include <stdio.h>. + +2002-09-16 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/cthreads-compat.c (__mutex_lock_solid): New function. + (__mutex_unlock_solid): Likewise. + + * sysdeps/mach/pt-spin.c: New file. + * sysdeps/mach/bits: New directory. + * sysdeps/mach/bits/spin-lock.h: New file. + + * sysdeps/generic/bits/mutex.h: Add comments. + + * sysdeps/posix/pt-spin.c (_pthread_spin_lock): Renamed from + __pthread_spin_lock. Update weak aliases to point to _pthread_spin + lock in lieu of __pthread_spin_lock. + +2002-09-16 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile.am (AM_CPPFLAGS): Order more appropriately. + (VPATH): Likewise. + +2002-09-16 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/bits/spin-lock.h: Move from here ... + * sysdeps/i386/bits/spin-lock.h: ... to here. + +2002-09-16 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/cthreads-compat.c (__libc_getspecific): New function. + +2002-09-16 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/cthreads-compat.c (cthread_keycreate): New function. + (cthread_getspecific): Likewise. + (cthread_setspecific): Likewise. + +2002-09-16 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/bits/pthread.h (pthread_equal): Add comments. + +2002-09-16 Neal H. Walfield <neal@cs.uml.edu> + + * tests/test-6.c: Include <stdio.h>. + (main): Remove superfluous sleep. + +2002-09-16 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile.am (libpthread_a_SOURCES): Add pt-once.c. + * headers.m4 [hurd_SYSDEPS]: Add bits/once.h. + + * sysdeps/generic/pt-once.c: New file. + * sysdeps/generic/bits/once.h: New file. + * sysdeps/i386/bits/memory.h: New file. + + * include/pthread/pthread.h: Include <bits/once.h>. + (PTHREAD_ONCE_INIT): New macro. + (pthread_once): New definition. + + * tests/Makefile.am (AM_CFLAGS): Set to -Wall. + (check_PROGRAMS): Add test-8. + (TEST_COUNT): Bump to 8. + (MOSTLYCLEANFILES): Add test-8.out. + (test_8_SOURCES): New variable. + + * tests/test-8.c (main): New file. + +2002-09-15 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/mach/pt-stack.c (__pthread_stack_alloc): If we reach the + end of the virtual address space, do not just fail but wrap + around. + +2002-09-15 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/pt-destroy-specific.c: New file. + * sysdeps/generic/pt-getspecific.c: Likewise. + * sysdeps/generic/pt-init-specific.c: Likewise. + * sysdeps/generic/pt-key-create.c: Likewise. + * sysdeps/generic/pt-key-delete.c: Likewise. + * sysdeps/generic/pt-key.h: Likewise. + * sysdeps/generic/pt-setspecific.c: Likewise. + * sysdeps/generic/bits/thread-specific.h: Likewise. + + * sysdeps/hurd: New directory for files that only depend on a Hurd + personality (and not the underlying microkernel). + + * sysdeps/hurd/pt-destroy-specific.c: New file. + * sysdeps/hurd/pt-getspecific.c: Likewise. + * sysdeps/hurd/pt-init-specific.c: Likewise. + * sysdeps/hurd/pt-key-create.c: Likewise. + * sysdeps/hurd/pt-key-delete.c: Likewise. + * sysdeps/hurd/pt-key.h: Likewise. + * sysdeps/hurd/pt-setspecific.c: Likewise. + + * Makefile.am (AM_CPPFLAGS): Add -I$(srcdir)/sysdeps/hurd. + (VPATH): Add $(srcdir)/sysdeps/hurd. + (libpthread_a_SOURCES): Add pt-key.h, pt-destroy-specific.c, + pt-init-specific.c, pt-key-create.c, pt-key-delete.c, + pt-getspecific.c and pt-setspecific.c. + + * headers.m4 (hurd_SYSDEPS): Add thread_specific.h. + + * include/pthread/pthread.h: Include <bits/thread-specific>. + (pthread_key_t): New definition. + (pthread_key_create): Likewise. + (pthread_key_delete): Likewise. + (pthread_getspecific): Likewise. + (pthread_setspecific): Likewise. + + * pthread/pt-internal.h: Include <pt-key.h> + [! PTHREAD_KEY_MEMBERS]: Define it to be empty. + (struct __pthread): Include the value of PTHREAD_KEY_MEMBERS. + + (__pthread_init_specific): New definition. + (__pthread_destroy_specific): Likewise. + + * pthread/pt-alloc.c (__pthread_alloc): Call + __pthread_init_specific. + * pthread/pt-exit.c (pthread_exit): Call + __pthread_destroy_specific. + + * tests/Makefile.am (LDADD): Add -lihash. + (check_PROGRAMS): Add test-7. + (MOSTLYCLEANFILES): Add test-7.out. + (TEST_COUNT): Bump to 7. + (test_7_SOURCES): New variable. + * tests/test-7.c: New file. + +2002-09-15 Neal H. Walfield <neal@cs.uml.edu> + + * tests/test-6.c: Improve test; iterate WAIT times over + pthread_barrier_wait rather than just once. + +2002-09-14 Neal H. Walfield <neal@cs.uml.edu> + + Add support for barrier attributes and barriers. + + * sysdeps/generic/pt-barrier-destroy.c: New file. + * sysdeps/generic/pt-barrier-init.c: Likewise. + * sysdeps/generic/pt-barrier-wait.c: Likewise. + * sysdeps/generic/pt-barrier.c: Likewise. + * sysdeps/generic/pt-barrierattr-destroy.c: Likewise. + * sysdeps/generic/pt-barrierattr-getpshared.c: Likewise. + * sysdeps/generic/pt-barrierattr-init.c: Likewise. + * sysdeps/generic/pt-barrierattr-setpshared.c: Likewise. + * sysdeps/generic/bits/barrier-attr.h: Likewise. + * sysdeps/generic/bits/barrier.h: Likewise. + * sysdeps/generic/bits/thread-barrier.h: Likewise. + + * Makefile.am (libpthread_a_SOURCES): Added pt-barrier-destroy.c, + pt-barrier-init.c, pt-barrier-wait.c, pt-barrier.c, + pt-barrierattr-destroy.c, pt-barrierattr-init.c, + pt-barrierattr-getpshared.c and pt-barrierattr-setpshared.c. + + * headers.m4 (hurd_SYSDEPS): Added bits/barrier-attr.h and + bits/barrier.h. + + * include/pthread/pthread.h: Include <bits/barrier-attr.h> and + <bits/barrier.h>. + + (__pthread_process_shared): New enumeration. + (PTHREAD_PROCESS_PRIVATE): New macro. + (PTHREAD_PROCESS_SHARED): Likewise. + (pthread_barrierattr_t): New typedef. + + (pthread_barrierattr_init): New definition. + (pthread_barrierattr_destroy): Likewise. + (pthread_barrierattr_getpshared): Likewise. + (pthread_barrierattr_setpshared): Likewise. + + (pthread_barrier_t): New typedef. + (PTHREAD_BARRIER_SERIAL_THREAD): New macro. + (pthread_barrier_init): New declaration. + (pthread_barrier_destroy): Likewise. + (pthread_barrier_wait): Likewise. + + * pthread/pt-internal.h (__pthread_default_barrierattr): New + definition. + + * tests/test-6.c: New file. + * tests/Makefile.am (check_PROGRAMS): Add test-6. + (MOSTLYCLEANFILES): Add test-6.out. + (test_6_SOURCES): New variable. + (TEST_COUNT): Update. + +2002-09-12 Neal H. Walfield <neal@cs.uml.edu> + + * tests/Makefile.am + (check_PROGRAMS): Add test test-3 and test-5. + (MOSTLYCLEANFILES): Add test-3.out, test-4.out and test-5.out. + (TEST_COUNT): Change to 5. + (test_3_SOURCES): New variable. + (test_5_SOURCES): New variable. + (check): Fix typo. + + * tests/test-3.c: New file. + * tests/test-4.c: New file. + * tests/test-5.c: New file. + +2002-09-12 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/mach/hurd/pt-attr-setstackaddr.c: New file. + * sysdeps/mach/hurd/pt-attr-setstacksize.c: New file. + * sysdeps/mach/hurd/i386/pt-setup.c: New file. + + * sysdeps/mach/hurd/i386/pt-setup.c (stack_setup): Setup the stack + guard if necessary. + +2002-09-12 Neal H. Walfield <neal@cs.uml.edu> + + Generic attributes. + + * sysdeps/generic/pt-attr-destroy.c: New file. + * sysdeps/generic/pt-attr-getdetachstate.c: New file. + * sysdeps/generic/pt-attr-getguardsize.c: New file. + * sysdeps/generic/pt-attr-getinheritsched.c: New file. + * sysdeps/generic/pt-attr-getschedparam.c: New file. + * sysdeps/generic/pt-attr-getschedpolicy.c: New file. + * sysdeps/generic/pt-attr-getscope.c: New file. + * sysdeps/generic/pt-attr-getstack.c: New file. + * sysdeps/generic/pt-attr-getstackaddr.c: New file. + * sysdeps/generic/pt-attr-getstacksize.c: New file. + * sysdeps/generic/pt-attr-init.c: New file. + * sysdeps/generic/pt-attr-setdetachstate.c: New file. + * sysdeps/generic/pt-attr-setguardsize.c: New file. + * sysdeps/generic/pt-attr-setinheritsched.c: New file. + * sysdeps/generic/pt-attr-setschedparam.c: New file. + * sysdeps/generic/pt-attr-setschedpolicy.c: New file. + * sysdeps/generic/pt-attr-setscope.c: New file. + * sysdeps/generic/pt-attr-setstack.c: New file. + * sysdeps/generic/pt-attr-setstackaddr.c: New file. + * sysdeps/generic/pt-attr-setstacksize.c: New file. + * sysdeps/generic/pt-attr.c: New file. + + * sysdeps/generic/bits/thread-attr.h: New file. + + * Makefile.am (libpthread_a_SOURCES): Add pt-attr.c, + pt-attr-destroy.c, pt-attr-getdetachstate.c, + pt-attr-getguardsize.c, pt-attr-getinheritsched.c, + pt-attr-getschedparam.c, pt-attr-getschedpolicy.c, + pt-attr-getscope.c, pt-attr-getstack.c, pt-attr-getstackaddr.c, + pt-attr-getstacksize.c, pt-attr-init.c, pt-attr-setdetachstate.c, + pt-attr-setguardsize.c, pt-attr-setinheritsched.c, + pt-attr-setschedparam.c, pt-attr-setschedpolicy.c, + pt-attr-setscope.c, pt-attr-setstack.c, pt-attr-setstackaddr.c, + pt-attr-setstacksize.c and pt-attr.c. + + * headers.m4: Add bits/thread-attr.h. + + * include/pthread/pthread.h: Inlucde <bits/thread-attr.h>. + (__pthread_inheritsched): New enumeration. + (__pthread_contentionscop): Likewise. + (__pthread_detachstate): Beautify. + + (pthread_attr_t): Update declaration. + + (pthread_attr_init): New definition. + (pthread_attr_destroy): Likewise. + (pthread_attr_getinheritsched): Likewise. + (pthread_attr_setinheritsched): Likewise. + (pthread_attr_getschedparam): Likewise. + (pthread_attr_setschedparam): Likewise. + (pthread_attr_getschedpolicy): Likewise. + (pthread_attr_setschedpolicy): Likewise. + (pthread_attr_getscope): Likewise. + (pthread_attr_setscope): Likewise. + (pthread_attr_getstackaddr): Likewise. + (pthread_attr_setstackaddr): Likewise. + (pthread_attr_getstack): Likewise. + (pthread_attr_setstack): Likewise. + (pthread_attr_getdetachstate): Likewise. + (pthread_attr_setdetachstate): Likewise. + (pthread_attr_getguardsize): Likewise. + (pthread_attr_setguardsize): Likewise. + (pthread_attr_getstacksize): Likewise. + (pthread_attr_setstacksize): Likewise. + + * pthread/pt-internal.h (struct __pthread): New member, guardsize. + (__pthread_default_attr): Make constant. + (struct __pthread_attr): Moved definition from here ... + * sysdeps/generic/bits/thread-attr.h: ... to here. + (struct __pthread_attr): Add new members: guardsize, inheritsched, + contentionscope and schedpolicy. + + * pthread/pt-attr.c: Moved from here ... + * sysdeps/generic/pt-attr.c: ... to here. + (__pthread_default_attr): Initialize new members guardsize, + inheritsched, contentionscope and schedpolicy. + + * pthread/pt-create.c (pthread_create): Make SETUP constant. + Sync with pthread_attr_t type change. + Set PTHREAD->guardsize appropriately. + +2002-09-12 Neal H. Walfield <neal@cs.uml.edu> + + * tests/Makefile.am (AM_CPPFLAGS): Learn to spel. + +2002-09-12 Neal H. Walfield <neal@cs.uml.edu> + + * tests/test-2.c: Implement it. + +2002-09-11 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile.am (SUBDIRS): New variable. + + * tests/Makefile.am: New file. + * tests/test-1.c: file. + * tests/test-2.c: file. + +2002-09-11 Neal H. Walfield <neal@cs.uml.edu> + + * include/libc-symbols.h: Do not define SHARED. + * not-in-libc.h (__mach_port_allocate): New macro. + + * pthread/pt-alloc.c (__pthread_alloc): Add an assert. + + * sysdeps/generic/pt-mutex-unlock.c (__pthread_mutex_unlock): + Simplify logic: WAKEUP is known not to be NULL after it is tested. + + * sysdeps/mach/pt-start.c (create_wakeupmsg): Do not allocate a + reply port; use a normal port. + If __mach_port_insert_right fails, deallocate + THREAD->wakeupmsg.msgh_remote_port. + +2002-09-11 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile.am (libpthread_a_SOURCES): Add cthreads-compat.c. + +2002-08-26 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/mach/hurd/pt-errno.c: New file. + +2002-08-26 Neal H. Walfield <neal@cs.uml.edu> + + * include/pthread/pthread.h (pthread_mutexattr_t): Moved from here + .. + * sysdeps/generic/bits/mutex.h: ... to here. + +2002-08-26 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile.am (SYSDEPS) [MACH]: Do not built lockfile.c. + (include_HEADERS): List headers to be installed. Leave commented + until it works with VPATH. + +2002-08-26 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/l4/pt-stack.c (allocate_page): Fix typo. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/l4/pt-stack.c (allocate_page): Request the correct + permissions for the request memory. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/Makefile: Moved from here ... + * pthread/Makefile.glibc: ... to here to avoid confusing automake. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile.am (AM_CPPFLAGS): Fix the include paths. + Implicitly include include/libc-symbols.h. + (SYSDEPS) [L4]: Add crt0.c. + (libpthread_a_SOURCES): Remove crt0.c. + + (VPATH): New variable. + (libpthread_a_SOURCES): Depend on the VPATH; do not use absolute + paths. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/pt-cond-wait.c: Doc fix thanks to Marcus + Brinkmann for pointing this out. + * sysdeps/generic/pt-mutex-lock.c: Likewise. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/mach/hurd/pt-sysdep.h (__thread_set_pcsp): Prototype new + function. + * sysdeps/mach/hurd/i386/pt-machdep.c (__thread_set_pcsp): + Implement it. + * sysdeps/mach/pt-start.c (__pthread_start): Use it. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/l4/pt-stack.c: Remove comment about next_stack_base. + This is baggage carried over from the Mach version. + (allocate_page): Use L4_FpageLog2 properly. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-internal.h (struct __pthread_attr): Add schedparam + field. + * pthread/pt-attr.c (__pthread_default_attr): Initialize + schedparam field. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-internal.h (__pthread_do_cancel): Add prototype. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-alloc.c (alloc_init): Make static and use RUN_HOOK. + * pthread/pt-initialize.c (__pthread_initialize): Remove the hack + and use RUN_HOOK. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-create.c: Include <signal.h>. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/mach/hurd/pt-docancel.c: New file. + * sysdeps/mach/hurd/pt-save-self.c: New file. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * include/pthread/pthread.h: Include <sched.h> and <time.h>. + (pthread_mutexattr_t): Add prototype. + (pthread_mutex_init): Likewise. + (pthread_mutex_destroy): Likewise. + + * sysdeps/generic/bits/mutex.h (pthread_mutex_init): New function. + (pthread_mutex_destroy): New function. + + * sysdeps/generic/bits/pthread.h (pthread_equal): New function. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-setcancelstate.c (pthread_setcancelstate): Add + explicit break to elide gcc warning. + * pthread/pt-setcanceltype.c (pthread_setcanceltype): Likewise. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * include/libc-symbols.h: Do not define _LIBC as we are not + actually compiling glibc. + (HAVE_ASM_WEAKEXT_DIRECTIVE): Do not define it. + (HAVE_ASM_SET_DIRECTIVE): Define it. + (HAVE_BUILTIN_EXPECT): Likewise. + (HAVE_GNU_LD): Likewise. + (HAVE_ELF): Likewise. + (HAVE_SECTION_QUOTES): Likewise. + (HAVE_VISIBILITY_ATTRIBUTE): Likewise. + (SHARED): Likewise. + + * not-in-libc.h: New file. + * Makefile.am (AM_CPPFLAGS): Include not-in-libc.h implicitly. + + * lockfile.c: New file. + * Makefile.am (SYSDEPS) [MACH]: Add lockfile.c. + +2002-08-22 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/mach/hurd/bits/pthread.h: Removed. Used the generic + version. + +2002-08-21 Neal H. Walfield <neal@cs.uml.edu> + + * headers.m4: Fix typo. + +2002-08-21 Neal H. Walfield <neal@cs.uml.edu> + + * include: Moved from libc/include except for include/sched.h and + include/time.h. + * pthread: Moved from libc/pthread. + * sysdeps: Moved from libc/sysdeps except for + sysdeps/i386/bits/atomic.h and sysdeps/hurd/hurd/threadvar.h. + * crt0.c: Moved from libc/crt0.c. + + * sysdeps/generic/bits: Moved from include/bits except + include/bits/wordsize.h. + * include/pthread: Moved from include/pthread. + * include/lock-intern.h: Moved from include/lock-intern.h. + * include/pthread.h: Moved from include/pthread.h. + + * headers.m4: New file. + +2002-08-19 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/l4/pt-start.c [WORKING_EXREGS]: Ideal implementation. + +2002-08-05 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pthread.h (PTHREAD_SPINLOCK_INITIALIZER): New + declaration. + +2002-08-03 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/l4/hurd/pt-sysdep.h (PTHREAD_SYSDEP_MEMBERS): Add + my_errno. + * sysdeps/l4/hurd/pt-errno.c: New file. + * Makefile.am (libc_a_SOURCES): Added sysdeps/l4/hurd/pt-errno.c. + +2002-07-29 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-internal.h (__pthread_save_self): New declaration. + Dual of _pthread_self (). + * sysdeps/l4/pt-save-self.c: New file. + * Makefile.am (libc_a_SOURCES): Added + sysdeps/l4/hurd/pt-save-self.c. + + * pthread/pt-create.c (pthread_create): Save the new thread's + control block explicitly using __pthread_save_self. + * sysdeps/l4/hurd/pt-sysdep.c (init_routine): Replace Hurd's + threadvar code with __pthread_save_self. + * sysdeps/l4/hurd/pt-sysdep.h (_pthread_self): Likewise. + (_HURD_THREADVAR_THREAD): Removed macro. + * sysdeps/l4/hurd/i386/pt-setup.c (stack_setup): Remove Hurd's + threadvar code. Mechanism is now in _pthread_save_self. + +2002-07-29 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-internal.h (struct __pthread): Add fields + cancel_state, cancel_type, cancel_pending and + cancelation_handlers to support cancelation. + * pthread/pt-alloc.c (__pthread_alloc): Initialize + NEW->cancel_state, NEW->cancel_type, NEW->cancel_pending and + NEW->cancelation_handlers. + * pthread/pt-exit.c (pthread_exit): Run registered cleanup + handlers. If thread was canceled, set the status to + PTHREAD_CANCELED. + * pthread/pt-cleanup.c: New file. + * pthread/pt-setcancelstate.c: New file. + * pthread/pt-setcanceltype.c: New file. + * pthread/pt-testcancel.c: New file. + * sysdeps/l4/pt-docancel.c: New file. + + * Makefile.am (libc_a_SOURCES): Add pthread/pt-cleanup.c, + pthread/pt-setcancelstate.c, pthread/pt-setcanceltype.c, + pthread/pt-testcancel.c and sysdeps/l4/pt-docancel.c. + +2002-07-29 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pthread.h (pthread_cleanup_push): Moved from here ... + * bits/cancelation.h: ... to here. + * pthread/pthread.h (pthread_cleanup_pop): Moved from here ... + * bits/cancelation.h: ... to here. + + * pthread/pthread.h (pthread_cleanup_push): New definition. + * pthread/pthread.h (pthread_cleanup_pop): New definition. + + * bits/cancelation.h: Include <assert.h>. + * pthread/pthread.h: Do not include <assert.h>. + +2002-07-29 Neal H. Walfield <neal@cs.uml.edu> + + * bits/condition.h (__PTHREAD_COND_INITIALIZER): Cast result. + * bits/mutex.h (__PTHREAD_MUTEX_INITIALIZER): Likewise. + * bits/spin-lock.h (__SPIN_LOCK_INITIALIZER): Likewise. + +2002-07-29 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pthread.h: Include <bits/cancelation.h> and <assert.h>. + (PTHREAD_CANCEL_DISABLE): New macro. + (PTHREAD_CANCEL_ENABLE): New macro. + (PTHREAD_CANCEL_DEFERRED): New macro. + (PTHREAD_CANCEL_ASYNCHRONOUS): New macro. + (PTHREAD_CANCELED): New macro. + (pthread_setcancelstate): New definition. + (pthread_setcanceltype): New definition. + (pthread_cancel): New definition. + (pthread_testcancel): New definition. + (pthread_cleanup_push): New macro. + (pthread_cleanup_pop): New macro. + * bit/condition.h: New file. + +2002-07-25 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/l4/pt-block.c (__pthread_block): Receive from any local + thread, not any thread. + +2002-07-25 Neal H. Walfield <neal@cs.uml.edu> + + * crt0.c (exit): Print the exit value for debugging purposes. + +2002-07-25 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-alloc.c (__pthread_alloc): Improve comments. When + allocating a new pthread, really initialize it. + * pthread/pt-create.c (pthread_create): Reuse the old stacks when + possible. If allocating the thread structure fails, do not try to + free anything. Clear the thread id on failure. Beautify and add + comments. + + * pthread/pt-dealloc.c (__pthread_dealloc): Rewritten to be the + dual of __pthread_alloc rather than an all-in-one. + * pthread/pt-detach.c (pthread_detach): Factor out code that is in + __pthread_dealloc. Unlock PTHREAD->state_lock before calling + __pthread_dealloc. + * pthread/pt-exit.c (pthread_exit): Likewise. + * pthread/pt-join.c (pthread_join): Likewise. + +2002-07-25 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-internal.h: Beautify and fix comments. + (__pthread_setid): Get a write lock, not a read lock. + +2002-07-25 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pt-alloc.c (__pthread_alloc): (alloc_init): Make it an + external, not static as RUN_HOOKS does not work yet. + * pthread/pt-initialize.c (__pthread_initialize): Call alloc_init + directly as RUN_HOOK does not yet work. + +2002-07-25 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/l4/hurd/pt-sysdep.c (init_routine): Be sure that + __hurd_threadvar_stack_mask and __hurd_threadvar_stack_offset are + set before calling __pthread_setup. + * sysdeps/l4/hurd/i386/pt-setup.c (stack_setup): Elide hack and + use __hurd_threadvar_location_from-sp. + +2002-07-25 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/generic/pt-cond-wait.c (pthread_cond_wait): Add + comment about a race condition. + * sysdeps/generic/pt-mutex-lock.c (__pthread_mutex_lock): + Likewise. + +2002-07-25 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/l4/pt-start.c (send_startup_ipc): Use task_server (which + is now also the thread_server). Do smarter casting. + * sysdeps/l4/hurd/pt-sysdep.h (__pthread_halt): Likewise. + +2002-07-25 Neal H. Walfield <neal@cs.uml.edu> + + * sysdeps/l4/pt-wakeup.c: Fix comment. + +2002-07-24 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/Makefile: New file. Imported from Mark's pthread + package with local modifications. + * pthread/Versions: Likewise. + * pthread/cthreads-compat.c: Likewise. + * pthread/pt-alloc.c: Likewise. + * pthread/pt-attr.c: Likewise. + * pthread/pt-create.c: Likewise. + * pthread/pt-dealloc.c: Likewise. + * pthread/pt-detach.c: Likewise. + * pthread/pt-exit.c: Likewise. + * pthread/pt-initialize.c: Likewise. + * pthread/pt-internal.h: Likewise. + * pthread/pt-join.c: Likewise. + * pthread/pt-self.c: Likewise. + * pthread/pt-spin-inlines.c: Likewise. + * pthread/pthread.patch: Likewise. + * sysdeps/generic/pt-cond-brdcast.c: Likewise. + * sysdeps/generic/pt-cond-signal.c: Likewise. + * sysdeps/generic/pt-cond-wait.c: Likewise. + * sysdeps/generic/pt-mutex-lock.c: Likewise. + * sysdeps/generic/pt-mutex-unlock.c: Likewise. + * sysdeps/hurd/hurd/threadvar.h: Likewise. + * sysdeps/i386/machine-sp.h: Likewise. + * sysdeps/i386/pt-machdep.h: Likewise. + * sysdeps/i386/bits/atomic.h: Likewise. + * sysdeps/l4/pt-block.c: Likewise. + * sysdeps/l4/pt-stack.c: Likewise. + * sysdeps/l4/pt-start.c: Likewise. + * sysdeps/l4/pt-wakeup.c: Likewise. + * sysdeps/l4/hurd/pt-sysdep.c: Likewise. + * sysdeps/l4/hurd/pt-sysdep.h: Likewise. + * sysdeps/l4/hurd/i386/pt-machdep.c: Likewise. + * sysdeps/l4/hurd/i386/pt-setup.c: Likewise. + * sysdeps/mach/pt-block.c: Likewise. + * sysdeps/mach/pt-stack.c: Likewise. + * sysdeps/mach/pt-start.c: Likewise. + * sysdeps/mach/pt-wakeup.c: Likewise. + * sysdeps/mach/hurd/pt-sysdep.c: Likewise. + * sysdeps/mach/hurd/pt-sysdep.h: Likewise. + * sysdeps/mach/hurd/bits/pthread.h: Likewise. + * sysdeps/mach/hurd/i386/pt-machdep.c: Likewise. + * sysdeps/mach/hurd/i386/pt-setup.c: Likewise. + * sysdeps/posix/pt-spin.c: Likewise. + + * include/libc-symbols.h: Imported from glibc with local + modifications for pthread port. + * include/set-hooks.h: Likewise. + + * include/sched.h: Glue code for pthread port until a real + implementation is available. + * include/time.h: Likewise. + + * Makefile.am (libc_a_SOURCES): Added most of the above c files. + (CFLAGS): Build up the include paths the way that glibc does. + + * TODO: New file. + + * crt0.c: Rewritten to include support for initializing pthreads + and dealing with the new stack layout. + +2002-07-24 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pthread.h: Define pthread_spinlock_t. + (pthread_spin_destroy): Use it, not __pthread_spinlock_t. + (pthread_spin_init): Likewise. + (pthread_spin_lock): Likewise. + (pthread_spin_trylock): Likewise. + (pthread_spin_unlock): Likewise. + + * features.h (__USE_XOPEN2K): Define it. + +2002-07-24 Neal H. Walfield <neal@cs.uml.edu> + + * pthread/pthread.h: New file imported from Mark's pthead package. + +2002-07-24 Neal H. Walfield <neal@cs.uml.edu> + + * bits/condition.h: New file imported from Mark's pthead package. + * bits/mutex.h: Likewise. + * bits/pthread.h: Likewise. + * bits/spin-lock.h: Likewise. + +2002-07-23 Jeff Bailey <jbailey@outpost.dnsalias.org> + + * .cvsignore: New File + +2002-07-21 Neal H. Walfield <neal@cs.uml.edu> + + * crt0.c (_start): Put in .START section, not in the text. + +2002-07-17 Neal H. Walfield <neal@cs.uml.edu> + + * Makefile.am (AM_CFLAGS): Library is no longer called libcrt0 but + libc. Adjust accordingly. diff --git a/libpthread/Makefile b/libpthread/Makefile new file mode 100644 index 00000000..04dfb26d --- /dev/null +++ b/libpthread/Makefile @@ -0,0 +1,247 @@ +# +# Copyright (C) 1994, 1995, 1996, 1997, 2000, 2002, 2004, 2005, 2006, 2007, +# 2008 Free Software Foundation, Inc. +# +# This program 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 2, or (at +# your option) any later version. +# +# This program 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, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +dir := libpthread +makemode := library + +MICROKERNEL := mach +SYSDEPS := lockfile.c + +LCLHDRS := + +SRCS := pt-attr.c pt-attr-destroy.c pt-attr-getdetachstate.c \ + pt-attr-getguardsize.c pt-attr-getinheritsched.c \ + pt-attr-getschedparam.c pt-attr-getschedpolicy.c pt-attr-getscope.c \ + pt-attr-getstack.c pt-attr-getstackaddr.c pt-attr-getstacksize.c \ + pt-attr-init.c pt-attr-setdetachstate.c pt-attr-setguardsize.c \ + pt-attr-setinheritsched.c pt-attr-setschedparam.c \ + pt-attr-setschedpolicy.c pt-attr-setscope.c pt-attr-setstack.c \ + pt-attr-setstackaddr.c pt-attr-setstacksize.c \ + \ + pt-barrier-destroy.c pt-barrier-init.c pt-barrier-wait.c \ + pt-barrier.c pt-barrierattr-destroy.c pt-barrierattr-init.c \ + pt-barrierattr-getpshared.c pt-barrierattr-setpshared.c \ + \ + pt-destroy-specific.c pt-init-specific.c \ + pt-key-create.c pt-key-delete.c \ + pt-getspecific.c pt-setspecific.c \ + \ + pt-once.c \ + \ + pt-alloc.c \ + pt-create.c \ + pt-getattr.c \ + pt-equal.c \ + pt-dealloc.c \ + pt-detach.c \ + pt-exit.c \ + pt-initialize.c \ + pt-join.c \ + pt-self.c \ + pt-sigmask.c \ + pt-spin-inlines.c \ + pt-cleanup.c \ + pt-setcancelstate.c \ + pt-setcanceltype.c \ + pt-testcancel.c \ + pt-cancel.c \ + \ + pt-mutexattr.c \ + pt-mutexattr-destroy.c pt-mutexattr-init.c \ + pt-mutexattr-getprioceiling.c pt-mutexattr-getprotocol.c \ + pt-mutexattr-getpshared.c pt-mutexattr-gettype.c \ + pt-mutexattr-setprioceiling.c pt-mutexattr-setprotocol.c \ + pt-mutexattr-setpshared.c pt-mutexattr-settype.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 \ + pt-rwlockattr-init.c pt-rwlockattr-destroy.c \ + pt-rwlockattr-getpshared.c pt-rwlockattr-setpshared.c \ + \ + pt-rwlock-init.c pt-rwlock-destroy.c \ + pt-rwlock-rdlock.c pt-rwlock-tryrdlock.c \ + pt-rwlock-trywrlock.c pt-rwlock-wrlock.c \ + pt-rwlock-timedrdlock.c pt-rwlock-timedwrlock.c \ + pt-rwlock-unlock.c \ + \ + pt-cond.c \ + pt-condattr-init.c pt-condattr-destroy.c \ + pt-condattr-getclock.c pt-condattr-getpshared.c \ + pt-condattr-setclock.c pt-condattr-setpshared.c \ + \ + pt-cond-destroy.c pt-cond-init.c \ + pt-cond-brdcast.c \ + pt-cond-signal.c \ + pt-cond-wait.c \ + pt-cond-timedwait.c \ + \ + pt-stack-alloc.c \ + pt-thread-alloc.c \ + pt-thread-dealloc.c \ + pt-thread-start.c \ + pt-thread-halt.c \ + pt-startup.c \ + \ + pt-getconcurrency.c pt-setconcurrency.c \ + \ + pt-block.c \ + pt-timedblock.c \ + pt-wakeup.c \ + pt-docancel.c \ + pt-sysdep.c \ + pt-setup.c \ + pt-machdep.c \ + pt-spin.c \ + \ + pt-sigstate-init.c \ + pt-sigstate-destroy.c \ + pt-sigstate.c \ + \ + pt-atfork.c \ + pt-kill.c \ + pt-getcpuclockid.c \ + \ + pt-getschedparam.c pt-setschedparam.c pt-setschedprio.c \ + \ + sem-close.c sem-destroy.c sem-getvalue.c sem-init.c sem-open.c \ + sem-post.c sem-timedwait.c sem-trywait.c sem-unlink.c \ + sem-wait.c \ + \ + cthreads-compat.c \ + $(SYSDEPS) + +OBJS = $(addsuffix .o,$(basename $(notdir $(SRCS)))) + +OTHERTAGS = + +libname = libpthread + +sysdeps_headers = \ + pthread.h \ + pthread/pthread.h \ + pthread/pthreadtypes.h \ + semaphore.h \ + \ + bits/pthread.h \ + bits/pthread-np.h \ + bits/mutex.h \ + bits/condition.h \ + bits/condition-attr.h \ + bits/spin-lock.h \ + bits/spin-lock-inline.h \ + bits/cancelation.h \ + bits/thread-attr.h \ + bits/barrier-attr.h \ + bits/barrier.h \ + bits/thread-specific.h \ + bits/once.h \ + bits/mutex-attr.h \ + bits/rwlock.h \ + bits/rwlock-attr.h \ + bits/semaphore.h + +SYSDEP_PATH = $(srcdir)/sysdeps/$(MICROKERNEL)/hurd/ia32 \ + $(srcdir)/sysdeps/$(MICROKERNEL)/ia32 \ + $(srcdir)/sysdeps/ia32 \ + $(srcdir)/sysdeps/$(MICROKERNEL)/hurd \ + $(srcdir)/sysdeps/$(MICROKERNEL) \ + $(srcdir)/sysdeps/hurd \ + $(srcdir)/sysdeps/generic \ + $(srcdir)/sysdeps/posix \ + $(srcdir)/pthread \ + $(srcdir)/include + +VPATH += $(SYSDEP_PATH) + +HURDLIBS = ihash + +installhdrs := +installhdrsubdir := . + +include ../Makeconf + +CPPFLAGS += \ + $(addprefix -I, $(SYSDEP_PATH)) \ + -imacros $(srcdir)/include/libc-symbols.h \ + -imacros $(srcdir)/not-in-libc.h + + +install: install-headers $(libdir)/libpthread2.a $(libdir)/libpthread2_pic.a +install-headers: $(addprefix $(includedir)/, $(sysdeps_headers)) + +# XXX: If $(libdir)/libpthread2.a is installed and +# $(libdir)/libpthread is not, we can have some issues. +.PHONY: $(libdir)/libpthread.a $(libdir)/libpthread_pic.a + +# XXX: These rules are a hack. But it is better than messing with +# ../Makeconf at the moment. Note that the linker scripts +# $(srcdir)/libpthread.a and $(srcdir)/libpthread_pic.a get overwritten +# when building in $(srcdir) and not a seperate build directory. +$(libdir)/libpthread2.a: $(libdir)/libpthread.a + mv $< $@ + $(INSTALL_DATA) $(srcdir)/libpthread.a $< + +$(libdir)/libpthread2_pic.a: $(libdir)/libpthread_pic.a + mv $< $@ + $(INSTALL_DATA) $(srcdir)/libpthread_pic.a $< + +.PHONY: $(addprefix $(includedir)/, $(sysdeps_headers)) + +$(addprefix $(includedir)/, $(sysdeps_headers)): + @set -e; \ + t="$@"; \ + t=$${t#$(includedir)/}; \ + header_ok=0; \ + for dir in $(SYSDEP_PATH); \ + do \ + if test -e "$$dir/$$t"; \ + then \ + tdir=`dirname "$@"`; \ + if test ! -e $$tdir; \ + then \ + mkdir $$tdir; \ + fi; \ + echo $(INSTALL_DATA) "$$dir/$$t" "$@"; \ + $(INSTALL_DATA) "$$dir/$$t" "$@"; \ + header_ok=1; \ + break; \ + fi; \ + done; \ + if test "$${header_ok}" -ne 1; \ + then \ + echo; \ + echo '*** 'The header file \`$@\' is required, but not \ +provided, by; \ + echo '*** 'this configuration. Please report this to the \ +maintainer.; \ + echo; \ + false; \ + fi + +# ifeq ($(VERSIONING),yes) +# +# # Adding this dependency gets it included in the command line, +# # where ld will read it as a linker script. +# $(libname).so.$(hurd-version): $(srcdir)/$(libname).map +# +# endif diff --git a/Makefile.am b/libpthread/Makefile.am index e59c9460..e59c9460 100644 --- a/Makefile.am +++ b/libpthread/Makefile.am diff --git a/libpthread/TODO b/libpthread/TODO new file mode 100644 index 00000000..45b4cdc2 --- /dev/null +++ b/libpthread/TODO @@ -0,0 +1,174 @@ +-*- Mode: outline -*- + +* Interfaces +** All interfaces specified by IEEE Std 1003.1-2001 are present, however, + pthread_kill and pthread_sigmask are defined in <pthread.h> and not + <signal.h> as they should be. Once we are compiled with glibc, + this should be eaiser. + +* Test cases. Can never have enough. + +* Ports + Port to other kernels (e.g. Linux and FreeBSD) and test on other + platforms. + +* Implementation details +** pthread_atfork + This cannot be implemented without either changing glibc to export + some hooks (c.f. libc/sysdeps/mach/hurd/fork.c) or by providing a + custom fork implementation that wraps the origial using dlopen et + al. + +** Scheduling and priorities + + We do not support scheduling right now in any way what so ever. + + This affects: + pthread_attr_getinheritsched + pthread_attr_setinheritsched + pthread_attr_getschedparam + pthread_attr_setschedparam + pthread_attr_getschedpolicy + pthread_attr_setschedpolicy + pthread_attr_getscope + pthread_attr_setscope + + pthread_mutexattr_getprioceiling + pthread_mutexattr_setprioceiling + pthread_mutexattr_getprotocol + pthread_mutexattr_setprotocol + pthread_mutex_getprioceiling + pthread_mutex_setprioceiling + + pthread_setschedprio + pthread_getschedparam + pthread_setschedparam + +** Alternate stacks + + Supporting alternate stacks (via pthread_attr_getstackaddr, + pthread_attr_setstackaddr, pthread_attr_getstack, + pthread_attr_setstack, pthread_attr_getstacksize and + pthread_attr_setstacksize) is no problem as long as they are of the + correct size and have the correct alignment. This is due to + limitations in the Hurd TSD implementation + (c.f. <hurd/threadvar.h>). + +** Cancelation +*** Cancelation points + The only cancelation points are pthread_join, pthread_cond_wait, + pthead_cond_timedwait and pthread_testcancel. Need to explore if + the hurd_sigstate->cancel_hook (c.f. <hurd/signal.h>) provides the + desired semantics. If not, must either wrap the some functions + using dlsym or wait until integration with glibc. +*** Async cancelation + We inject a new IP into the cancelled (running) thread and then + run the cancelation handlers + (c.f. sysdeps/mach/hurd/pt-docancel.c). The handlers need to have + access to the stack as they may use local variables. I think that + this method may leave the frame pointer in a corrupted state if + the thread was in, for instance, the middle of a function call. + The robustness needs to be confirmed. + +** Process Shared Attribute + + Currently, there is no real support for the process shared + attribute. spinlocks work because we just use a test and set loop, + however, barriers, conditions mutexes and rwlocks, however, signal + wakeups via ports of which the names are process local. + + We could have some process local data that is hashed to via the + address of the data structure. Then the first thread that blocks + per process would spin on the shared memory area and all others + would then block as normal. When the resource became available, + the first thread would signal the other local threads as necessary. + Alternatively, there could be some server, however, this opens a + new question: what can we use as an authentication agent. + +** Locking algorithm + + When a thread blocks, it puts itself on a queue and then waits for + a message on a thread local port. The thread which eventually does + the wakeup sends a message to the waiter thereby waking it up. If + the wakeup is a broadcast wakeup (e.g. pthread_cond_broadcast, + pthread_barrier_wait and pthread_rdlock_unlock), the thread must + send O(N) messages where N is the number of waiting threads. If + all the threads instead received on a lock local (rather than + thread local) port then the thread which eventually does the wake + need just do one operation, mach_port_destroy and all of the + waiting threads would wakeup and get MACH_RCV_PORT_DIED back from + mach_msg. Note that the trade off is that the port must be + recreated. This needs to be benchmarked. + + A possible problem with this is scheduling priorities. There may + be a preference for certain threads to wakeup before others + (especially if we are not doing a broadcast, for instance, + pthread_mutex_unlock and pthread_cond_signal). If we take this + approach, the kernel chooses which threads are awakened. If we + find that the kernel makes the wrong choices, we can still overcome + this by merging the two algorithms: have a list of ports sorted in + priority order and the waker does a mach_port_destroy on each as + appropriate. + +** Barriers + + Barriers can be very slow and the contention can be very high. The + above algorithm is very appealing, however, this may be augmented + with an initial number of spins and yields. It is expected that + all of the threads reach the barrier within close succession, thus + queuing a message may be more expensive. This needs to be + benchmarked. + +** Clocks +*** pthread_condattr_setclock allows a process to specify a clock for + use with pthread_cond_timedwaits. What is the correct default for + this, right now, we use CLOCK_REALTIME, however, we are really + using the system clock which, if I understand correctly, is + completely different. +*** Could we even use other clocks? mach_msg uses a relative time against + the system clock. +*** pthread_getcpuclockid just returns CLOCK_THREAD_CPUTIME_ID if defined. + Is this the correct behavior? + +** Timed Blocking +*** pthread_cond_timedwait, pthead_mutex_timedlock, pthread_rwlock_timedrdlock + and pthread_rwlock_timedwrlock all take absolute times. We need + to convert them to relative times for mach_msg. Is there a way + around this? How will clock skew affect us? + +** weak aliases + Use them consistently and correctly and start by reading + http://sources.redhat.com/ml/libc-alpha/2002-08/msg00278.html. + +* L4 Specific Issues +** Stack +*** Size + The stack size is defined to be a single page in + sysdeps/l4/hurd/pt-sysdep.h. Once we are able to setup regions, + this can be expanded to two megs as suggested by the Mach version. + Until then, however, we need to allocate too much physical memory. +*** Deallocation + __thread_stack_dealloc currently does not deallocate the stack. + For a proper implementation, we need a working memory manager. + +** Scheduling +*** yield + [L4] We cannot use yield for spin locks as L4 only yields to threads of + priority which are greater than or equal to the yielding thread. + If there are threads of lower priority, they are not considered; + the yielding thread is just placed back on the processor. This + introduces priority inversion quite quickly. L4 will not add a + priority suppression function call. As such, we need to do + an ipc with a small time out and then use exponential back off to + do the actual waiting. This sucks. + +** Stub code + [L4] We include <task_client.h> in pt-start.c, however, we need a library + so we do not have to play with the corba stuff. + +** Root server and Task server +*** Getting the tids. + pt-start.c has a wonderfully evil hack that will never work well. + +** Paging + We set the pager to the root server. Evil. Fix this in pt-start.c. diff --git a/headers.m4 b/libpthread/headers.m4 index 5a58b9bf..5a58b9bf 100644 --- a/headers.m4 +++ b/libpthread/headers.m4 diff --git a/libpthread/include/libc-symbols.h b/libpthread/include/libc-symbols.h new file mode 100644 index 00000000..54dd6e26 --- /dev/null +++ b/libpthread/include/libc-symbols.h @@ -0,0 +1,395 @@ +/* Support macros for making weak and strong aliases for symbols, + and for using symbol sets and linker warnings with GNU ld. + Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _LIBC_SYMBOLS_H +#define _LIBC_SYMBOLS_H 1 + +/* This file's macros are included implicitly in the compilation of every + file in the C library by -imacros. + + We include config.h which is generated by configure. + It should define for us the following symbols: + + * HAVE_ASM_SET_DIRECTIVE if we have `.set B, A' instead of `A = B'. + * ASM_GLOBAL_DIRECTIVE with `.globl' or `.global'. + * HAVE_GNU_LD if using GNU ld, with support for weak symbols in a.out, + and for symbol set and warning messages extensions in a.out and ELF. + * HAVE_ELF if using ELF, which supports weak symbols using `.weak'. + * HAVE_ASM_WEAK_DIRECTIVE if we have weak symbols using `.weak'. + * HAVE_ASM_WEAKEXT_DIRECTIVE if we have weak symbols using `.weakext'. + + */ + +/* This is defined for the compilation of all C library code. features.h + tests this to avoid inclusion of stubs.h while compiling the library, + before stubs.h has been generated. Some library code that is shared + with other packages also tests this symbol to see if it is being + compiled as part of the C library. We must define this before including + config.h, because it makes some definitions conditional on whether libc + itself is being compiled, or just some generator program. */ +// #define _LIBC 1 + +/* Enable declarations of GNU extensions, since we are compiling them. */ +#define _GNU_SOURCE 1 +/* And we also need the data for the reentrant functions. */ +#define _REENTRANT 1 + +// #include <config.h> +#define HAVE_ASM_WEAK_DIRECTIVE +#define HAVE_WEAK_SYMBOLS +#define HAVE_ASM_SET_DIRECTIVE +#define HAVE_BUILTIN_EXPECT +#define HAVE_GNU_LD +#define HAVE_ELF +#define HAVE_SECTION_QUOTES +#define HAVE_VISIBILITY_ATTRIBUTE +#define HAVE_ASM_PREVIOUS_DIRECTIVE +// #define SHARED + +/* The symbols in all the user (non-_) macros are C symbols. + HAVE_GNU_LD without HAVE_ELF implies a.out. */ + +#if defined HAVE_ASM_WEAK_DIRECTIVE || defined HAVE_ASM_WEAKEXT_DIRECTIVE +# define HAVE_WEAK_SYMBOLS +#endif + +#ifndef __SYMBOL_PREFIX +# ifdef NO_UNDERSCORES +# define __SYMBOL_PREFIX +# else +# define __SYMBOL_PREFIX "_" +# endif +#endif + +#ifndef C_SYMBOL_NAME +# ifdef NO_UNDERSCORES +# define C_SYMBOL_NAME(name) name +# else +# define C_SYMBOL_NAME(name) _##name +# endif +#endif + +#ifndef ASM_LINE_SEP +# define ASM_LINE_SEP ; +#endif + +#ifndef C_SYMBOL_DOT_NAME +# define C_SYMBOL_DOT_NAME(name) .##name +#endif + +#ifndef __ASSEMBLER__ +/* GCC understands weak symbols and aliases; use its interface where + possible, instead of embedded assembly language. */ + +/* Define ALIASNAME as a strong alias for NAME. */ +# define strong_alias(name, aliasname) _strong_alias(name, aliasname) +# define _strong_alias(name, aliasname) \ + extern __typeof (name) aliasname __attribute__ ((alias (#name))); + +/* This comes between the return type and function name in + a function definition to make that definition weak. */ +# define weak_function __attribute__ ((weak)) +# define weak_const_function __attribute__ ((weak, __const__)) + +# ifdef HAVE_WEAK_SYMBOLS + +/* Define ALIASNAME as a weak alias for NAME. + If weak aliases are not available, this defines a strong alias. */ +# define weak_alias(name, aliasname) _weak_alias (name, aliasname) +# define _weak_alias(name, aliasname) \ + extern __typeof (name) aliasname __attribute__ ((weak, alias (#name))); + +/* Declare SYMBOL as weak undefined symbol (resolved to 0 if not defined). */ +# define weak_extern(symbol) _weak_extern (symbol) +# ifdef HAVE_ASM_WEAKEXT_DIRECTIVE +# define _weak_extern(symbol) asm (".weakext " __SYMBOL_PREFIX #symbol); +# else +# define _weak_extern(symbol) asm (".weak " __SYMBOL_PREFIX #symbol); +# endif + +# else + +# define weak_alias(name, aliasname) strong_alias(name, aliasname) +# define weak_extern(symbol) /* Nothing. */ + +# endif + +#else /* __ASSEMBLER__ */ + +# ifdef HAVE_ASM_SET_DIRECTIVE +# define strong_alias(original, alias) \ + ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \ + .set C_SYMBOL_NAME (alias),C_SYMBOL_NAME (original) +# else +# ifdef HAVE_ASM_GLOBAL_DOT_NAME +# define strong_alias(original, alias) \ + ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \ + C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original) ASM_LINE_SEP \ + ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \ + C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original) +# else +# define strong_alias(original, alias) \ + ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \ + C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original) +# endif +# endif + +# ifdef HAVE_WEAK_SYMBOLS +# ifdef HAVE_ASM_WEAKEXT_DIRECTIVE +# define weak_alias(original, alias) \ + .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original) +# define weak_extern(symbol) \ + .weakext C_SYMBOL_NAME (symbol) + +# else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */ + +# ifdef HAVE_ASM_GLOBAL_DOT_NAME +# define weak_alias(original, alias) \ + .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP \ + C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original) ASM_LINE_SEP \ + ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \ + C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original) +# else +# define weak_alias(original, alias) \ + .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP \ + C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original) +# endif + +# define weak_extern(symbol) \ + .weak C_SYMBOL_NAME (symbol) + +# endif /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */ + +# else /* ! HAVE_WEAK_SYMBOLS */ + +# define weak_alias(original, alias) strong_alias(original, alias) +# define weak_extern(symbol) /* Nothing */ +# endif /* ! HAVE_WEAK_SYMBOLS */ + +#endif /* __ASSEMBLER__ */ + +/* On some platforms we can make internal function calls (i.e., calls of + functions not exported) a bit faster by using a different calling + convention. */ +#ifndef internal_function +# define internal_function /* empty */ +#endif + +/* Prepare for the case that `__builtin_expect' is not available. */ +#ifndef HAVE_BUILTIN_EXPECT +# define __builtin_expect(expr, val) (expr) +#endif + +/* Determine the return address. */ +#define RETURN_ADDRESS(nr) \ + __builtin_extract_return_addr (__builtin_return_address (nr)) + +/* When a reference to SYMBOL is encountered, the linker will emit a + warning message MSG. */ +#ifdef HAVE_GNU_LD +# ifdef HAVE_ELF + +/* We want the .gnu.warning.SYMBOL section to be unallocated. */ +# ifdef HAVE_ASM_PREVIOUS_DIRECTIVE +# define __make_section_unallocated(section_string) \ + asm (".section " section_string "\n\t.previous"); +# elif defined HAVE_ASM_POPSECTION_DIRECTIVE +# define __make_section_unallocated(section_string) \ + asm (".pushsection " section_string "\n\t.popsection"); +# else +# define __make_section_unallocated(section_string) +# endif + +/* Tacking on "\n\t#" to the section name makes gcc put it's bogus + section attributes on what looks like a comment to the assembler. */ +# ifdef HAVE_SECTION_QUOTES +# define link_warning(symbol, msg) \ + __make_section_unallocated (".gnu.warning." #symbol) \ + static const char __evoke_link_warning_##symbol[] \ + __attribute__ ((unused, section (".gnu.warning." #symbol "\"\n\t#\""))) \ + = msg; +# else +# define link_warning(symbol, msg) \ + __make_section_unallocated (".gnu.warning." #symbol) \ + static const char __evoke_link_warning_##symbol[] \ + __attribute__ ((unused, section (".gnu.warning." #symbol "\n\t#"))) = msg; +# endif +# else /* Not ELF: a.out */ +# ifdef HAVE_XCOFF +/* XCOFF does not support .stabs. + The native aix linker will remove the .stab and .stabstr sections + The gnu linker will have a fatal error if there is a relocation for + symbol in the .stab section. Silently disable this macro. */ +# define link_warning(symbol, msg) +# else +# define link_warning(symbol, msg) \ + asm (".stabs \"" msg "\",30,0,0,0\n\t" \ + ".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0\n"); +# endif /* XCOFF */ +# endif +#else +/* We will never be heard; they will all die horribly. */ +# define link_warning(symbol, msg) +#endif + +/* A canned warning for sysdeps/stub functions. */ +#define stub_warning(name) \ + link_warning (name, \ + "warning: " #name " is not implemented and will always fail") + +/* + +*/ + +#ifdef HAVE_GNU_LD + +/* Symbol set support macros. */ + +# ifdef HAVE_ELF + +/* Make SYMBOL, which is in the text segment, an element of SET. */ +# define text_set_element(set, symbol) _elf_set_element(set, symbol) +/* Make SYMBOL, which is in the data segment, an element of SET. */ +# define data_set_element(set, symbol) _elf_set_element(set, symbol) +/* Make SYMBOL, which is in the bss segment, an element of SET. */ +# define bss_set_element(set, symbol) _elf_set_element(set, symbol) + +/* These are all done the same way in ELF. + There is a new section created for each set. */ +# ifdef SHARED +/* When building a shared library, make the set section writable, + because it will need to be relocated at run time anyway. */ +# define _elf_set_element(set, symbol) \ + static const void *__elf_set_##set##_element_##symbol##__ \ + __attribute__ ((unused, section (#set))) = &(symbol) +# else +# define _elf_set_element(set, symbol) \ + static const void *const __elf_set_##set##_element_##symbol##__ \ + __attribute__ ((unused, section (#set))) = &(symbol) +# endif + +/* Define SET as a symbol set. This may be required (it is in a.out) to + be able to use the set's contents. */ +# define symbol_set_define(set) symbol_set_declare(set) + +/* Declare SET for use in this module, if defined in another module. */ +# define symbol_set_declare(set) \ + extern void *const __start_##set __attribute__ ((__weak__)); \ + extern void *const __stop_##set __attribute__ ((__weak__)); \ + weak_extern (__start_##set) weak_extern (__stop_##set) + +/* Return a pointer (void *const *) to the first element of SET. */ +# define symbol_set_first_element(set) (&__start_##set) + +/* Return true iff PTR (a void *const *) has been incremented + past the last element in SET. */ +# define symbol_set_end_p(set, ptr) ((ptr) >= &__stop_##set) + +# else /* Not ELF: a.out. */ + +# ifdef HAVE_XCOFF +/* XCOFF does not support .stabs. + The native aix linker will remove the .stab and .stabstr sections + The gnu linker will have a fatal error if there is a relocation for + symbol in the .stab section. Silently disable these macros. */ +# define text_set_element(set, symbol) +# define data_set_element(set, symbol) +# define bss_set_element(set, symbol) +# else +# define text_set_element(set, symbol) \ + asm (".stabs \"" __SYMBOL_PREFIX #set "\",23,0,0," __SYMBOL_PREFIX #symbol) +# define data_set_element(set, symbol) \ + asm (".stabs \"" __SYMBOL_PREFIX #set "\",25,0,0," __SYMBOL_PREFIX #symbol) +# define bss_set_element(set, symbol) ?error Must use initialized data. +# endif /* XCOFF */ +# define symbol_set_define(set) void *const (set)[1]; +# define symbol_set_declare(set) extern void *const (set)[1]; + +# define symbol_set_first_element(set) &(set)[1] +# define symbol_set_end_p(set, ptr) (*(ptr) == 0) + +# endif /* ELF. */ +#else +/* We cannot do anything in generial. */ +# define text_set_element(set, symbol) asm ("") +# define data_set_element(set, symbol) asm ("") +# define bss_set_element(set, symbol) asm ("") +# define symbol_set_define(set) void *const (set)[1]; +# define symbol_set_declare(set) extern void *const (set)[1]; + +# define symbol_set_first_element(set) &(set)[1] +# define symbol_set_end_p(set, ptr) (*(ptr) == 0) +#endif /* Have GNU ld. */ + +#if DO_VERSIONING +# define symbol_version(real, name, version) \ + _symbol_version(real, name, version) +# define default_symbol_version(real, name, version) \ + _default_symbol_version(real, name, version) +# ifdef __ASSEMBLER__ +# define _symbol_version(real, name, version) \ + .symver real, name##@##version +# define _default_symbol_version(real, name, version) \ + .symver real, name##@##@##version +# else +# define _symbol_version(real, name, version) \ + __asm__ (".symver " #real "," #name "@" #version) +# define _default_symbol_version(real, name, version) \ + __asm__ (".symver " #real "," #name "@@" #version) +# endif +#else +# define symbol_version(real, name, version) +# define default_symbol_version(real, name, version) \ + strong_alias(real, name) +#endif + +#if defined HAVE_VISIBILITY_ATTRIBUTE && defined SHARED +# define attribute_hidden __attribute__ ((visibility ("hidden"))) +#else +# define attribute_hidden +#endif + +/* Handling on non-exported internal names. We have to do this only + for shared code. */ +#ifdef SHARED +# define INTUSE(name) name##_internal +# define INTDEF(name) strong_alias (name, name##_internal) +# define INTVARDEF(name) \ + _INTVARDEF (name, name##_internal) +# if defined HAVE_VISIBILITY_ATTRIBUTE +# define _INTVARDEF(name, aliasname) \ + extern __typeof (name) aliasname __attribute__ ((alias (#name), \ + visibility ("hidden"))); +# else +# define _INTVARDEF(name, aliasname) \ + extern __typeof (name) aliasname __attribute__ ((alias (#name))); +# endif +# define INTDEF2(name, newname) strong_alias (name, newname##_internal) +# define INTVARDEF2(name, newname) _INTVARDEF (name, newname##_internal) +#else +# define INTUSE(name) name +# define INTDEF(name) +# define INTVARDEF(name) +# define INTDEF2(name, newname) +# define INTVARDEF2(name, newname) +#endif + +#endif /* libc-symbols.h */ diff --git a/libpthread/include/pthread.h b/libpthread/include/pthread.h new file mode 100644 index 00000000..1d4d3c7b --- /dev/null +++ b/libpthread/include/pthread.h @@ -0,0 +1,7 @@ +#ifndef _PTHREAD_H +#include <pthread/pthread.h> + +extern int __pthread_mutex_lock (pthread_mutex_t *__mutex); +extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex); + +#endif diff --git a/libpthread/include/pthread/pthread.h b/libpthread/include/pthread/pthread.h new file mode 100644 index 00000000..dedb09d4 --- /dev/null +++ b/libpthread/include/pthread/pthread.h @@ -0,0 +1,744 @@ +/* Copyright (C) 2000, 2002, 2005, 2006, 2007, 2008, 2009 + 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. */ + +/* + * POSIX Threads Extension: ??? <pthread.h> + */ + +#ifndef _PTHREAD_H +#define _PTHREAD_H 1 + +#include <features.h> + +#include <sys/cdefs.h> +#ifndef __extern_inline +/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. */ +# if !defined __cplusplus || __GNUC_PREREQ (4,3) +# if defined __GNUC_STDC_INLINE__ || defined __cplusplus +# define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) +# if __GNUC_PREREQ (4,3) +# define __extern_always_inline \ + extern __always_inline __attribute__ ((__gnu_inline__, __artificial__)) +# else +# define __extern_always_inline \ + extern __always_inline __attribute__ ((__gnu_inline__)) +# endif +# else +# define __extern_inline extern __inline +# define __extern_always_inline extern __always_inline +# endif +# endif +#endif + +#include <sched.h> + +__BEGIN_DECLS + +#include <pthread/pthreadtypes.h> + +#include <bits/pthread.h> + +/* Possible values for the process shared attribute. */ +#define PTHREAD_PROCESS_PRIVATE __PTHREAD_PROCESS_PRIVATE +#define PTHREAD_PROCESS_SHARED __PTHREAD_PROCESS_SHARED + + +/* Thread attributes. */ + +/* Possible values for the inheritsched attribute. */ +#define PTHREAD_EXPLICIT_SCHED __PTHREAD_EXPLICIT_SCHED +#define PTHREAD_INHERIT_SCHED __PTHREAD_INHERIT_SCHED + +/* Possible values for the `contentionscope' attribute. */ +#define PTHREAD_SCOPE_SYSTEM __PTHREAD_SCOPE_SYSTEM +#define PTHREAD_SCOPE_PROCESS __PTHREAD_SCOPE_PROCESS + +/* Possible values for the `detachstate' attribute. */ +#define PTHREAD_CREATE_JOINABLE __PTHREAD_CREATE_JOINABLE +#define PTHREAD_CREATE_DETACHED __PTHREAD_CREATE_DETACHED + +#include <bits/thread-attr.h> + +/* Initialize the thread attribute object in *ATTR to the default + values. */ +extern int pthread_attr_init (pthread_attr_t *attr); + +/* Destroy the thread attribute object in *ATTR. */ +extern int pthread_attr_destroy (pthread_attr_t *attr); + + +/* Return the value of the inheritsched attribute in *ATTR in + *INHERITSCHED. */ +extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict attr, + int *__restrict inheritsched); + +/* Set the value of the inheritsched attribute in *ATTR to + INHERITSCHED. */ +extern int pthread_attr_setinheritsched (pthread_attr_t *attr, + int inheritsched); + + +/* Return the value of the schedparam attribute in *ATTR in *PARAM. */ +extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict attr, + struct sched_param *__restrict param); + +/* Set the value of the schedparam attribute in *ATTR to PARAM. */ +extern int pthread_attr_setschedparam (pthread_attr_t *__restrict attr, + const struct sched_param *__restrict param); + + +/* Return the value of the schedpolicy attribute in *ATTR to *POLICY. */ +extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict attr, + int *__restrict policy); + +/* Set the value of the schedpolicy attribute in *ATTR to POLICY. */ +extern int pthread_attr_setschedpolicy (pthread_attr_t *attr, + int policy); + + +/* Return the value of the contentionscope attribute in *ATTR in + *CONTENTIONSCOPE. */ +extern int pthread_attr_getscope (const pthread_attr_t *__restrict attr, + int *__restrict contentionscope); + +/* Set the value of the contentionscope attribute in *ATTR to + CONTENTIONSCOPE. */ +extern int pthread_attr_setscope (pthread_attr_t *attr, + int contentionscope); + + +/* Return the value of the stackaddr attribute in *ATTR in + *STACKADDR. */ +extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict attr, + void **__restrict stackaddr); + +/* Set the value of the stackaddr attribute in *ATTR to STACKADDR. */ +extern int pthread_attr_setstackaddr (pthread_attr_t *attr, + void *stackaddr); + + +#ifdef __USE_XOPEN2K +/* Return the value of the stackaddr and stacksize attributes in *ATTR + in *STACKADDR and *STACKSIZE respectively. */ +extern int pthread_attr_getstack (const pthread_attr_t *__restrict attr, + void **__restrict stackaddr, + size_t *__restrict stacksize); + +/* Set the value of the stackaddr and stacksize attributes in *ATTR to + STACKADDR and STACKSIZE respectively. */ +extern int pthread_attr_setstack (pthread_attr_t *attr, + void *stackaddr, + size_t stacksize); +#endif + + +/* Return the value of the detachstate attribute in *ATTR in + *DETACHSTATE. */ +extern int pthread_attr_getdetachstate (const pthread_attr_t *attr, + int *detachstate); + +/* Set the value of the detachstate attribute in *ATTR to + DETACHSTATE. */ +extern int pthread_attr_setdetachstate (pthread_attr_t *attr, + int detachstate); + + +/* Return the value of the guardsize attribute in *ATTR in + *GUARDSIZE. */ +extern int pthread_attr_getguardsize (const pthread_attr_t *__restrict attr, + size_t *__restrict guardsize); + +/* Set the value of the guardsize attribute in *ATTR to GUARDSIZE. */ +extern int pthread_attr_setguardsize (pthread_attr_t *attr, + size_t guardsize); + + +/* Return the value of the stacksize attribute in *ATTR in + *STACKSIZE. */ +extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict attr, + size_t *__restrict stacksize); + +/* Set the value of the stacksize attribute in *ATTR to STACKSIZE. */ +extern int pthread_attr_setstacksize (pthread_attr_t *attr, + size_t stacksize); + +#ifdef __USE_GNU +/* Initialize thread attribute *ATTR with attributes corresponding to the + already running thread THREAD. It shall be called on an uninitialized ATTR + and destroyed with pthread_attr_destroy when no longer needed. */ +extern int pthread_getattr_np (pthread_t thread, pthread_attr_t *attr); +#endif + + +/* Create a thread with attributes given by ATTR, executing + START_ROUTINE with argument ARG. */ +extern int pthread_create (pthread_t *__restrict __threadp, + __const pthread_attr_t *__restrict __attr, + void *(*__start_routine)(void *), + void *__restrict __arg); + +/* Terminate the current thread and make STATUS available to any + thread that might join us. */ +extern void pthread_exit (void *__status) __attribute__ ((noreturn)); + +/* Make calling thread wait for termination of thread THREAD. Return + the exit status of the thread in *STATUS. */ +extern int pthread_join (pthread_t __threadp, void **__status); + +/* Indicate that the storage for THREAD can be reclaimed when it + terminates. */ +extern int pthread_detach (pthread_t __threadp); + +/* Compare thread IDs T1 and T2. Return nonzero if they are equal, 0 + if they are not. */ +extern int pthread_equal (pthread_t __t1, pthread_t __t2); + +# ifdef __USE_EXTERN_INLINES + +__extern_inline int +pthread_equal (pthread_t __t1, pthread_t __t2) +{ + return __pthread_equal (__t1, __t2); +} + +# endif /* Use extern inlines. */ + + +/* Return the thread ID of the calling thread. */ +extern pthread_t pthread_self (void); + + +/* Mutex attributes. */ + +#define PTHREAD_PRIO_NONE_NP __PTHREAD_PRIO_NONE +#define PTHREAD_PRIO_INHERIT_NP __PTHREAD_PRIO_INHERIT +#define PTHREAD_PRIO_PROTECT_NP __PTHREAD_PRIO_PROTECT +#ifdef __USE_UNIX98 +#define PTHREAD_PRIO_NONE PTHREAD_PRIO_NONE_NP +#define PTHREAD_PRIO_INHERIT PTHREAD_PRIO_INHERIT_NP +#define PTHREAD_PRIO_PROTECT PTHREAD_PRIO_PROTECT_NP +#endif + +#define PTHREAD_MUTEX_TIMED_NP __PTHREAD_MUTEX_TIMED +#define PTHREAD_MUTEX_ERRORCHECK_NP __PTHREAD_MUTEX_ERRORCHECK +#define PTHREAD_MUTEX_RECURSIVE_NP __PTHREAD_MUTEX_RECURSIVE +#ifdef __USE_UNIX98 +#define PTHREAD_MUTEX_NORMAL PTHREAD_MUTEX_TIMED_NP +#define PTHREAD_MUTEX_ERRORCHECK PTHREAD_MUTEX_ERRORCHECK_NP +#define PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP +#define PTHREAD_MUTEX_DEFAULT PTHREAD_MUTEX_NORMAL +#endif +#ifdef __USE_GNU +/* For compatibility. */ +#define PTHREAD_MUTEX_FAST_NP PTHREAD_MUTEX_TIMED_NP +#endif + +#include <bits/mutex-attr.h> + +/* Initialize the mutex attribute object in *ATTR to the default + values. */ +extern int pthread_mutexattr_init(pthread_mutexattr_t *attr); + +/* Destroy the mutex attribute structure in *ATTR. */ +extern int pthread_mutexattr_destroy(pthread_mutexattr_t *attr); + + +#ifdef __USE_UNIX98 +/* Return the value of the prioceiling attribute in *ATTR in + *PRIOCEILING. */ +extern int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *__restrict attr, + int *__restrict prioceiling); + +/* Set the value of the prioceiling attribute in *ATTR to + PRIOCEILING. */ +extern int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *attr, + int prioceiling); + + +/* Return the value of the protocol attribute in *ATTR in + *PROTOCOL. */ +extern int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *__restrict attr, + int *__restrict protocol); + +/* Set the value of the protocol attribute in *ATTR to PROTOCOL. */ +extern int pthread_mutexattr_setprotocol(pthread_mutexattr_t *attr, + int protocol); +#endif + + +/* Return the value of the process shared attribute in *ATTR in + *PSHARED. */ +extern int pthread_mutexattr_getpshared(const pthread_mutexattr_t *__restrict attr, + int *__restrict pshared); + +/* Set the value of the process shared attribute in *ATTR to + PSHARED. */ +extern int pthread_mutexattr_setpshared(pthread_mutexattr_t *attr, + int pshared); + + +#ifdef __USE_UNIX98 +/* Return the value of the type attribute in *ATTR in *TYPE. */ +extern int pthread_mutexattr_gettype(const pthread_mutexattr_t *__restrict attr, + int *__restrict type); + +/* Set the value of the type attribute in *ATTR to TYPE. */ +extern int pthread_mutexattr_settype(pthread_mutexattr_t *attr, + int type); +#endif + + +/* Mutexes. */ + +#include <bits/mutex.h> + +#define PTHREAD_MUTEX_INITIALIZER __PTHREAD_MUTEX_INITIALIZER +/* Static initializer for recursive mutexes. */ + +#ifdef __USE_GNU +# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \ + __PTHREAD_RECURSIVE_MUTEX_INITIALIZER +#endif + +/* Create a mutex with attributes given by ATTR and store it in + *__MUTEX. */ +extern int pthread_mutex_init (struct __pthread_mutex *__restrict __mutex, + const pthread_mutexattr_t *__restrict attr); + +/* Destroy the mutex __MUTEX. */ +extern int pthread_mutex_destroy (struct __pthread_mutex *__mutex); + +/* Wait until lock for MUTEX becomes available and lock it. */ +extern int pthread_mutex_lock (pthread_mutex_t *__mutex); + +/* Try to lock MUTEX. */ +extern int pthread_mutex_trylock (pthread_mutex_t *__mutex); + +#ifdef __USE_XOPEN2K +/* Try to lock MUTEX, block until *ABSTIME if it is already held. */ +extern int pthread_mutex_timedlock (struct __pthread_mutex *__restrict mutex, + const struct timespec *__restrict abstime); +#endif + +/* Unlock MUTEX. */ +extern int pthread_mutex_unlock (pthread_mutex_t *__mutex); + +/* Transfer ownership of the mutex MUTEX to the thread TID. The + caller must own the lock. */ +extern int __pthread_mutex_transfer_np (struct __pthread_mutex *mutex, + pthread_t tid); + + +#ifdef __USE_UNIX98 +/* Return the priority ceiling of mutex *MUTEX in *PRIOCEILING. */ +extern int pthread_mutex_getprioceiling (const pthread_mutex_t *__restrict mutex, + int *__restrict prioceiling); + +/* After acquiring the mutex *MUTEX, set its priority ceiling to PRIO + and return the old priority ceiling in *OLDPRIO. Before returning, + release the mutex. */ +extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict mutex, + int prio, int *__restrict oldprio); +#endif + + + +/* Condition attributes. */ + +#include <bits/condition-attr.h> + +/* Initialize the condition attribute in *ATTR to the default + values. */ +extern int pthread_condattr_init (pthread_condattr_t *attr); + +/* Destroy the condition attribute structure in *ATTR. */ +extern int pthread_condattr_destroy (pthread_condattr_t *attr); + + +#ifdef __USE_XOPEN2K +/* Return the value of the clock attribute in *ATTR in *CLOCK_ID. */ +extern int pthread_condattr_getclock (const pthread_condattr_t *__restrict attr, + clockid_t *__restrict clock_id); + +/* Set the value of the clock attribute in *ATTR to CLOCK_ID. */ +extern int pthread_condattr_setclock (pthread_condattr_t *attr, + clockid_t clock_id); +#endif + + +/* Return the value of the process shared attribute in *ATTR in + *PSHARED. */ +extern int pthread_condattr_getpshared (const pthread_condattr_t *__restrict attr, + int *__restrict pshared); + +/* Set the value of the process shared attribute in *ATTR to + PSHARED. */ +extern int pthread_condattr_setpshared (pthread_condattr_t *attr, + int pshared); + + +/* Condition variables. */ + +#include <bits/condition.h> + +#define PTHREAD_COND_INITIALIZER __PTHREAD_COND_INITIALIZER + +extern int pthread_cond_init (pthread_cond_t *__restrict cond, + const pthread_condattr_t *__restrict attr); + +extern int pthread_cond_destroy (pthread_cond_t *cond); + +/* Unblock at least one of the threads that are blocked on condition + variable COND. */ +extern int pthread_cond_signal (pthread_cond_t *__cond); + +/* Unblock all threads that are blocked on condition variable COND. */ +extern int pthread_cond_broadcast (pthread_cond_t *__cond); + +/* Block on condition variable COND. MUTEX should be held by the + calling thread. On success, MUTEX will be held by the calling + thread. */ +extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, + pthread_mutex_t *__restrict __mutex); + +/* Block on condition variable COND. MUTEX should be held by the + calling thread. On success, MUTEX will be held by the calling + thread. If the time specified by ABSTIME passes, ETIMEDOUT is + returned, and MUTEX will nevertheless be held. */ +extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, + pthread_mutex_t *__restrict __mutex, + __const struct timespec *__restrict __abstime); + + +/* Spin locks. */ + +#ifdef __USE_XOPEN2K + +# include <bits/spin-lock.h> + +#define PTHREAD_SPINLOCK_INITIALIZER __PTHREAD_SPIN_LOCK_INITIALIZER + +/* Destroy the spin lock object LOCK. */ +extern int pthread_spin_destroy (pthread_spinlock_t *__lock); + +/* Initialize the spin lock object LOCK. PSHARED determines whether + the spin lock can be operated upon by multiple processes. */ +extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared); + +/* Lock the spin lock object LOCK. If the lock is held by another + thread spin until it becomes available. */ +extern int pthread_spin_lock (pthread_spinlock_t *__lock); + +/* Lock the spin lock object LOCK. Fail if the lock is held by + another thread. */ +extern int pthread_spin_trylock (pthread_spinlock_t *__lock); + +/* Unlock the spin lock object LOCK. */ +extern int pthread_spin_unlock (pthread_spinlock_t *__lock); + +# ifdef __USE_EXTERN_INLINES + +# include <bits/spin-lock-inline.h> + +__extern_inline int +pthread_spin_destroy (pthread_spinlock_t *__lock) +{ + return __pthread_spin_destroy (__lock); +} + +__extern_inline int +pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) +{ + return __pthread_spin_init (__lock, __pshared); +} + +__extern_inline int +pthread_spin_lock (pthread_spinlock_t *__lock) +{ + return __pthread_spin_lock (__lock); +} + +__extern_inline int +pthread_spin_trylock (pthread_spinlock_t *__lock) +{ + return __pthread_spin_trylock (__lock); +} + +__extern_inline int +pthread_spin_unlock (pthread_spinlock_t *__lock) +{ + return __pthread_spin_unlock (__lock); +} + +# endif /* Use extern inlines. */ + +#endif /* XPG6. */ + + +/* rwlock attributes. */ + +#if defined __USE_UNIX98 || defined __USE_XOPEN2K + +#include <bits/rwlock-attr.h> + +/* Initialize rwlock attribute object in *ATTR to the default + values. */ +extern int pthread_rwlockattr_init (pthread_rwlockattr_t *attr); + +/* Destroy the rwlock attribute object in *ATTR. */ +extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *attr); + + +/* Return the value of the process shared attribute in *ATTR in + *PSHARED. */ +extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *__restrict attr, + int *__restrict pshared); + +/* Set the value of the process shared atrribute in *ATTR to + PSHARED. */ +extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *attr, + int pshared); + + +/* rwlocks. */ + +#include <bits/rwlock.h> + +#define PTHREAD_RWLOCK_INITIALIZER __PTHREAD_RWLOCK_INITIALIZER +/* Create a rwlock object with attributes given by ATTR and strore the + result in *RWLOCK. */ +extern int pthread_rwlock_init (pthread_rwlock_t *__restrict rwlock, + const pthread_rwlockattr_t *__restrict attr); + +/* Destroy the rwlock *RWLOCK. */ +extern int pthread_rwlock_destroy (pthread_rwlock_t *rwlock); + +/* Acquire the rwlock *RWLOCK for reading. */ +extern int pthread_rwlock_rdlock (pthread_rwlock_t *rwlock); + +/* Acquire the rwlock *RWLOCK for reading. */ +extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *rwlock); + +# ifdef __USE_XOPEN2K +/* Acquire the rwlock *RWLOCK for reading blocking until *ABSTIME if + it is already held. */ +extern int pthread_rwlock_timedrdlock (struct __pthread_rwlock *__restrict rwlock, + const struct timespec *__restrict abstime); +# endif + +/* Acquire the rwlock *RWLOCK for writing. */ +extern int pthread_rwlock_wrlock (pthread_rwlock_t *rwlock); + +/* Try to acquire the rwlock *RWLOCK for writing. */ +extern int pthread_rwlock_trywrlock (pthread_rwlock_t *rwlock); + +# ifdef __USE_XOPEN2K +/* Acquire the rwlock *RWLOCK for writing blocking until *ABSTIME if + it is already held. */ +extern int pthread_rwlock_timedwrlock (struct __pthread_rwlock *__restrict rwlock, + const struct timespec *__restrict abstime); +# endif + +/* Release the lock held by the current thread on *RWLOCK. */ +extern int pthread_rwlock_unlock (pthread_rwlock_t *rwlock); + +#endif /* __USE_UNIX98 || __USE_XOPEN2K */ + + + +/* Cancelation. */ + +/* Register a cleanup handler. */ +extern void pthread_cleanup_push (void (*routine) (void *), void *arg); + +/* Unregister a cleanup handler. */ +extern void pthread_cleanup_pop (int execute); + +#include <bits/cancelation.h> + +#define pthread_cleanup_push(rt, rtarg) __pthread_cleanup_push(rt, rtarg) +#define pthread_cleanup_pop(execute) __pthread_cleanup_pop(execute) + +#define PTHREAD_CANCEL_DISABLE 0 +#define PTHREAD_CANCEL_ENABLE 1 + +/* Return the calling thread's cancelation state in *OLDSTATE and set + its state to STATE. */ +extern int pthread_setcancelstate (int state, int *oldstate); + +#define PTHREAD_CANCEL_DEFERRED 0 +#define PTHREAD_CANCEL_ASYNCHRONOUS 1 + +/* Return the calling thread's cancelation type in *OLDTYPE and set + its type to TYPE. */ +extern int pthread_setcanceltype (int type, int *oldtype); + +/* Value returned by pthread_join if the target thread was + canceled. */ +#define PTHREAD_CANCELED ((void *) -1) + +/* Cancel THEAD. */ +extern int pthread_cancel (pthread_t thread); + +/* Add an explicit cancelation point. */ +extern void pthread_testcancel (void); + + +/* Barriers attributes. */ + +#ifdef __USE_XOPEN2K + +#include <bits/barrier-attr.h> + +/* Initialize barrier attribute object in *ATTR to the default + values. */ +extern int pthread_barrierattr_init (pthread_barrierattr_t *attr); + +/* Destroy the barrier attribute object in *ATTR. */ +extern int pthread_barrierattr_destroy (pthread_barrierattr_t *attr); + + +/* Return the value of the process shared attribute in *ATTR in + *PSHARED. */ +extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *__restrict attr, + int *__restrict pshared); + +/* Set the value of the process shared atrribute in *ATTR to + PSHARED. */ +extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *attr, + int pshared); + + +/* Barriers. */ + +#include <bits/barrier.h> + +/* Returned by pthread_barrier_wait to exactly one thread each time a + barrier is passed. */ +#define PTHREAD_BARRIER_SERIAL_THREAD -1 + +/* Initialize barrier BARRIER. */ +extern int pthread_barrier_init (pthread_barrier_t *__restrict barrier, + const pthread_barrierattr_t *__restrict attr, + unsigned count); + +/* Destroy barrier BARRIER. */ +extern int pthread_barrier_destroy (pthread_barrier_t *barrier); + +/* Wait on barrier BARRIER. */ +extern int pthread_barrier_wait (pthread_barrier_t *barrier); + +#endif /* __USE_XOPEN2K */ + + + +/* Thread specific data. */ + +#include <bits/thread-specific.h> + +/* Create a thread specific data key in KEY visible to all threads. + On thread destruction, DESTRUCTOR shall be called with the thread + specific data associate with KEY if it is not NULL. */ +extern int pthread_key_create (pthread_key_t *key, + void (*destructor) (void *)); + +/* Delete the thread specific data key KEY. The associated destructor + function is not called. */ +extern int pthread_key_delete (pthread_key_t key); + +/* Return the caller thread's thread specific value of KEY. */ +extern void *pthread_getspecific (pthread_key_t key); + +/* Set the caller thread's thread specific value of KEY to VALUE. */ +extern int pthread_setspecific (pthread_key_t key, const void *value); + + +/* Dynamic package initialization. */ + +#include <bits/once.h> + +#define PTHREAD_ONCE_INIT __PTHREAD_ONCE_INIT + +/* Call INIT_ROUTINE if this function has never been called with + *ONCE_CONTROL, otherwise do nothing. */ +extern int pthread_once (pthread_once_t *once_control, + void (*init_routine) (void)); + + +/* Concurrency. */ + +#ifdef __USE_UNIX98 +/* Set the desired concurrency level to NEW_LEVEL. */ +extern int pthread_setconcurrency (int new_level); + +/* Get the current concurrency level. */ +extern int pthread_getconcurrency (void); +#endif + + +/* Forking. */ + +/* Register the function PREPARE to be run before the process forks, + the function PARENT to be run after a fork in the parent and the + function CHILD to be run in the child after the fork. If no + handling is desired then any of PREPARE, PARENT and CHILD may be + NULL. The prepare handles will be called in the reverse order + which they were registered and the parent and child handlers in the + order in which they were registered. */ +extern int pthread_atfork (void (*prepare) (void), void (*parent) (void), + void (*child) (void)); + + +/* Signals (should be in <signal.h>). */ + +/* Send signal SIGNO to thread THREAD. */ +extern int pthread_kill (pthread_t thread, int signo); + + +/* Time. */ + +#ifdef __USE_XOPEN2K +/* Return the thread cpu clock. */ +extern int pthread_getcpuclockid (pthread_t thread, clockid_t *clock); +#endif + + +/* Scheduling. */ + +/* Return thread THREAD's scheduling paramters. */ +extern int pthread_getschedparam (pthread_t thread, int *__restrict policy, + struct sched_param *__restrict param); + +/* Set thread THREAD's scheduling paramters. */ +extern int pthread_setschedparam (pthread_t thread, int policy, + const struct sched_param *param); + +/* Set thread THREAD's scheduling priority. */ +extern int pthread_setschedprio (pthread_t thread, int prio); + + +/* Kernel-specific interfaces. */ + +#include <bits/pthread-np.h> + + +__END_DECLS + +#endif /* pthread.h */ diff --git a/libpthread/include/pthread/pthreadtypes.h b/libpthread/include/pthread/pthreadtypes.h new file mode 100644 index 00000000..471e08ed --- /dev/null +++ b/libpthread/include/pthread/pthreadtypes.h @@ -0,0 +1,136 @@ +/* Copyright (C) 2000, 2002, 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. */ + +/* + * POSIX Threads Extension: ??? <pthreadtypes.h> + */ + +#ifndef _PTHREADTYPES_H +#define _PTHREADTYPES_H 1 + +#include <features.h> + +#define __need_clockid_t +#include <time.h> + +/* If we are in a mode where clockid_t is not automatically defined + and another header has already included <time.h> then defining + __need_clockid_t was not enough. */ +#ifndef __clockid_t_defined +# define __clockid_t_defined 1 +# include <bits/types.h> +/* Clock ID used in clock and timer functions. */ +typedef __clockid_t clockid_t; +#endif + +__BEGIN_DECLS + +#include <bits/pthread.h> +typedef __pthread_t pthread_t; + +/* Possible values for the process shared attribute. */ +enum __pthread_process_shared + { + __PTHREAD_PROCESS_PRIVATE = 0, + __PTHREAD_PROCESS_SHARED + }; + +/* Possible values for the inheritsched attribute. */ +enum __pthread_inheritsched + { + __PTHREAD_EXPLICIT_SCHED = 0, + __PTHREAD_INHERIT_SCHED + }; + +/* Possible values for the `contentionscope' attribute. */ +enum __pthread_contentionscope + { + __PTHREAD_SCOPE_SYSTEM = 0, + __PTHREAD_SCOPE_PROCESS + }; + +/* Possible values for the `detachstate' attribute. */ +enum __pthread_detachstate + { + __PTHREAD_CREATE_JOINABLE = 0, + __PTHREAD_CREATE_DETACHED + }; + +#include <bits/thread-attr.h> +typedef struct __pthread_attr pthread_attr_t; + +enum __pthread_mutex_protocol + { + __PTHREAD_PRIO_NONE= 0, + __PTHREAD_PRIO_INHERIT, + __PTHREAD_PRIO_PROTECT + }; + +enum __pthread_mutex_type + { + __PTHREAD_MUTEX_TIMED, + __PTHREAD_MUTEX_ERRORCHECK, + __PTHREAD_MUTEX_RECURSIVE + }; + +#include <bits/mutex-attr.h> +typedef struct __pthread_mutexattr pthread_mutexattr_t; + +#include <bits/mutex.h> +typedef struct __pthread_mutex pthread_mutex_t; + +#include <bits/condition-attr.h> +typedef struct __pthread_condattr pthread_condattr_t; + +#include <bits/condition.h> +typedef struct __pthread_cond pthread_cond_t; + +#ifdef __USE_XOPEN2K +# include <bits/spin-lock.h> +typedef __pthread_spinlock_t pthread_spinlock_t; +#endif /* XPG6. */ + +#if defined __USE_UNIX98 || defined __USE_XOPEN2K + +#include <bits/rwlock-attr.h> +typedef struct __pthread_rwlockattr pthread_rwlockattr_t; + +#include <bits/rwlock.h> +typedef struct __pthread_rwlock pthread_rwlock_t; + +#endif /* __USE_UNIX98 || __USE_XOPEN2K */ + +#ifdef __USE_XOPEN2K + +#include <bits/barrier-attr.h> +typedef struct __pthread_barrierattr pthread_barrierattr_t; + +#include <bits/barrier.h> +typedef struct __pthread_barrier pthread_barrier_t; + +#endif /* __USE_XOPEN2K */ + +#include <bits/thread-specific.h> +typedef __pthread_key pthread_key_t; + +#include <bits/once.h> +typedef struct __pthread_once pthread_once_t; + +__END_DECLS + +#endif /* pthreadtypes.h */ diff --git a/libpthread/include/semaphore.h b/libpthread/include/semaphore.h new file mode 100644 index 00000000..657e796e --- /dev/null +++ b/libpthread/include/semaphore.h @@ -0,0 +1,69 @@ +/* Copyright (C) 2005, 2007 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 _SEMAPHORE_H +#define _SEMAPHORE_H 1 + +#include <features.h> + +__BEGIN_DECLS + +#include <bits/semaphore.h> + +#define SEM_FAILED ((void *) 0) + +typedef struct __semaphore sem_t; + +/* Initialize semaphore *SEM with value VALUE. */ +extern int sem_init (sem_t *sem, int pshared, unsigned value); + +/* Destroy semaphore *SEM created with sem_init. */ +extern int sem_destroy (sem_t *sem); + +/* Store the value of semaphore *SEM in *VALUE. */ +extern int sem_getvalue (sem_t *__restrict sem, int *__restrict value); + +/* Perform a down operation on semaphore *SEM. */ +extern int sem_wait (sem_t *sem); + +/* Perform a down operation on semaphore *SEM if it can be done so + without blocking. */ +extern int sem_trywait (sem_t *sem); + +#ifdef __USE_XOPEN2K +/* Perform a down operation on semaphore *SEM but don't wait longer + than TIMEOUT. */ +extern int sem_timedwait (sem_t *__restrict sem, + const struct timespec *__restrict timeout); +#endif + +/* Perform an up operation on semaphore *SEM. */ +extern int sem_post (sem_t *sem); + +/* Open a named semaphore. */ +extern sem_t *sem_open (const char *name, int open_flags, ...); + +/* Close a semaphore returned by sem_open. */ +extern int sem_close (sem_t *sem); + +/* Unlink a named semaphore. */ +extern int sem_unlink (const char *name); + +__END_DECLS + +#endif /* semaphore.h */ diff --git a/libpthread/include/set-hooks.h b/libpthread/include/set-hooks.h new file mode 100644 index 00000000..9ed71b32 --- /dev/null +++ b/libpthread/include/set-hooks.h @@ -0,0 +1,72 @@ +/* Macros for using symbol sets for running lists of functions. + Copyright (C) 1994, 1995, 1997, 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 Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _SET_HOOKS_H +#define _SET_HOOKS_H 1 + +#define __need_size_t +#include <stddef.h> +// #include <sys/cdefs.h> +#define __unbounded + +#ifdef symbol_set_define +/* Define a hook variable called NAME. Functions put on this hook take + arguments described by PROTO. Use `text_set_element (NAME, FUNCTION)' + from gnu-stabs.h to add a function to the hook. */ + +# define DEFINE_HOOK(NAME, PROTO) \ + typedef void __##NAME##_hook_function_t PROTO; \ + symbol_set_define (NAME) + +# define DECLARE_HOOK(NAME, PROTO) \ + typedef void __##NAME##_hook_function_t PROTO;\ + symbol_set_declare (NAME) + +/* Run all the functions hooked on the set called NAME. + Each function is called like this: `function ARGS'. */ + +# define RUN_HOOK(NAME, ARGS) \ +do { \ + void *const *__unbounded ptr; \ + for (ptr = symbol_set_first_element (NAME); \ + ! symbol_set_end_p (NAME, ptr); ++ptr) \ + (*(__##NAME##_hook_function_t *) *ptr) ARGS; \ +} while (0) + +/* Define a hook variable with NAME and PROTO, and a function called RUNNER + which calls each function on the hook in turn, with ARGS. */ + +# define DEFINE_HOOK_RUNNER(name, runner, proto, args) \ +DEFINE_HOOK (name, proto); \ +extern void runner proto; void runner proto { RUN_HOOK (name, args); } + +#else + +/* The system does not provide necessary support for this. */ +# define DEFINE_HOOK(NAME, PROTO) + +# define DECLARE_HOOK(NAME, PROTO) + +# define RUN_HOOK(NAME, ARGS) + +# define DEFINE_HOOK_RUNNER(name, runner, proto, args) + +#endif + +#endif /* set-hooks.h */ diff --git a/libpthread.a b/libpthread/libpthread.a index d0e689e9..d0e689e9 100644 --- a/libpthread.a +++ b/libpthread/libpthread.a diff --git a/libpthread_pic.a b/libpthread/libpthread_pic.a index 5673b4e7..5673b4e7 100644 --- a/libpthread_pic.a +++ b/libpthread/libpthread_pic.a diff --git a/lockfile.c b/libpthread/lockfile.c index 040cbfb4..040cbfb4 100644 --- a/lockfile.c +++ b/libpthread/lockfile.c diff --git a/not-in-libc.h b/libpthread/not-in-libc.h index 516d4d13..516d4d13 100644 --- a/not-in-libc.h +++ b/libpthread/not-in-libc.h diff --git a/pthread/Versions b/libpthread/pthread/Versions index e4b4e8bf..e4b4e8bf 100644 --- a/pthread/Versions +++ b/libpthread/pthread/Versions diff --git a/pthread/cthreads-compat.c b/libpthread/pthread/cthreads-compat.c index e0536ef2..e0536ef2 100644 --- a/pthread/cthreads-compat.c +++ b/libpthread/pthread/cthreads-compat.c diff --git a/pthread/pt-alloc.c b/libpthread/pthread/pt-alloc.c index 6af2da92..6af2da92 100644 --- a/pthread/pt-alloc.c +++ b/libpthread/pthread/pt-alloc.c diff --git a/pthread/pt-cancel.c b/libpthread/pthread/pt-cancel.c index d19c557d..d19c557d 100644 --- a/pthread/pt-cancel.c +++ b/libpthread/pthread/pt-cancel.c diff --git a/pthread/pt-cleanup.c b/libpthread/pthread/pt-cleanup.c index 58865aa4..58865aa4 100644 --- a/pthread/pt-cleanup.c +++ b/libpthread/pthread/pt-cleanup.c diff --git a/pthread/pt-create.c b/libpthread/pthread/pt-create.c index 8f62b78e..8f62b78e 100644 --- a/pthread/pt-create.c +++ b/libpthread/pthread/pt-create.c diff --git a/pthread/pt-dealloc.c b/libpthread/pthread/pt-dealloc.c index 92fe1fda..92fe1fda 100644 --- a/pthread/pt-dealloc.c +++ b/libpthread/pthread/pt-dealloc.c diff --git a/pthread/pt-detach.c b/libpthread/pthread/pt-detach.c index 1e42c452..1e42c452 100644 --- a/pthread/pt-detach.c +++ b/libpthread/pthread/pt-detach.c diff --git a/pthread/pt-exit.c b/libpthread/pthread/pt-exit.c index 5fe0ba86..5fe0ba86 100644 --- a/pthread/pt-exit.c +++ b/libpthread/pthread/pt-exit.c diff --git a/pthread/pt-getattr.c b/libpthread/pthread/pt-getattr.c index 24599c6e..24599c6e 100644 --- a/pthread/pt-getattr.c +++ b/libpthread/pthread/pt-getattr.c diff --git a/pthread/pt-initialize.c b/libpthread/pthread/pt-initialize.c index cf32b8b5..cf32b8b5 100644 --- a/pthread/pt-initialize.c +++ b/libpthread/pthread/pt-initialize.c diff --git a/pthread/pt-internal.h b/libpthread/pthread/pt-internal.h index cb441d09..cb441d09 100644 --- a/pthread/pt-internal.h +++ b/libpthread/pthread/pt-internal.h diff --git a/pthread/pt-join.c b/libpthread/pthread/pt-join.c index 153058b5..153058b5 100644 --- a/pthread/pt-join.c +++ b/libpthread/pthread/pt-join.c diff --git a/pthread/pt-self.c b/libpthread/pthread/pt-self.c index 49768643..49768643 100644 --- a/pthread/pt-self.c +++ b/libpthread/pthread/pt-self.c diff --git a/pthread/pt-setcancelstate.c b/libpthread/pthread/pt-setcancelstate.c index ded58922..ded58922 100644 --- a/pthread/pt-setcancelstate.c +++ b/libpthread/pthread/pt-setcancelstate.c diff --git a/pthread/pt-setcanceltype.c b/libpthread/pthread/pt-setcanceltype.c index 9511c991..9511c991 100644 --- a/pthread/pt-setcanceltype.c +++ b/libpthread/pthread/pt-setcanceltype.c diff --git a/pthread/pt-sigmask.c b/libpthread/pthread/pt-sigmask.c index 1b53873e..1b53873e 100644 --- a/pthread/pt-sigmask.c +++ b/libpthread/pthread/pt-sigmask.c diff --git a/pthread/pt-spin-inlines.c b/libpthread/pthread/pt-spin-inlines.c index cfb21dd3..cfb21dd3 100644 --- a/pthread/pt-spin-inlines.c +++ b/libpthread/pthread/pt-spin-inlines.c diff --git a/pthread/pt-testcancel.c b/libpthread/pthread/pt-testcancel.c index 01f1ac9c..01f1ac9c 100644 --- a/pthread/pt-testcancel.c +++ b/libpthread/pthread/pt-testcancel.c diff --git a/signal/README b/libpthread/signal/README index 5487e2e3..5487e2e3 100644 --- a/signal/README +++ b/libpthread/signal/README diff --git a/signal/TODO b/libpthread/signal/TODO index 1148abb3..1148abb3 100644 --- a/signal/TODO +++ b/libpthread/signal/TODO diff --git a/signal/kill.c b/libpthread/signal/kill.c index 27c9c32a..27c9c32a 100644 --- a/signal/kill.c +++ b/libpthread/signal/kill.c diff --git a/signal/pt-kill-siginfo-np.c b/libpthread/signal/pt-kill-siginfo-np.c index 9bdf6cc4..9bdf6cc4 100644 --- a/signal/pt-kill-siginfo-np.c +++ b/libpthread/signal/pt-kill-siginfo-np.c diff --git a/signal/sig-internal.c b/libpthread/signal/sig-internal.c index f73f38b4..f73f38b4 100644 --- a/signal/sig-internal.c +++ b/libpthread/signal/sig-internal.c diff --git a/signal/sig-internal.h b/libpthread/signal/sig-internal.h index 6c86c796..6c86c796 100644 --- a/signal/sig-internal.h +++ b/libpthread/signal/sig-internal.h diff --git a/signal/sigaction.c b/libpthread/signal/sigaction.c index 0126c99d..0126c99d 100644 --- a/signal/sigaction.c +++ b/libpthread/signal/sigaction.c diff --git a/signal/sigaltstack.c b/libpthread/signal/sigaltstack.c index 8334811a..8334811a 100644 --- a/signal/sigaltstack.c +++ b/libpthread/signal/sigaltstack.c diff --git a/signal/signal-dispatch.c b/libpthread/signal/signal-dispatch.c index 40440b70..40440b70 100644 --- a/signal/signal-dispatch.c +++ b/libpthread/signal/signal-dispatch.c diff --git a/signal/signal.h b/libpthread/signal/signal.h index a33d995c..a33d995c 100644 --- a/signal/signal.h +++ b/libpthread/signal/signal.h diff --git a/signal/sigpending.c b/libpthread/signal/sigpending.c index 609b55d6..609b55d6 100644 --- a/signal/sigpending.c +++ b/libpthread/signal/sigpending.c diff --git a/signal/sigsuspend.c b/libpthread/signal/sigsuspend.c index 73cf12a1..73cf12a1 100644 --- a/signal/sigsuspend.c +++ b/libpthread/signal/sigsuspend.c diff --git a/signal/sigtimedwait.c b/libpthread/signal/sigtimedwait.c index 52cd0176..52cd0176 100644 --- a/signal/sigtimedwait.c +++ b/libpthread/signal/sigtimedwait.c diff --git a/signal/sigwaiter.c b/libpthread/signal/sigwaiter.c index 8d041ac1..8d041ac1 100644 --- a/signal/sigwaiter.c +++ b/libpthread/signal/sigwaiter.c diff --git a/signal/sigwaitinfo.c b/libpthread/signal/sigwaitinfo.c index 1b47079e..1b47079e 100644 --- a/signal/sigwaitinfo.c +++ b/libpthread/signal/sigwaitinfo.c diff --git a/sysdeps/generic/bits/barrier-attr.h b/libpthread/sysdeps/generic/bits/barrier-attr.h index a9900b71..a9900b71 100644 --- a/sysdeps/generic/bits/barrier-attr.h +++ b/libpthread/sysdeps/generic/bits/barrier-attr.h diff --git a/sysdeps/generic/bits/barrier.h b/libpthread/sysdeps/generic/bits/barrier.h index 5e559312..5e559312 100644 --- a/sysdeps/generic/bits/barrier.h +++ b/libpthread/sysdeps/generic/bits/barrier.h diff --git a/sysdeps/generic/bits/cancelation.h b/libpthread/sysdeps/generic/bits/cancelation.h index f446d595..f446d595 100644 --- a/sysdeps/generic/bits/cancelation.h +++ b/libpthread/sysdeps/generic/bits/cancelation.h diff --git a/sysdeps/generic/bits/condition-attr.h b/libpthread/sysdeps/generic/bits/condition-attr.h index a1311286..a1311286 100644 --- a/sysdeps/generic/bits/condition-attr.h +++ b/libpthread/sysdeps/generic/bits/condition-attr.h diff --git a/sysdeps/generic/bits/condition.h b/libpthread/sysdeps/generic/bits/condition.h index bf13adab..bf13adab 100644 --- a/sysdeps/generic/bits/condition.h +++ b/libpthread/sysdeps/generic/bits/condition.h diff --git a/sysdeps/generic/bits/mutex-attr.h b/libpthread/sysdeps/generic/bits/mutex-attr.h index 9161cdab..9161cdab 100644 --- a/sysdeps/generic/bits/mutex-attr.h +++ b/libpthread/sysdeps/generic/bits/mutex-attr.h diff --git a/sysdeps/generic/bits/mutex.h b/libpthread/sysdeps/generic/bits/mutex.h index 86068cf5..86068cf5 100644 --- a/sysdeps/generic/bits/mutex.h +++ b/libpthread/sysdeps/generic/bits/mutex.h diff --git a/sysdeps/generic/bits/once.h b/libpthread/sysdeps/generic/bits/once.h index f4985d6f..f4985d6f 100644 --- a/sysdeps/generic/bits/once.h +++ b/libpthread/sysdeps/generic/bits/once.h diff --git a/sysdeps/generic/bits/pthread-np.h b/libpthread/sysdeps/generic/bits/pthread-np.h index d5ddbb05..d5ddbb05 100644 --- a/sysdeps/generic/bits/pthread-np.h +++ b/libpthread/sysdeps/generic/bits/pthread-np.h diff --git a/sysdeps/generic/bits/pthread.h b/libpthread/sysdeps/generic/bits/pthread.h index 80e6b096..80e6b096 100644 --- a/sysdeps/generic/bits/pthread.h +++ b/libpthread/sysdeps/generic/bits/pthread.h diff --git a/sysdeps/generic/bits/pthreadtypes.h b/libpthread/sysdeps/generic/bits/pthreadtypes.h index e5cbfd2a..e5cbfd2a 100644 --- a/sysdeps/generic/bits/pthreadtypes.h +++ b/libpthread/sysdeps/generic/bits/pthreadtypes.h diff --git a/sysdeps/generic/bits/rwlock-attr.h b/libpthread/sysdeps/generic/bits/rwlock-attr.h index dba99f1d..dba99f1d 100644 --- a/sysdeps/generic/bits/rwlock-attr.h +++ b/libpthread/sysdeps/generic/bits/rwlock-attr.h diff --git a/sysdeps/generic/bits/rwlock.h b/libpthread/sysdeps/generic/bits/rwlock.h index af6b1c86..af6b1c86 100644 --- a/sysdeps/generic/bits/rwlock.h +++ b/libpthread/sysdeps/generic/bits/rwlock.h diff --git a/sysdeps/generic/bits/semaphore.h b/libpthread/sysdeps/generic/bits/semaphore.h index 5e987c15..5e987c15 100644 --- a/sysdeps/generic/bits/semaphore.h +++ b/libpthread/sysdeps/generic/bits/semaphore.h diff --git a/sysdeps/generic/bits/thread-attr.h b/libpthread/sysdeps/generic/bits/thread-attr.h index c3a93fde..c3a93fde 100644 --- a/sysdeps/generic/bits/thread-attr.h +++ b/libpthread/sysdeps/generic/bits/thread-attr.h diff --git a/sysdeps/generic/bits/thread-specific.h b/libpthread/sysdeps/generic/bits/thread-specific.h index b42d99e7..b42d99e7 100644 --- a/sysdeps/generic/bits/thread-specific.h +++ b/libpthread/sysdeps/generic/bits/thread-specific.h diff --git a/sysdeps/generic/killpg.c b/libpthread/sysdeps/generic/killpg.c index 7f7ed87d..7f7ed87d 100644 --- a/sysdeps/generic/killpg.c +++ b/libpthread/sysdeps/generic/killpg.c diff --git a/sysdeps/generic/pt-atfork.c b/libpthread/sysdeps/generic/pt-atfork.c index 32e1e78c..32e1e78c 100644 --- a/sysdeps/generic/pt-atfork.c +++ b/libpthread/sysdeps/generic/pt-atfork.c diff --git a/sysdeps/generic/pt-attr-destroy.c b/libpthread/sysdeps/generic/pt-attr-destroy.c index c4b9aa54..c4b9aa54 100644 --- a/sysdeps/generic/pt-attr-destroy.c +++ b/libpthread/sysdeps/generic/pt-attr-destroy.c diff --git a/sysdeps/generic/pt-attr-getdetachstate.c b/libpthread/sysdeps/generic/pt-attr-getdetachstate.c index be406f1d..be406f1d 100644 --- a/sysdeps/generic/pt-attr-getdetachstate.c +++ b/libpthread/sysdeps/generic/pt-attr-getdetachstate.c diff --git a/sysdeps/generic/pt-attr-getguardsize.c b/libpthread/sysdeps/generic/pt-attr-getguardsize.c index c1d9f13e..c1d9f13e 100644 --- a/sysdeps/generic/pt-attr-getguardsize.c +++ b/libpthread/sysdeps/generic/pt-attr-getguardsize.c diff --git a/sysdeps/generic/pt-attr-getinheritsched.c b/libpthread/sysdeps/generic/pt-attr-getinheritsched.c index cca4e3d7..cca4e3d7 100644 --- a/sysdeps/generic/pt-attr-getinheritsched.c +++ b/libpthread/sysdeps/generic/pt-attr-getinheritsched.c diff --git a/sysdeps/generic/pt-attr-getschedparam.c b/libpthread/sysdeps/generic/pt-attr-getschedparam.c index 25afebd0..25afebd0 100644 --- a/sysdeps/generic/pt-attr-getschedparam.c +++ b/libpthread/sysdeps/generic/pt-attr-getschedparam.c diff --git a/sysdeps/generic/pt-attr-getschedpolicy.c b/libpthread/sysdeps/generic/pt-attr-getschedpolicy.c index 4349a238..4349a238 100644 --- a/sysdeps/generic/pt-attr-getschedpolicy.c +++ b/libpthread/sysdeps/generic/pt-attr-getschedpolicy.c diff --git a/sysdeps/generic/pt-attr-getscope.c b/libpthread/sysdeps/generic/pt-attr-getscope.c index 97198fa5..97198fa5 100644 --- a/sysdeps/generic/pt-attr-getscope.c +++ b/libpthread/sysdeps/generic/pt-attr-getscope.c diff --git a/sysdeps/generic/pt-attr-getstack.c b/libpthread/sysdeps/generic/pt-attr-getstack.c index 7beb79f0..7beb79f0 100644 --- a/sysdeps/generic/pt-attr-getstack.c +++ b/libpthread/sysdeps/generic/pt-attr-getstack.c diff --git a/sysdeps/generic/pt-attr-getstackaddr.c b/libpthread/sysdeps/generic/pt-attr-getstackaddr.c index d43eeff7..d43eeff7 100644 --- a/sysdeps/generic/pt-attr-getstackaddr.c +++ b/libpthread/sysdeps/generic/pt-attr-getstackaddr.c diff --git a/sysdeps/generic/pt-attr-getstacksize.c b/libpthread/sysdeps/generic/pt-attr-getstacksize.c index c1bc6617..c1bc6617 100644 --- a/sysdeps/generic/pt-attr-getstacksize.c +++ b/libpthread/sysdeps/generic/pt-attr-getstacksize.c diff --git a/sysdeps/generic/pt-attr-init.c b/libpthread/sysdeps/generic/pt-attr-init.c index 6a930e30..6a930e30 100644 --- a/sysdeps/generic/pt-attr-init.c +++ b/libpthread/sysdeps/generic/pt-attr-init.c diff --git a/sysdeps/generic/pt-attr-setdetachstate.c b/libpthread/sysdeps/generic/pt-attr-setdetachstate.c index 688ba5d6..688ba5d6 100644 --- a/sysdeps/generic/pt-attr-setdetachstate.c +++ b/libpthread/sysdeps/generic/pt-attr-setdetachstate.c diff --git a/sysdeps/generic/pt-attr-setguardsize.c b/libpthread/sysdeps/generic/pt-attr-setguardsize.c index b2ba0f0f..b2ba0f0f 100644 --- a/sysdeps/generic/pt-attr-setguardsize.c +++ b/libpthread/sysdeps/generic/pt-attr-setguardsize.c diff --git a/sysdeps/generic/pt-attr-setinheritsched.c b/libpthread/sysdeps/generic/pt-attr-setinheritsched.c index e9012c58..e9012c58 100644 --- a/sysdeps/generic/pt-attr-setinheritsched.c +++ b/libpthread/sysdeps/generic/pt-attr-setinheritsched.c diff --git a/sysdeps/generic/pt-attr-setschedparam.c b/libpthread/sysdeps/generic/pt-attr-setschedparam.c index 18a575ec..18a575ec 100644 --- a/sysdeps/generic/pt-attr-setschedparam.c +++ b/libpthread/sysdeps/generic/pt-attr-setschedparam.c diff --git a/sysdeps/generic/pt-attr-setschedpolicy.c b/libpthread/sysdeps/generic/pt-attr-setschedpolicy.c index e481d04c..e481d04c 100644 --- a/sysdeps/generic/pt-attr-setschedpolicy.c +++ b/libpthread/sysdeps/generic/pt-attr-setschedpolicy.c diff --git a/sysdeps/generic/pt-attr-setscope.c b/libpthread/sysdeps/generic/pt-attr-setscope.c index c74a4f67..c74a4f67 100644 --- a/sysdeps/generic/pt-attr-setscope.c +++ b/libpthread/sysdeps/generic/pt-attr-setscope.c diff --git a/sysdeps/generic/pt-attr-setstack.c b/libpthread/sysdeps/generic/pt-attr-setstack.c index 360d27a3..360d27a3 100644 --- a/sysdeps/generic/pt-attr-setstack.c +++ b/libpthread/sysdeps/generic/pt-attr-setstack.c diff --git a/sysdeps/generic/pt-attr-setstackaddr.c b/libpthread/sysdeps/generic/pt-attr-setstackaddr.c index 431f2d0c..431f2d0c 100644 --- a/sysdeps/generic/pt-attr-setstackaddr.c +++ b/libpthread/sysdeps/generic/pt-attr-setstackaddr.c diff --git a/sysdeps/generic/pt-attr-setstacksize.c b/libpthread/sysdeps/generic/pt-attr-setstacksize.c index d0e51022..d0e51022 100644 --- a/sysdeps/generic/pt-attr-setstacksize.c +++ b/libpthread/sysdeps/generic/pt-attr-setstacksize.c diff --git a/sysdeps/generic/pt-attr.c b/libpthread/sysdeps/generic/pt-attr.c index 769f292a..769f292a 100644 --- a/sysdeps/generic/pt-attr.c +++ b/libpthread/sysdeps/generic/pt-attr.c diff --git a/sysdeps/generic/pt-barrier-destroy.c b/libpthread/sysdeps/generic/pt-barrier-destroy.c index 01b938b4..01b938b4 100644 --- a/sysdeps/generic/pt-barrier-destroy.c +++ b/libpthread/sysdeps/generic/pt-barrier-destroy.c diff --git a/sysdeps/generic/pt-barrier-init.c b/libpthread/sysdeps/generic/pt-barrier-init.c index c42b3bb6..c42b3bb6 100644 --- a/sysdeps/generic/pt-barrier-init.c +++ b/libpthread/sysdeps/generic/pt-barrier-init.c diff --git a/sysdeps/generic/pt-barrier-wait.c b/libpthread/sysdeps/generic/pt-barrier-wait.c index f1de250a..f1de250a 100644 --- a/sysdeps/generic/pt-barrier-wait.c +++ b/libpthread/sysdeps/generic/pt-barrier-wait.c diff --git a/sysdeps/generic/pt-barrier.c b/libpthread/sysdeps/generic/pt-barrier.c index d772719f..d772719f 100644 --- a/sysdeps/generic/pt-barrier.c +++ b/libpthread/sysdeps/generic/pt-barrier.c diff --git a/sysdeps/generic/pt-barrierattr-destroy.c b/libpthread/sysdeps/generic/pt-barrierattr-destroy.c index eb396347..eb396347 100644 --- a/sysdeps/generic/pt-barrierattr-destroy.c +++ b/libpthread/sysdeps/generic/pt-barrierattr-destroy.c diff --git a/sysdeps/generic/pt-barrierattr-getpshared.c b/libpthread/sysdeps/generic/pt-barrierattr-getpshared.c index ed2cdd24..ed2cdd24 100644 --- a/sysdeps/generic/pt-barrierattr-getpshared.c +++ b/libpthread/sysdeps/generic/pt-barrierattr-getpshared.c diff --git a/sysdeps/generic/pt-barrierattr-init.c b/libpthread/sysdeps/generic/pt-barrierattr-init.c index 45f16cc8..45f16cc8 100644 --- a/sysdeps/generic/pt-barrierattr-init.c +++ b/libpthread/sysdeps/generic/pt-barrierattr-init.c diff --git a/sysdeps/generic/pt-barrierattr-setpshared.c b/libpthread/sysdeps/generic/pt-barrierattr-setpshared.c index 84ef2df8..84ef2df8 100644 --- a/sysdeps/generic/pt-barrierattr-setpshared.c +++ b/libpthread/sysdeps/generic/pt-barrierattr-setpshared.c diff --git a/sysdeps/generic/pt-cond-brdcast.c b/libpthread/sysdeps/generic/pt-cond-brdcast.c index 3f55e33e..3f55e33e 100644 --- a/sysdeps/generic/pt-cond-brdcast.c +++ b/libpthread/sysdeps/generic/pt-cond-brdcast.c diff --git a/sysdeps/generic/pt-cond-destroy.c b/libpthread/sysdeps/generic/pt-cond-destroy.c index eba47784..eba47784 100644 --- a/sysdeps/generic/pt-cond-destroy.c +++ b/libpthread/sysdeps/generic/pt-cond-destroy.c diff --git a/sysdeps/generic/pt-cond-init.c b/libpthread/sysdeps/generic/pt-cond-init.c index b9e9fb7a..b9e9fb7a 100644 --- a/sysdeps/generic/pt-cond-init.c +++ b/libpthread/sysdeps/generic/pt-cond-init.c diff --git a/sysdeps/generic/pt-cond-signal.c b/libpthread/sysdeps/generic/pt-cond-signal.c index c5e1bc1d..c5e1bc1d 100644 --- a/sysdeps/generic/pt-cond-signal.c +++ b/libpthread/sysdeps/generic/pt-cond-signal.c diff --git a/sysdeps/generic/pt-cond-timedwait.c b/libpthread/sysdeps/generic/pt-cond-timedwait.c index c10bdb30..c10bdb30 100644 --- a/sysdeps/generic/pt-cond-timedwait.c +++ b/libpthread/sysdeps/generic/pt-cond-timedwait.c diff --git a/sysdeps/generic/pt-cond-wait.c b/libpthread/sysdeps/generic/pt-cond-wait.c index a03476df..a03476df 100644 --- a/sysdeps/generic/pt-cond-wait.c +++ b/libpthread/sysdeps/generic/pt-cond-wait.c diff --git a/sysdeps/generic/pt-cond.c b/libpthread/sysdeps/generic/pt-cond.c index 033e767f..033e767f 100644 --- a/sysdeps/generic/pt-cond.c +++ b/libpthread/sysdeps/generic/pt-cond.c diff --git a/sysdeps/generic/pt-condattr-destroy.c b/libpthread/sysdeps/generic/pt-condattr-destroy.c index c8fd71b9..c8fd71b9 100644 --- a/sysdeps/generic/pt-condattr-destroy.c +++ b/libpthread/sysdeps/generic/pt-condattr-destroy.c diff --git a/sysdeps/generic/pt-condattr-getclock.c b/libpthread/sysdeps/generic/pt-condattr-getclock.c index 5b9f8893..5b9f8893 100644 --- a/sysdeps/generic/pt-condattr-getclock.c +++ b/libpthread/sysdeps/generic/pt-condattr-getclock.c diff --git a/sysdeps/generic/pt-condattr-getpshared.c b/libpthread/sysdeps/generic/pt-condattr-getpshared.c index c072a507..c072a507 100644 --- a/sysdeps/generic/pt-condattr-getpshared.c +++ b/libpthread/sysdeps/generic/pt-condattr-getpshared.c diff --git a/sysdeps/generic/pt-condattr-init.c b/libpthread/sysdeps/generic/pt-condattr-init.c index cf9e1989..cf9e1989 100644 --- a/sysdeps/generic/pt-condattr-init.c +++ b/libpthread/sysdeps/generic/pt-condattr-init.c diff --git a/sysdeps/generic/pt-condattr-setclock.c b/libpthread/sysdeps/generic/pt-condattr-setclock.c index 984c17e2..984c17e2 100644 --- a/sysdeps/generic/pt-condattr-setclock.c +++ b/libpthread/sysdeps/generic/pt-condattr-setclock.c diff --git a/sysdeps/generic/pt-condattr-setpshared.c b/libpthread/sysdeps/generic/pt-condattr-setpshared.c index b9f0af83..b9f0af83 100644 --- a/sysdeps/generic/pt-condattr-setpshared.c +++ b/libpthread/sysdeps/generic/pt-condattr-setpshared.c diff --git a/sysdeps/generic/pt-destroy-specific.c b/libpthread/sysdeps/generic/pt-destroy-specific.c index b627f872..b627f872 100644 --- a/sysdeps/generic/pt-destroy-specific.c +++ b/libpthread/sysdeps/generic/pt-destroy-specific.c diff --git a/sysdeps/generic/pt-equal.c b/libpthread/sysdeps/generic/pt-equal.c index 8fbc519c..8fbc519c 100644 --- a/sysdeps/generic/pt-equal.c +++ b/libpthread/sysdeps/generic/pt-equal.c diff --git a/sysdeps/generic/pt-getconcurrency.c b/libpthread/sysdeps/generic/pt-getconcurrency.c index b55c8eef..b55c8eef 100644 --- a/sysdeps/generic/pt-getconcurrency.c +++ b/libpthread/sysdeps/generic/pt-getconcurrency.c diff --git a/sysdeps/generic/pt-getcpuclockid.c b/libpthread/sysdeps/generic/pt-getcpuclockid.c index 81f6aabd..81f6aabd 100644 --- a/sysdeps/generic/pt-getcpuclockid.c +++ b/libpthread/sysdeps/generic/pt-getcpuclockid.c diff --git a/sysdeps/generic/pt-getschedparam.c b/libpthread/sysdeps/generic/pt-getschedparam.c index c128d02e..c128d02e 100644 --- a/sysdeps/generic/pt-getschedparam.c +++ b/libpthread/sysdeps/generic/pt-getschedparam.c diff --git a/sysdeps/generic/pt-getspecific.c b/libpthread/sysdeps/generic/pt-getspecific.c index 2a7c4a9e..2a7c4a9e 100644 --- a/sysdeps/generic/pt-getspecific.c +++ b/libpthread/sysdeps/generic/pt-getspecific.c diff --git a/sysdeps/generic/pt-init-specific.c b/libpthread/sysdeps/generic/pt-init-specific.c index 00744fb6..00744fb6 100644 --- a/sysdeps/generic/pt-init-specific.c +++ b/libpthread/sysdeps/generic/pt-init-specific.c diff --git a/sysdeps/generic/pt-key-create.c b/libpthread/sysdeps/generic/pt-key-create.c index 7ef4b991..7ef4b991 100644 --- a/sysdeps/generic/pt-key-create.c +++ b/libpthread/sysdeps/generic/pt-key-create.c diff --git a/sysdeps/generic/pt-key-delete.c b/libpthread/sysdeps/generic/pt-key-delete.c index 6c86f8e2..6c86f8e2 100644 --- a/sysdeps/generic/pt-key-delete.c +++ b/libpthread/sysdeps/generic/pt-key-delete.c diff --git a/sysdeps/generic/pt-key.h b/libpthread/sysdeps/generic/pt-key.h index 544eb20f..544eb20f 100644 --- a/sysdeps/generic/pt-key.h +++ b/libpthread/sysdeps/generic/pt-key.h diff --git a/sysdeps/generic/pt-kill.c b/libpthread/sysdeps/generic/pt-kill.c index 0dfac344..0dfac344 100644 --- a/sysdeps/generic/pt-kill.c +++ b/libpthread/sysdeps/generic/pt-kill.c diff --git a/sysdeps/generic/pt-mutex-destroy.c b/libpthread/sysdeps/generic/pt-mutex-destroy.c index b0ca00f7..b0ca00f7 100644 --- a/sysdeps/generic/pt-mutex-destroy.c +++ b/libpthread/sysdeps/generic/pt-mutex-destroy.c diff --git a/sysdeps/generic/pt-mutex-getprioceiling.c b/libpthread/sysdeps/generic/pt-mutex-getprioceiling.c index eb51639b..eb51639b 100644 --- a/sysdeps/generic/pt-mutex-getprioceiling.c +++ b/libpthread/sysdeps/generic/pt-mutex-getprioceiling.c diff --git a/sysdeps/generic/pt-mutex-init.c b/libpthread/sysdeps/generic/pt-mutex-init.c index a818fe3a..a818fe3a 100644 --- a/sysdeps/generic/pt-mutex-init.c +++ b/libpthread/sysdeps/generic/pt-mutex-init.c diff --git a/sysdeps/generic/pt-mutex-lock.c b/libpthread/sysdeps/generic/pt-mutex-lock.c index 528e593f..528e593f 100644 --- a/sysdeps/generic/pt-mutex-lock.c +++ b/libpthread/sysdeps/generic/pt-mutex-lock.c diff --git a/sysdeps/generic/pt-mutex-setprioceiling.c b/libpthread/sysdeps/generic/pt-mutex-setprioceiling.c index 9fa8e50d..9fa8e50d 100644 --- a/sysdeps/generic/pt-mutex-setprioceiling.c +++ b/libpthread/sysdeps/generic/pt-mutex-setprioceiling.c diff --git a/sysdeps/generic/pt-mutex-timedlock.c b/libpthread/sysdeps/generic/pt-mutex-timedlock.c index ee432192..ee432192 100644 --- a/sysdeps/generic/pt-mutex-timedlock.c +++ b/libpthread/sysdeps/generic/pt-mutex-timedlock.c diff --git a/sysdeps/generic/pt-mutex-transfer-np.c b/libpthread/sysdeps/generic/pt-mutex-transfer-np.c index 7796ac4f..7796ac4f 100644 --- a/sysdeps/generic/pt-mutex-transfer-np.c +++ b/libpthread/sysdeps/generic/pt-mutex-transfer-np.c diff --git a/sysdeps/generic/pt-mutex-trylock.c b/libpthread/sysdeps/generic/pt-mutex-trylock.c index 5264dc7b..5264dc7b 100644 --- a/sysdeps/generic/pt-mutex-trylock.c +++ b/libpthread/sysdeps/generic/pt-mutex-trylock.c diff --git a/sysdeps/generic/pt-mutex-unlock.c b/libpthread/sysdeps/generic/pt-mutex-unlock.c index 7645fd4c..7645fd4c 100644 --- a/sysdeps/generic/pt-mutex-unlock.c +++ b/libpthread/sysdeps/generic/pt-mutex-unlock.c diff --git a/sysdeps/generic/pt-mutexattr-destroy.c b/libpthread/sysdeps/generic/pt-mutexattr-destroy.c index fe7e95d2..fe7e95d2 100644 --- a/sysdeps/generic/pt-mutexattr-destroy.c +++ b/libpthread/sysdeps/generic/pt-mutexattr-destroy.c diff --git a/sysdeps/generic/pt-mutexattr-getprioceiling.c b/libpthread/sysdeps/generic/pt-mutexattr-getprioceiling.c index d03d7192..d03d7192 100644 --- a/sysdeps/generic/pt-mutexattr-getprioceiling.c +++ b/libpthread/sysdeps/generic/pt-mutexattr-getprioceiling.c diff --git a/sysdeps/generic/pt-mutexattr-getprotocol.c b/libpthread/sysdeps/generic/pt-mutexattr-getprotocol.c index d75021a3..d75021a3 100644 --- a/sysdeps/generic/pt-mutexattr-getprotocol.c +++ b/libpthread/sysdeps/generic/pt-mutexattr-getprotocol.c diff --git a/sysdeps/generic/pt-mutexattr-getpshared.c b/libpthread/sysdeps/generic/pt-mutexattr-getpshared.c index 0dad13b8..0dad13b8 100644 --- a/sysdeps/generic/pt-mutexattr-getpshared.c +++ b/libpthread/sysdeps/generic/pt-mutexattr-getpshared.c diff --git a/sysdeps/generic/pt-mutexattr-gettype.c b/libpthread/sysdeps/generic/pt-mutexattr-gettype.c index ff2caea4..ff2caea4 100644 --- a/sysdeps/generic/pt-mutexattr-gettype.c +++ b/libpthread/sysdeps/generic/pt-mutexattr-gettype.c diff --git a/sysdeps/generic/pt-mutexattr-init.c b/libpthread/sysdeps/generic/pt-mutexattr-init.c index 2f23673c..2f23673c 100644 --- a/sysdeps/generic/pt-mutexattr-init.c +++ b/libpthread/sysdeps/generic/pt-mutexattr-init.c diff --git a/sysdeps/generic/pt-mutexattr-setprioceiling.c b/libpthread/sysdeps/generic/pt-mutexattr-setprioceiling.c index a9bbd327..a9bbd327 100644 --- a/sysdeps/generic/pt-mutexattr-setprioceiling.c +++ b/libpthread/sysdeps/generic/pt-mutexattr-setprioceiling.c diff --git a/sysdeps/generic/pt-mutexattr-setprotocol.c b/libpthread/sysdeps/generic/pt-mutexattr-setprotocol.c index 9a0d1b1f..9a0d1b1f 100644 --- a/sysdeps/generic/pt-mutexattr-setprotocol.c +++ b/libpthread/sysdeps/generic/pt-mutexattr-setprotocol.c diff --git a/sysdeps/generic/pt-mutexattr-setpshared.c b/libpthread/sysdeps/generic/pt-mutexattr-setpshared.c index bcbc4d91..bcbc4d91 100644 --- a/sysdeps/generic/pt-mutexattr-setpshared.c +++ b/libpthread/sysdeps/generic/pt-mutexattr-setpshared.c diff --git a/sysdeps/generic/pt-mutexattr-settype.c b/libpthread/sysdeps/generic/pt-mutexattr-settype.c index e7ae213a..e7ae213a 100644 --- a/sysdeps/generic/pt-mutexattr-settype.c +++ b/libpthread/sysdeps/generic/pt-mutexattr-settype.c diff --git a/sysdeps/generic/pt-mutexattr.c b/libpthread/sysdeps/generic/pt-mutexattr.c index d80a7d74..d80a7d74 100644 --- a/sysdeps/generic/pt-mutexattr.c +++ b/libpthread/sysdeps/generic/pt-mutexattr.c diff --git a/sysdeps/generic/pt-once.c b/libpthread/sysdeps/generic/pt-once.c index 5be5e484..5be5e484 100644 --- a/sysdeps/generic/pt-once.c +++ b/libpthread/sysdeps/generic/pt-once.c diff --git a/sysdeps/generic/pt-rwlock-attr.c b/libpthread/sysdeps/generic/pt-rwlock-attr.c index 1587feef..1587feef 100644 --- a/sysdeps/generic/pt-rwlock-attr.c +++ b/libpthread/sysdeps/generic/pt-rwlock-attr.c diff --git a/sysdeps/generic/pt-rwlock-destroy.c b/libpthread/sysdeps/generic/pt-rwlock-destroy.c index 045eebd8..045eebd8 100644 --- a/sysdeps/generic/pt-rwlock-destroy.c +++ b/libpthread/sysdeps/generic/pt-rwlock-destroy.c diff --git a/sysdeps/generic/pt-rwlock-init.c b/libpthread/sysdeps/generic/pt-rwlock-init.c index c9ff9b28..c9ff9b28 100644 --- a/sysdeps/generic/pt-rwlock-init.c +++ b/libpthread/sysdeps/generic/pt-rwlock-init.c diff --git a/sysdeps/generic/pt-rwlock-rdlock.c b/libpthread/sysdeps/generic/pt-rwlock-rdlock.c index 480cf489..480cf489 100644 --- a/sysdeps/generic/pt-rwlock-rdlock.c +++ b/libpthread/sysdeps/generic/pt-rwlock-rdlock.c diff --git a/sysdeps/generic/pt-rwlock-timedrdlock.c b/libpthread/sysdeps/generic/pt-rwlock-timedrdlock.c index ba610fa5..ba610fa5 100644 --- a/sysdeps/generic/pt-rwlock-timedrdlock.c +++ b/libpthread/sysdeps/generic/pt-rwlock-timedrdlock.c diff --git a/sysdeps/generic/pt-rwlock-timedwrlock.c b/libpthread/sysdeps/generic/pt-rwlock-timedwrlock.c index 04eab51f..04eab51f 100644 --- a/sysdeps/generic/pt-rwlock-timedwrlock.c +++ b/libpthread/sysdeps/generic/pt-rwlock-timedwrlock.c diff --git a/sysdeps/generic/pt-rwlock-tryrdlock.c b/libpthread/sysdeps/generic/pt-rwlock-tryrdlock.c index 2419efb1..2419efb1 100644 --- a/sysdeps/generic/pt-rwlock-tryrdlock.c +++ b/libpthread/sysdeps/generic/pt-rwlock-tryrdlock.c diff --git a/sysdeps/generic/pt-rwlock-trywrlock.c b/libpthread/sysdeps/generic/pt-rwlock-trywrlock.c index 6b9c5b56..6b9c5b56 100644 --- a/sysdeps/generic/pt-rwlock-trywrlock.c +++ b/libpthread/sysdeps/generic/pt-rwlock-trywrlock.c diff --git a/sysdeps/generic/pt-rwlock-unlock.c b/libpthread/sysdeps/generic/pt-rwlock-unlock.c index fb23a0b9..fb23a0b9 100644 --- a/sysdeps/generic/pt-rwlock-unlock.c +++ b/libpthread/sysdeps/generic/pt-rwlock-unlock.c diff --git a/sysdeps/generic/pt-rwlock-wrlock.c b/libpthread/sysdeps/generic/pt-rwlock-wrlock.c index be85b906..be85b906 100644 --- a/sysdeps/generic/pt-rwlock-wrlock.c +++ b/libpthread/sysdeps/generic/pt-rwlock-wrlock.c diff --git a/sysdeps/generic/pt-rwlockattr-destroy.c b/libpthread/sysdeps/generic/pt-rwlockattr-destroy.c index eabfcbe8..eabfcbe8 100644 --- a/sysdeps/generic/pt-rwlockattr-destroy.c +++ b/libpthread/sysdeps/generic/pt-rwlockattr-destroy.c diff --git a/sysdeps/generic/pt-rwlockattr-getpshared.c b/libpthread/sysdeps/generic/pt-rwlockattr-getpshared.c index e8752c0c..e8752c0c 100644 --- a/sysdeps/generic/pt-rwlockattr-getpshared.c +++ b/libpthread/sysdeps/generic/pt-rwlockattr-getpshared.c diff --git a/sysdeps/generic/pt-rwlockattr-init.c b/libpthread/sysdeps/generic/pt-rwlockattr-init.c index 34da6bf0..34da6bf0 100644 --- a/sysdeps/generic/pt-rwlockattr-init.c +++ b/libpthread/sysdeps/generic/pt-rwlockattr-init.c diff --git a/sysdeps/generic/pt-rwlockattr-setpshared.c b/libpthread/sysdeps/generic/pt-rwlockattr-setpshared.c index a861d034..a861d034 100644 --- a/sysdeps/generic/pt-rwlockattr-setpshared.c +++ b/libpthread/sysdeps/generic/pt-rwlockattr-setpshared.c diff --git a/sysdeps/generic/pt-setconcurrency.c b/libpthread/sysdeps/generic/pt-setconcurrency.c index cd55b1ba..cd55b1ba 100644 --- a/sysdeps/generic/pt-setconcurrency.c +++ b/libpthread/sysdeps/generic/pt-setconcurrency.c diff --git a/sysdeps/generic/pt-setschedparam.c b/libpthread/sysdeps/generic/pt-setschedparam.c index a70b0796..a70b0796 100644 --- a/sysdeps/generic/pt-setschedparam.c +++ b/libpthread/sysdeps/generic/pt-setschedparam.c diff --git a/sysdeps/generic/pt-setschedprio.c b/libpthread/sysdeps/generic/pt-setschedprio.c index 60668eb1..60668eb1 100644 --- a/sysdeps/generic/pt-setschedprio.c +++ b/libpthread/sysdeps/generic/pt-setschedprio.c diff --git a/sysdeps/generic/pt-setspecific.c b/libpthread/sysdeps/generic/pt-setspecific.c index d520c5df..d520c5df 100644 --- a/sysdeps/generic/pt-setspecific.c +++ b/libpthread/sysdeps/generic/pt-setspecific.c diff --git a/sysdeps/generic/pt-startup.c b/libpthread/sysdeps/generic/pt-startup.c index c21a1819..c21a1819 100644 --- a/sysdeps/generic/pt-startup.c +++ b/libpthread/sysdeps/generic/pt-startup.c diff --git a/sysdeps/generic/raise.c b/libpthread/sysdeps/generic/raise.c index 410f557d..410f557d 100644 --- a/sysdeps/generic/raise.c +++ b/libpthread/sysdeps/generic/raise.c diff --git a/sysdeps/generic/sem-close.c b/libpthread/sysdeps/generic/sem-close.c index 9f48032f..9f48032f 100644 --- a/sysdeps/generic/sem-close.c +++ b/libpthread/sysdeps/generic/sem-close.c diff --git a/sysdeps/generic/sem-destroy.c b/libpthread/sysdeps/generic/sem-destroy.c index 6486599c..6486599c 100644 --- a/sysdeps/generic/sem-destroy.c +++ b/libpthread/sysdeps/generic/sem-destroy.c diff --git a/sysdeps/generic/sem-getvalue.c b/libpthread/sysdeps/generic/sem-getvalue.c index 7762089b..7762089b 100644 --- a/sysdeps/generic/sem-getvalue.c +++ b/libpthread/sysdeps/generic/sem-getvalue.c diff --git a/sysdeps/generic/sem-init.c b/libpthread/sysdeps/generic/sem-init.c index d2414f5d..d2414f5d 100644 --- a/sysdeps/generic/sem-init.c +++ b/libpthread/sysdeps/generic/sem-init.c diff --git a/sysdeps/generic/sem-open.c b/libpthread/sysdeps/generic/sem-open.c index bae87ed0..bae87ed0 100644 --- a/sysdeps/generic/sem-open.c +++ b/libpthread/sysdeps/generic/sem-open.c diff --git a/sysdeps/generic/sem-post.c b/libpthread/sysdeps/generic/sem-post.c index 6d438bf2..6d438bf2 100644 --- a/sysdeps/generic/sem-post.c +++ b/libpthread/sysdeps/generic/sem-post.c diff --git a/sysdeps/generic/sem-timedwait.c b/libpthread/sysdeps/generic/sem-timedwait.c index e34539a9..e34539a9 100644 --- a/sysdeps/generic/sem-timedwait.c +++ b/libpthread/sysdeps/generic/sem-timedwait.c diff --git a/sysdeps/generic/sem-trywait.c b/libpthread/sysdeps/generic/sem-trywait.c index 437e2822..437e2822 100644 --- a/sysdeps/generic/sem-trywait.c +++ b/libpthread/sysdeps/generic/sem-trywait.c diff --git a/sysdeps/generic/sem-unlink.c b/libpthread/sysdeps/generic/sem-unlink.c index 570ed614..570ed614 100644 --- a/sysdeps/generic/sem-unlink.c +++ b/libpthread/sysdeps/generic/sem-unlink.c diff --git a/sysdeps/generic/sem-wait.c b/libpthread/sysdeps/generic/sem-wait.c index 8347480c..8347480c 100644 --- a/sysdeps/generic/sem-wait.c +++ b/libpthread/sysdeps/generic/sem-wait.c diff --git a/sysdeps/generic/sigaddset.c b/libpthread/sysdeps/generic/sigaddset.c index 14edb71c..14edb71c 100644 --- a/sysdeps/generic/sigaddset.c +++ b/libpthread/sysdeps/generic/sigaddset.c diff --git a/sysdeps/generic/sigdelset.c b/libpthread/sysdeps/generic/sigdelset.c index 5456467f..5456467f 100644 --- a/sysdeps/generic/sigdelset.c +++ b/libpthread/sysdeps/generic/sigdelset.c diff --git a/sysdeps/generic/sigemptyset.c b/libpthread/sysdeps/generic/sigemptyset.c index 690c15b6..690c15b6 100644 --- a/sysdeps/generic/sigemptyset.c +++ b/libpthread/sysdeps/generic/sigemptyset.c diff --git a/sysdeps/generic/sigfillset.c b/libpthread/sysdeps/generic/sigfillset.c index f0ac0781..f0ac0781 100644 --- a/sysdeps/generic/sigfillset.c +++ b/libpthread/sysdeps/generic/sigfillset.c diff --git a/sysdeps/generic/siginterrupt.c b/libpthread/sysdeps/generic/siginterrupt.c index 0899efbb..0899efbb 100644 --- a/sysdeps/generic/siginterrupt.c +++ b/libpthread/sysdeps/generic/siginterrupt.c diff --git a/sysdeps/generic/sigismember.c b/libpthread/sysdeps/generic/sigismember.c index b3d65c97..b3d65c97 100644 --- a/sysdeps/generic/sigismember.c +++ b/libpthread/sysdeps/generic/sigismember.c diff --git a/sysdeps/generic/signal.c b/libpthread/sysdeps/generic/signal.c index 7555d0a1..7555d0a1 100644 --- a/sysdeps/generic/signal.c +++ b/libpthread/sysdeps/generic/signal.c diff --git a/sysdeps/generic/sigwait.c b/libpthread/sysdeps/generic/sigwait.c index 7d10bf8b..7d10bf8b 100644 --- a/sysdeps/generic/sigwait.c +++ b/libpthread/sysdeps/generic/sigwait.c diff --git a/sysdeps/hurd/pt-destroy-specific.c b/libpthread/sysdeps/hurd/pt-destroy-specific.c index 23c7fbc0..23c7fbc0 100644 --- a/sysdeps/hurd/pt-destroy-specific.c +++ b/libpthread/sysdeps/hurd/pt-destroy-specific.c diff --git a/sysdeps/hurd/pt-getspecific.c b/libpthread/sysdeps/hurd/pt-getspecific.c index 30605984..30605984 100644 --- a/sysdeps/hurd/pt-getspecific.c +++ b/libpthread/sysdeps/hurd/pt-getspecific.c diff --git a/sysdeps/hurd/pt-init-specific.c b/libpthread/sysdeps/hurd/pt-init-specific.c index c1bacbcb..c1bacbcb 100644 --- a/sysdeps/hurd/pt-init-specific.c +++ b/libpthread/sysdeps/hurd/pt-init-specific.c diff --git a/sysdeps/hurd/pt-key-create.c b/libpthread/sysdeps/hurd/pt-key-create.c index b3e01412..b3e01412 100644 --- a/sysdeps/hurd/pt-key-create.c +++ b/libpthread/sysdeps/hurd/pt-key-create.c diff --git a/sysdeps/hurd/pt-key-delete.c b/libpthread/sysdeps/hurd/pt-key-delete.c index 2426bb11..2426bb11 100644 --- a/sysdeps/hurd/pt-key-delete.c +++ b/libpthread/sysdeps/hurd/pt-key-delete.c diff --git a/sysdeps/hurd/pt-key.h b/libpthread/sysdeps/hurd/pt-key.h index 494e01d7..494e01d7 100644 --- a/sysdeps/hurd/pt-key.h +++ b/libpthread/sysdeps/hurd/pt-key.h diff --git a/sysdeps/hurd/pt-kill.c b/libpthread/sysdeps/hurd/pt-kill.c index f970e065..f970e065 100644 --- a/sysdeps/hurd/pt-kill.c +++ b/libpthread/sysdeps/hurd/pt-kill.c diff --git a/sysdeps/hurd/pt-setspecific.c b/libpthread/sysdeps/hurd/pt-setspecific.c index 89ca4d7f..89ca4d7f 100644 --- a/sysdeps/hurd/pt-setspecific.c +++ b/libpthread/sysdeps/hurd/pt-setspecific.c diff --git a/sysdeps/ia32/bits/atomic.h b/libpthread/sysdeps/ia32/bits/atomic.h index 0dfc1f60..0dfc1f60 100644 --- a/sysdeps/ia32/bits/atomic.h +++ b/libpthread/sysdeps/ia32/bits/atomic.h diff --git a/sysdeps/ia32/bits/memory.h b/libpthread/sysdeps/ia32/bits/memory.h index 932c4086..932c4086 100644 --- a/sysdeps/ia32/bits/memory.h +++ b/libpthread/sysdeps/ia32/bits/memory.h diff --git a/sysdeps/ia32/bits/spin-lock-inline.h b/libpthread/sysdeps/ia32/bits/spin-lock-inline.h index e5ed3def..e5ed3def 100644 --- a/sysdeps/ia32/bits/spin-lock-inline.h +++ b/libpthread/sysdeps/ia32/bits/spin-lock-inline.h diff --git a/sysdeps/ia32/bits/spin-lock.h b/libpthread/sysdeps/ia32/bits/spin-lock.h index 5ae81e18..5ae81e18 100644 --- a/sysdeps/ia32/bits/spin-lock.h +++ b/libpthread/sysdeps/ia32/bits/spin-lock.h diff --git a/sysdeps/ia32/machine-sp.h b/libpthread/sysdeps/ia32/machine-sp.h index cef6ab72..cef6ab72 100644 --- a/sysdeps/ia32/machine-sp.h +++ b/libpthread/sysdeps/ia32/machine-sp.h diff --git a/sysdeps/ia32/pt-machdep.h b/libpthread/sysdeps/ia32/pt-machdep.h index 6d456367..6d456367 100644 --- a/sysdeps/ia32/pt-machdep.h +++ b/libpthread/sysdeps/ia32/pt-machdep.h diff --git a/sysdeps/l4/bits/pthread-np.h b/libpthread/sysdeps/l4/bits/pthread-np.h index 6a02bdc0..6a02bdc0 100644 --- a/sysdeps/l4/bits/pthread-np.h +++ b/libpthread/sysdeps/l4/bits/pthread-np.h diff --git a/sysdeps/l4/hurd/bits/pthread-np.h b/libpthread/sysdeps/l4/hurd/bits/pthread-np.h index a90793df..a90793df 100644 --- a/sysdeps/l4/hurd/bits/pthread-np.h +++ b/libpthread/sysdeps/l4/hurd/bits/pthread-np.h diff --git a/sysdeps/l4/hurd/ia32/pt-machdep.c b/libpthread/sysdeps/l4/hurd/ia32/pt-machdep.c index dbf5cd7e..dbf5cd7e 100644 --- a/sysdeps/l4/hurd/ia32/pt-machdep.c +++ b/libpthread/sysdeps/l4/hurd/ia32/pt-machdep.c diff --git a/sysdeps/l4/hurd/ia32/pt-setup.c b/libpthread/sysdeps/l4/hurd/ia32/pt-setup.c index 579905c9..579905c9 100644 --- a/sysdeps/l4/hurd/ia32/pt-setup.c +++ b/libpthread/sysdeps/l4/hurd/ia32/pt-setup.c diff --git a/sysdeps/l4/hurd/ia32/signal-dispatch-lowlevel.c b/libpthread/sysdeps/l4/hurd/ia32/signal-dispatch-lowlevel.c index 37ef8215..37ef8215 100644 --- a/sysdeps/l4/hurd/ia32/signal-dispatch-lowlevel.c +++ b/libpthread/sysdeps/l4/hurd/ia32/signal-dispatch-lowlevel.c diff --git a/sysdeps/l4/hurd/powerpc/pt-machdep.c b/libpthread/sysdeps/l4/hurd/powerpc/pt-machdep.c index 754d203e..754d203e 100644 --- a/sysdeps/l4/hurd/powerpc/pt-machdep.c +++ b/libpthread/sysdeps/l4/hurd/powerpc/pt-machdep.c diff --git a/sysdeps/l4/hurd/powerpc/pt-setup.c b/libpthread/sysdeps/l4/hurd/powerpc/pt-setup.c index d3cf4ec3..d3cf4ec3 100644 --- a/sysdeps/l4/hurd/powerpc/pt-setup.c +++ b/libpthread/sysdeps/l4/hurd/powerpc/pt-setup.c diff --git a/sysdeps/l4/hurd/pt-block.c b/libpthread/sysdeps/l4/hurd/pt-block.c index 2315b1c4..2315b1c4 100644 --- a/sysdeps/l4/hurd/pt-block.c +++ b/libpthread/sysdeps/l4/hurd/pt-block.c diff --git a/sysdeps/l4/hurd/pt-kill.c b/libpthread/sysdeps/l4/hurd/pt-kill.c index c72e82f4..c72e82f4 100644 --- a/sysdeps/l4/hurd/pt-kill.c +++ b/libpthread/sysdeps/l4/hurd/pt-kill.c diff --git a/sysdeps/l4/hurd/pt-setactivity-np.c b/libpthread/sysdeps/l4/hurd/pt-setactivity-np.c index f2f07233..f2f07233 100644 --- a/sysdeps/l4/hurd/pt-setactivity-np.c +++ b/libpthread/sysdeps/l4/hurd/pt-setactivity-np.c diff --git a/sysdeps/l4/hurd/pt-sigstate-destroy.c b/libpthread/sysdeps/l4/hurd/pt-sigstate-destroy.c index 997a0369..997a0369 100644 --- a/sysdeps/l4/hurd/pt-sigstate-destroy.c +++ b/libpthread/sysdeps/l4/hurd/pt-sigstate-destroy.c diff --git a/sysdeps/l4/hurd/pt-sigstate-init.c b/libpthread/sysdeps/l4/hurd/pt-sigstate-init.c index 4c40fdb3..4c40fdb3 100644 --- a/sysdeps/l4/hurd/pt-sigstate-init.c +++ b/libpthread/sysdeps/l4/hurd/pt-sigstate-init.c diff --git a/sysdeps/l4/hurd/pt-sigstate.c b/libpthread/sysdeps/l4/hurd/pt-sigstate.c index 66dd08cf..66dd08cf 100644 --- a/sysdeps/l4/hurd/pt-sigstate.c +++ b/libpthread/sysdeps/l4/hurd/pt-sigstate.c diff --git a/sysdeps/l4/hurd/pt-startup.c b/libpthread/sysdeps/l4/hurd/pt-startup.c index b6461de7..b6461de7 100644 --- a/sysdeps/l4/hurd/pt-startup.c +++ b/libpthread/sysdeps/l4/hurd/pt-startup.c diff --git a/sysdeps/l4/hurd/pt-sysdep.c b/libpthread/sysdeps/l4/hurd/pt-sysdep.c index c23364c7..c23364c7 100644 --- a/sysdeps/l4/hurd/pt-sysdep.c +++ b/libpthread/sysdeps/l4/hurd/pt-sysdep.c diff --git a/sysdeps/l4/hurd/pt-sysdep.h b/libpthread/sysdeps/l4/hurd/pt-sysdep.h index 08bcd143..08bcd143 100644 --- a/sysdeps/l4/hurd/pt-sysdep.h +++ b/libpthread/sysdeps/l4/hurd/pt-sysdep.h diff --git a/sysdeps/l4/hurd/pt-thread-alloc.c b/libpthread/sysdeps/l4/hurd/pt-thread-alloc.c index ada7b3b8..ada7b3b8 100644 --- a/sysdeps/l4/hurd/pt-thread-alloc.c +++ b/libpthread/sysdeps/l4/hurd/pt-thread-alloc.c diff --git a/sysdeps/l4/hurd/pt-thread-halt.c b/libpthread/sysdeps/l4/hurd/pt-thread-halt.c index 98fefaab..98fefaab 100644 --- a/sysdeps/l4/hurd/pt-thread-halt.c +++ b/libpthread/sysdeps/l4/hurd/pt-thread-halt.c diff --git a/sysdeps/l4/hurd/pt-thread-start.c b/libpthread/sysdeps/l4/hurd/pt-thread-start.c index 9db399ce..9db399ce 100644 --- a/sysdeps/l4/hurd/pt-thread-start.c +++ b/libpthread/sysdeps/l4/hurd/pt-thread-start.c diff --git a/sysdeps/l4/hurd/pt-wakeup.c b/libpthread/sysdeps/l4/hurd/pt-wakeup.c index e568a6f9..e568a6f9 100644 --- a/sysdeps/l4/hurd/pt-wakeup.c +++ b/libpthread/sysdeps/l4/hurd/pt-wakeup.c diff --git a/sysdeps/l4/hurd/sig-sysdep.h b/libpthread/sysdeps/l4/hurd/sig-sysdep.h index 33e13857..33e13857 100644 --- a/sysdeps/l4/hurd/sig-sysdep.h +++ b/libpthread/sysdeps/l4/hurd/sig-sysdep.h diff --git a/sysdeps/l4/hurd/sigprocmask.c b/libpthread/sysdeps/l4/hurd/sigprocmask.c index a38b3795..a38b3795 100644 --- a/sysdeps/l4/hurd/sigprocmask.c +++ b/libpthread/sysdeps/l4/hurd/sigprocmask.c diff --git a/sysdeps/l4/pt-block.c b/libpthread/sysdeps/l4/pt-block.c index 69e1d358..69e1d358 100644 --- a/sysdeps/l4/pt-block.c +++ b/libpthread/sysdeps/l4/pt-block.c diff --git a/sysdeps/l4/pt-docancel.c b/libpthread/sysdeps/l4/pt-docancel.c index a3965d0d..a3965d0d 100644 --- a/sysdeps/l4/pt-docancel.c +++ b/libpthread/sysdeps/l4/pt-docancel.c diff --git a/sysdeps/l4/pt-pool-np.c b/libpthread/sysdeps/l4/pt-pool-np.c index e83022ba..e83022ba 100644 --- a/sysdeps/l4/pt-pool-np.c +++ b/libpthread/sysdeps/l4/pt-pool-np.c diff --git a/sysdeps/l4/pt-spin.c b/libpthread/sysdeps/l4/pt-spin.c index b6978b0c..b6978b0c 100644 --- a/sysdeps/l4/pt-spin.c +++ b/libpthread/sysdeps/l4/pt-spin.c diff --git a/sysdeps/l4/pt-stack-alloc.c b/libpthread/sysdeps/l4/pt-stack-alloc.c index b7ec12b4..b7ec12b4 100644 --- a/sysdeps/l4/pt-stack-alloc.c +++ b/libpthread/sysdeps/l4/pt-stack-alloc.c diff --git a/sysdeps/l4/pt-thread-alloc.c b/libpthread/sysdeps/l4/pt-thread-alloc.c index ec69afb5..ec69afb5 100644 --- a/sysdeps/l4/pt-thread-alloc.c +++ b/libpthread/sysdeps/l4/pt-thread-alloc.c diff --git a/sysdeps/l4/pt-thread-dealloc.c b/libpthread/sysdeps/l4/pt-thread-dealloc.c index c09e4860..c09e4860 100644 --- a/sysdeps/l4/pt-thread-dealloc.c +++ b/libpthread/sysdeps/l4/pt-thread-dealloc.c diff --git a/sysdeps/l4/pt-thread-halt.c b/libpthread/sysdeps/l4/pt-thread-halt.c index aa2bf43d..aa2bf43d 100644 --- a/sysdeps/l4/pt-thread-halt.c +++ b/libpthread/sysdeps/l4/pt-thread-halt.c diff --git a/sysdeps/l4/pt-thread-start.c b/libpthread/sysdeps/l4/pt-thread-start.c index 144c58bb..144c58bb 100644 --- a/sysdeps/l4/pt-thread-start.c +++ b/libpthread/sysdeps/l4/pt-thread-start.c diff --git a/sysdeps/l4/pt-timedblock.c b/libpthread/sysdeps/l4/pt-timedblock.c index ce7972bd..ce7972bd 100644 --- a/sysdeps/l4/pt-timedblock.c +++ b/libpthread/sysdeps/l4/pt-timedblock.c diff --git a/sysdeps/l4/pt-wakeup.c b/libpthread/sysdeps/l4/pt-wakeup.c index de378465..de378465 100644 --- a/sysdeps/l4/pt-wakeup.c +++ b/libpthread/sysdeps/l4/pt-wakeup.c diff --git a/sysdeps/mach/bits/spin-lock-inline.h b/libpthread/sysdeps/mach/bits/spin-lock-inline.h index f9f7c299..f9f7c299 100644 --- a/sysdeps/mach/bits/spin-lock-inline.h +++ b/libpthread/sysdeps/mach/bits/spin-lock-inline.h diff --git a/sysdeps/mach/bits/spin-lock.h b/libpthread/sysdeps/mach/bits/spin-lock.h index 537dac9d..537dac9d 100644 --- a/sysdeps/mach/bits/spin-lock.h +++ b/libpthread/sysdeps/mach/bits/spin-lock.h diff --git a/sysdeps/mach/hurd/ia32/pt-machdep.c b/libpthread/sysdeps/mach/hurd/ia32/pt-machdep.c index face46c5..face46c5 100644 --- a/sysdeps/mach/hurd/ia32/pt-machdep.c +++ b/libpthread/sysdeps/mach/hurd/ia32/pt-machdep.c diff --git a/sysdeps/mach/hurd/ia32/pt-setup.c b/libpthread/sysdeps/mach/hurd/ia32/pt-setup.c index ba438d6a..ba438d6a 100644 --- a/sysdeps/mach/hurd/ia32/pt-setup.c +++ b/libpthread/sysdeps/mach/hurd/ia32/pt-setup.c diff --git a/sysdeps/mach/hurd/pt-attr-setstackaddr.c b/libpthread/sysdeps/mach/hurd/pt-attr-setstackaddr.c index 1225ed5b..1225ed5b 100644 --- a/sysdeps/mach/hurd/pt-attr-setstackaddr.c +++ b/libpthread/sysdeps/mach/hurd/pt-attr-setstackaddr.c diff --git a/sysdeps/mach/hurd/pt-attr-setstacksize.c b/libpthread/sysdeps/mach/hurd/pt-attr-setstacksize.c index 6471c0a3..6471c0a3 100644 --- a/sysdeps/mach/hurd/pt-attr-setstacksize.c +++ b/libpthread/sysdeps/mach/hurd/pt-attr-setstacksize.c diff --git a/sysdeps/mach/hurd/pt-docancel.c b/libpthread/sysdeps/mach/hurd/pt-docancel.c index b81a5c70..b81a5c70 100644 --- a/sysdeps/mach/hurd/pt-docancel.c +++ b/libpthread/sysdeps/mach/hurd/pt-docancel.c diff --git a/sysdeps/mach/hurd/pt-sigstate-destroy.c b/libpthread/sysdeps/mach/hurd/pt-sigstate-destroy.c index 8e56c5cf..8e56c5cf 100644 --- a/sysdeps/mach/hurd/pt-sigstate-destroy.c +++ b/libpthread/sysdeps/mach/hurd/pt-sigstate-destroy.c diff --git a/sysdeps/mach/hurd/pt-sigstate-init.c b/libpthread/sysdeps/mach/hurd/pt-sigstate-init.c index da5a9455..da5a9455 100644 --- a/sysdeps/mach/hurd/pt-sigstate-init.c +++ b/libpthread/sysdeps/mach/hurd/pt-sigstate-init.c diff --git a/sysdeps/mach/hurd/pt-sigstate.c b/libpthread/sysdeps/mach/hurd/pt-sigstate.c index 68c79c5b..68c79c5b 100644 --- a/sysdeps/mach/hurd/pt-sigstate.c +++ b/libpthread/sysdeps/mach/hurd/pt-sigstate.c diff --git a/sysdeps/mach/hurd/pt-sysdep.c b/libpthread/sysdeps/mach/hurd/pt-sysdep.c index 5e070067..5e070067 100644 --- a/sysdeps/mach/hurd/pt-sysdep.c +++ b/libpthread/sysdeps/mach/hurd/pt-sysdep.c diff --git a/sysdeps/mach/hurd/pt-sysdep.h b/libpthread/sysdeps/mach/hurd/pt-sysdep.h index f14a1366..f14a1366 100644 --- a/sysdeps/mach/hurd/pt-sysdep.h +++ b/libpthread/sysdeps/mach/hurd/pt-sysdep.h diff --git a/sysdeps/mach/pt-block.c b/libpthread/sysdeps/mach/pt-block.c index a947b27c..a947b27c 100644 --- a/sysdeps/mach/pt-block.c +++ b/libpthread/sysdeps/mach/pt-block.c diff --git a/sysdeps/mach/pt-spin.c b/libpthread/sysdeps/mach/pt-spin.c index d9a2a32a..d9a2a32a 100644 --- a/sysdeps/mach/pt-spin.c +++ b/libpthread/sysdeps/mach/pt-spin.c diff --git a/sysdeps/mach/pt-stack-alloc.c b/libpthread/sysdeps/mach/pt-stack-alloc.c index 0956fc7d..0956fc7d 100644 --- a/sysdeps/mach/pt-stack-alloc.c +++ b/libpthread/sysdeps/mach/pt-stack-alloc.c diff --git a/sysdeps/mach/pt-thread-alloc.c b/libpthread/sysdeps/mach/pt-thread-alloc.c index 3d7c0465..3d7c0465 100644 --- a/sysdeps/mach/pt-thread-alloc.c +++ b/libpthread/sysdeps/mach/pt-thread-alloc.c diff --git a/sysdeps/mach/pt-thread-dealloc.c b/libpthread/sysdeps/mach/pt-thread-dealloc.c index 55d8c4d5..55d8c4d5 100644 --- a/sysdeps/mach/pt-thread-dealloc.c +++ b/libpthread/sysdeps/mach/pt-thread-dealloc.c diff --git a/sysdeps/mach/pt-thread-halt.c b/libpthread/sysdeps/mach/pt-thread-halt.c index 973cde1e..973cde1e 100644 --- a/sysdeps/mach/pt-thread-halt.c +++ b/libpthread/sysdeps/mach/pt-thread-halt.c diff --git a/sysdeps/mach/pt-thread-start.c b/libpthread/sysdeps/mach/pt-thread-start.c index 11b017ff..11b017ff 100644 --- a/sysdeps/mach/pt-thread-start.c +++ b/libpthread/sysdeps/mach/pt-thread-start.c diff --git a/sysdeps/mach/pt-timedblock.c b/libpthread/sysdeps/mach/pt-timedblock.c index 6f547265..6f547265 100644 --- a/sysdeps/mach/pt-timedblock.c +++ b/libpthread/sysdeps/mach/pt-timedblock.c diff --git a/sysdeps/mach/pt-wakeup.c b/libpthread/sysdeps/mach/pt-wakeup.c index 4920d102..4920d102 100644 --- a/sysdeps/mach/pt-wakeup.c +++ b/libpthread/sysdeps/mach/pt-wakeup.c diff --git a/sysdeps/posix/pt-spin.c b/libpthread/sysdeps/posix/pt-spin.c index cb809c64..cb809c64 100644 --- a/sysdeps/posix/pt-spin.c +++ b/libpthread/sysdeps/posix/pt-spin.c diff --git a/sysdeps/powerpc/bits/machine-lock.h b/libpthread/sysdeps/powerpc/bits/machine-lock.h index cba6b0a6..cba6b0a6 100644 --- a/sysdeps/powerpc/bits/machine-lock.h +++ b/libpthread/sysdeps/powerpc/bits/machine-lock.h diff --git a/sysdeps/powerpc/bits/memory.h b/libpthread/sysdeps/powerpc/bits/memory.h index 96624c3e..96624c3e 100644 --- a/sysdeps/powerpc/bits/memory.h +++ b/libpthread/sysdeps/powerpc/bits/memory.h diff --git a/sysdeps/powerpc/bits/spin-lock.h b/libpthread/sysdeps/powerpc/bits/spin-lock.h index 1dc25710..1dc25710 100644 --- a/sysdeps/powerpc/bits/spin-lock.h +++ b/libpthread/sysdeps/powerpc/bits/spin-lock.h diff --git a/sysdeps/powerpc/machine-sp.h b/libpthread/sysdeps/powerpc/machine-sp.h index aa787c59..aa787c59 100644 --- a/sysdeps/powerpc/machine-sp.h +++ b/libpthread/sysdeps/powerpc/machine-sp.h diff --git a/sysdeps/powerpc/pt-machdep.h b/libpthread/sysdeps/powerpc/pt-machdep.h index 6d456367..6d456367 100644 --- a/sysdeps/powerpc/pt-machdep.h +++ b/libpthread/sysdeps/powerpc/pt-machdep.h diff --git a/tests/.cvsignore b/libpthread/tests/.cvsignore index 70845e08..70845e08 100644 --- a/tests/.cvsignore +++ b/libpthread/tests/.cvsignore diff --git a/tests/Makefile b/libpthread/tests/Makefile index 9509c957..9509c957 100644 --- a/tests/Makefile +++ b/libpthread/tests/Makefile diff --git a/tests/test-1.c b/libpthread/tests/test-1.c index 318fd6e9..318fd6e9 100644 --- a/tests/test-1.c +++ b/libpthread/tests/test-1.c diff --git a/tests/test-10.c b/libpthread/tests/test-10.c index bec05c14..bec05c14 100644 --- a/tests/test-10.c +++ b/libpthread/tests/test-10.c diff --git a/tests/test-11.c b/libpthread/tests/test-11.c index de779a40..de779a40 100644 --- a/tests/test-11.c +++ b/libpthread/tests/test-11.c diff --git a/tests/test-12.c b/libpthread/tests/test-12.c index 2b784908..2b784908 100644 --- a/tests/test-12.c +++ b/libpthread/tests/test-12.c diff --git a/tests/test-13.c b/libpthread/tests/test-13.c index 13b09051..13b09051 100644 --- a/tests/test-13.c +++ b/libpthread/tests/test-13.c diff --git a/tests/test-14.c b/libpthread/tests/test-14.c index b1dbfa66..b1dbfa66 100644 --- a/tests/test-14.c +++ b/libpthread/tests/test-14.c diff --git a/tests/test-15.c b/libpthread/tests/test-15.c index 173f8b6b..173f8b6b 100644 --- a/tests/test-15.c +++ b/libpthread/tests/test-15.c diff --git a/tests/test-16.c b/libpthread/tests/test-16.c index b6a52d01..b6a52d01 100644 --- a/tests/test-16.c +++ b/libpthread/tests/test-16.c diff --git a/tests/test-2.c b/libpthread/tests/test-2.c index 701462e8..701462e8 100644 --- a/tests/test-2.c +++ b/libpthread/tests/test-2.c diff --git a/tests/test-3.c b/libpthread/tests/test-3.c index 7db2e43f..7db2e43f 100644 --- a/tests/test-3.c +++ b/libpthread/tests/test-3.c diff --git a/tests/test-4.c b/libpthread/tests/test-4.c index de9c8fe4..de9c8fe4 100644 --- a/tests/test-4.c +++ b/libpthread/tests/test-4.c diff --git a/tests/test-5.c b/libpthread/tests/test-5.c index 0f5000b2..0f5000b2 100644 --- a/tests/test-5.c +++ b/libpthread/tests/test-5.c diff --git a/tests/test-6.c b/libpthread/tests/test-6.c index 98aa8ba7..98aa8ba7 100644 --- a/tests/test-6.c +++ b/libpthread/tests/test-6.c diff --git a/tests/test-7.c b/libpthread/tests/test-7.c index bd97acfa..bd97acfa 100644 --- a/tests/test-7.c +++ b/libpthread/tests/test-7.c diff --git a/tests/test-8.c b/libpthread/tests/test-8.c index 85a7f8f6..85a7f8f6 100644 --- a/tests/test-8.c +++ b/libpthread/tests/test-8.c diff --git a/tests/test-9.c b/libpthread/tests/test-9.c index 82051570..82051570 100644 --- a/tests/test-9.c +++ b/libpthread/tests/test-9.c |