+2000-05-05 Andreas Jaeger <aj@suse.de>
+
+ * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
+ (pthread_getcpuclockid): Correct test for ourselves.
+
+2000-05-05 Ulrich Drepper <drepper@redhat.com>
+
+ * internals.h (struct _pthread_descr_struct): Reorganization.
+ Allocate room for 16 pointers at head of the structure for future
+ thread-local data handling. Move p_self member in this area.
+ * manager.c (pthread_handle_create): Adjust use of p_self.
+ * sysdeps/i386/useldt.h (THREAD_SELF): Likewise.
+ * pthread.c (__pthread_initial_thread): Adjust initialization.
+ (__pthread_manager_thread): Likewise.
+
+2000-04-29 Bruno Haible <haible@clisp.cons.org>
+
+ * join.c (pthread_exit): Use THREAD_GETMEM_NC instead of THREAD_GETMEM
+ for eventmask larger than 1 word.
+
+2000-04-27 Ulrich Drepper <drepper@redhat.com>
+
+ * Versions [libpthread] (GLIBC_2.2): Add __pthread_initialize_minimal.
+ * pthread.c (__pthread_initialize_minimal): New function. Perform
+ minimal initialization.
+ (pthread_initialize): Remove this code here.
+ * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h" again. We
+ are working around the problem in glibc.
+
+2000-04-25 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/i386/i686/pt-machine.h: Do not use "../useldt.h" for
+ now. First gcc must be fixed (more concrete: libgcc).
+
+2000-04-24 Ulrich Drepper <drepper@redhat.com>
+
+ * pthread.c: Remove special treatement for interrupt handlers on x86.
+ * manager.c (pthread_free): Use FREE_THREAD not FREE_THREAD_SELF.
+ * sysdeps/i386/useldt.h: Use "q" constraint instead of "r" where
+ necessary.
+ * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h".
+
+2000-04-24 Mark Kettenis <kettenis@gnu.org>
+
+ * join.c (pthread_exit): Set p_terminated after reporting the
+ termination event instead of before.
+
+2000-04-20 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/pthread/bits/libc-lock.h: Only declare __pthread_rwlock_*
+ if __USE_UNIX98.
+
+2000-04-18 Andreas Jaeger <aj@suse.de>
+
+ * Versions: Use ld instead of ld.so.
+
+2000-04-18 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h (struct sigcontext):
+ Remove the typedef keyword.
+
+2000-04-18 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Use membar,
+ not stbar.
+ (READ_MEMORY_BARRIER): Define.
+ * spinlock.c (__pthread_spin_unlock): Use READ_MEMORY_BARRIER, not
+ MEMORY_BARRIER.
+ * internals.h (READ_MEMORY_BARRIER): Define if not defined in sysdep
+ headers.
+
+2000-04-17 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
+ (pthread_getcpuclockid): Don't compare thread_id with thread_self,
+ use thread_handle().
+
+2000-04-16 Ulrich Drepper <drepper@redhat.com>
+
+ * condvar.c (pthread_cond_timedwait_relative): Don't test for owner
+ if fast mutex is used. Don't initialize `already_canceled' twice.
+ Correctly test for return value of timedsuspend.
+
+ * pthread.c: Correct long-time braino. We never set SA_SIGINFO and
+ therefore don't need the _rt versions of the signal handlers.
+
+2000-04-15 Ulrich Drepper <drepper@redhat.com>
+
+ * pthread.c (pthread_yield): New function.
+ * sysdeps/pthread/pthread.h (pthread_yield): Add prototype.
+ * Versions [libpthread] (GLIBC_2.2): Add pthread_yield.
+ * internals.h: Declare __pthread_yield.
+
+ * pthread.c (pthread_initialize): Avoid a bit more code if
+ realtime signals are known to exist.
+
+ * pthread.c: Is __ASSUME_REALTIME_SIGNALS then avoid generating code
+ to dynamically detect RT signals and avoid generating compatibility
+ functions with old kernel.
+ * restart.h (restart) [__ASSUME_REALTIME_SIGNALS]: Use
+ __pthread_restart_new directly.
+ (suspend) [__ASSUME_REALTIME_SIGNALS]: Use
+ __pthread_wait_for_restart_signal directly.
+ (timedsuspend) [__ASSUME_REALTIME_SIGNALS]: Use
+ __pthread_timedsuspend_new directly.
+
+2000-04-15 Ulrich Drepper <drepper@redhat.com>
+
+ * condvar.c: Remove all the special code to handle cond_timedwait.
+ Use timedsuspend instead.
+ * internals.h: Declare __pthread_timedsuspend_old,
+ __pthread_timedsuspend_new, and __pthread_timedsuspend.
+ Remove declaration of __pthread_init_condvar.
+ * pthread.c: Define __pthread_timedsuspend variable.
+ (__pthread_timedsuspend_old): New function. Timed suspension
+ implementation for old Linux kernels.
+ (__pthread_timedsuspend_new): New function. Timed suspension
+ implementation for new Linux kernels.
+ * restart.h (timedsuspend): New function. Call appropriate
+ suspension function through __pthread_timedsuspend.
+ * semaphore.c (sem_timedwait): Use timedsuspend, don't duplicate
+ the code.
+ Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
+
+ * internals.h (WRITE_MEMORY_BARRIER): Define as MEMORY_BARRIER if
+ undefined.
+ * spinlock.c: Use WRITE_MEMORY_BARRIER instead of MEMORY_BARRIER
+ where possible.
+ * sysdeps/alpha/pt-machine.h: Define WRITE_MEMORY_BARRIER.
+ * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _POSIX_SPAWN.
+ * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
+
+2000-04-14 Andreas Jaeger <aj@suse.de>
+
+ * weaks.c: Fix typo.
+
+ * shlib-versions (mips.*-.*-linux.*): Support only GLIBC 2.0 and
+ 2.2 for linuxthreads.
+
+2000-04-13 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
+ (pthread_getcpuclockid): Fix typo.
+
+2000-04-12 Ulrich Drepper <drepper@redhat.com>
+
+ * Makefile (libpthread-routines): Add getcpuclockid.
+ * Versions [libpthread] (GLIBC_2.2): Add pthread_getcpuclockid.
+ * sysdeps/pthread/getcpuclockid.c: New file.
+ * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: New file.
+ * sysdeps/pthread/pthread.h: Add prototype for pthread_getcpuclockid.
+
+ * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_SPIN_LOCKS):
+ Defined.
+ * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
+
+ * sysdeps/pthread/pthread.h: Add prototypes for pthread_spin_init,
+ pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
+ and pthread_spin_unlock.
+ * sysdeps/pthread/bits/pthreadtypes.h: Change struct _pthread_fastlock
+ into pthread_spinlock_t. Change all uses.
+ * spinlock.c: Implement pthread_spin_lock.
+ Rename __pthread_unlock to __pthread_spin_unlock and define weak
+ alias for real name.
+ Define pthread_spin_trylock, pthread_spin_init, and
+ pthread_spin_destroy.
+ Change all uses of _pthread_fastlock to pthread_spinlock_t.
+ * spinlock.h: Rename __pthread_unlock to __pthread_spin_unlock.
+ Change all uses of _pthread_fastlock to pthread_spinlock_t.
+ * Versions [libpthread] (GLIBC_2.2): Add pthread_spin_init,
+ pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
+ and pthread_spin_unlock.
+ * cancel.c: Use __pthread_spin_unlock instead of __pthread_unlock.
+ Change all uses of _pthread_fastlock to pthread_spinlock_t.
+ * condvar.c: Likewise.
+ * internals.h: Likewise.
+ * join.c: Likewise.
+ * manager.c: Likewise.
+ * mutex.c: Likewise.
+ * pthread.c: Likewise.
+ * rwlock.c: Likewise.
+ * semaphore.c: Likewise.
+ * signals.c: Likewise.
+
+ * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add various new POSIX
+ macros.
+ * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
+
2000-04-11 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Add