diff options
Diffstat (limited to 'linuxthreads/ChangeLog')
-rw-r--r-- | linuxthreads/ChangeLog | 6468 |
1 files changed, 6468 insertions, 0 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog new file mode 100644 index 0000000000..beaad8c6c5 --- /dev/null +++ b/linuxthreads/ChangeLog @@ -0,0 +1,6468 @@ +2004-12-12 Ulrich Drepper <drepper@redhat.com> + + * internals.h: Include <stdbool.h> to match includes used in nptl. + +2004-12-01 Jakub Jelinek <jakub@redhat.coM. + + * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME, + _POSIX_THREAD_CPUTIME): Define to 0. + * sysdeps/pthread/timer_create.c (timer_create): Remove unused code + handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID. + * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk, + __timer_signal_thread_tclk): Remove. + (init_module): Remove their initialization. + (thread_cleanup): Remove their cleanup assertions. + * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk, + __timer_signal_thread_tclk): Remove. + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed. + * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed. + * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed. + * tst-clock1.c (do_test): Check for availability of CPU clock. + +2004-11-18 Daniel Jacobowitz <dan@codesourcery.com> + + * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: Update RETINSTR use. + * sysdeps/unix/sysv/linux/arm/vfork.S: Likewise. + +2004-12-02 Roland McGrath <roland@redhat.com> + + * Makefile (libpthread-nonshared): Variable removed. + ($(objpfx)libpthread_nonshared.a): Target removed. + ($(inst_libdir)/libpthread_nonshared.a): Likewise. + These are now handled by generic magic from + libpthread-static-only-routines being set. + +2004-11-27 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO, + _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT, + _POSIX_THREAD_PRIO_PROTECT): Define. + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise. + +2004-11-26 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO, + _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE, + _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG, + _POSIX_TYPED_MEMORY_OBJECTS): Define. + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise. + +2004-11-05 Maciej W. Rozycki <macro@mips.com> + + * sysdeps/mips/pspinlock.c: Include <sgidefs.h>. Use _ABIO32, + _ABIN32 and _ABI64 for ABI selection throughout. + * sysdeps/mips/pt-machine.h: Use _ABIO32, _ABIN32 and _ABI64 for + ABI selection throughout. + +2004-10-18 Roland McGrath <roland@redhat.com> + + [BZ #406] + * Makefile (linuxthreads-CPPFLAGS): New variable; + adds -DIS_IN_linuxthreads=1. + * sysdeps/i386/tls.h: Protect "useldt.h" with + [!IS_IN_linuxthreads && !DO_MODIFY_LDT]. + * sysdeps/i386/i686/pt-machine.h: Revert last change. + +2004-10-14 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/errno-loc.c: Don't undef #errno + if RTLD_PRIVATE_ERRNO. + +2004-10-05 Dwayne Grant McConnell <dgm69@us.ibm.com> + + * pthread.c: Mask restart signal during cancel signal handler. + +2004-10-05 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME, + _POSIX_THREAD_CPUTIME): Define to 0. + +2004-10-04 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Set _POSIX_CPUTIME + and _POSIX_THREAD_CPUTIME to zero. + * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise. + + * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define + _POSIX_THREAD_PROCESS_SHARED and _POSIX_CLOCK_SELECTION as -1. + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise. + +2004-09-25 Roland McGrath <roland@redhat.com> + + [BZ #406] + * sysdeps/i386/i686/pt-machine.h: Don't #include "../useldt.h" if + [_TLS_H], since sysdeps/i386/tls.h includes it after including us. + +2004-09-24 Roland McGrath <roland@redhat.com> + + [BZ #406] + * sysdeps/i386/tls.h: Move #include "useldt.h" outside + of [__ASSUME_LDT_WORKS > 0] test. + Reported by Carlos Velasco <carlos.velasco@newipnet.com>. + +2004-09-21 Roland McGrath <roland@redhat.com> + + * Versions: Add comment about linuxthreads' frozen ABI. + +2004-09-20 Ulrich Drepper <drepper@redhat.com> + + * Versions: Remove exports for pthread_set*id_np functions. + * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes + for now. + * Makefile: Don't build pthread_set*id code for now. + +2004-09-19 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/pthread.h: Declare pthread_setgid_np, + pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np, + pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np, + and pthread_setresuid_np. + * pthread_setgid_np.c: New file. + * pthread_setuid_np.c: New file. + * pthread_setegid_np.c: New file. + * pthread_seteuid_np.c: New file. + * pthread_setregid_np.c: New file. + * pthread_setreuid_np.c: New file. + * pthread_setresgid_np.c: New file. + * pthread_setresuid_np.c: New file. + * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np, + pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np, + pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np, + and pthread_setresuid_np. + * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid, + pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid, + pthread_setregid, and pthread_setresgid. + +2004-09-12 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/pthread.h: Make rwlock prototypes available also + for __USE_XOPEN2K. + * sysdeps/pthread/bits/pthreadtypes.h: Define rwlock types also + for __USE_XOPEN2K. [BZ #320] + +2004-09-04 Jakub Jelinek <jakub@redhat.com> + + * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available. + +2004-09-07 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since + the initialization function might throw. + +2004-08-30 Roland McGrath <roland@frob.com> + + * Makefile (libpthread-abi-frozen): New variable. + +2004-08-26 Roland McGrath <roland@redhat.com> + + * configure.in: New file. If nptl add-on is also selected, barf if + explicit and elide ourselves if implicit. + * configure: Now generated. + +2004-08-25 Richard Sandiford <rsandifo@redhat.com> + + * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h (CENABLE, CDISABLE, + __local_multiple_threads): Fix definitions for IS_IN_librt. + * sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h: Likewise. + +2004-08-22 Andreas Schwab <schwab@suse.de> + + * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO) [IS_IN_librt]: + Save gp around CENABLE/CDISABLE calls. + +2004-08-15 Roland McGrath <roland@frob.com> + + * pthread_atfork.c: Update copyright terms including special exception + for these trivial files, which are statically linked into executables + that use dynamic linking for the significant library code. + +2004-08-09 Jakub Jelinek <jakub@redhat.com> + + * libc-tsd.c: Move resolv.h include before the #if. + (__res_maybe_init): New function. Add libc_hidden_def. + +2004-08-02 Ulrich Drepper <drepper@redhat.com> + + * linuxthreads.texi (Cleanup Handlers): Fix typo. + Reported by Bjoern Engelmann <bjengelmann@gmx.de>. + +2004-07-23 Jakub Jelinek <jakub@redhat.com> + + [BZ #284] + * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t + instead of clockid_t. + +2004-07-21 Roland McGrath <roland@redhat.com> + + * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory). + +2004-07-02 Roland McGrath <roland@redhat.com> + + * configure: Don't exit. + +2004-07-20 Alexandre Oliva <aoliva@redhat.com> + + * sysdeps/mips/pt-machine.h: Use standard names for ABI macros, + include sgidefs.h. + * sysdeps/mips/atomicity.h: Likewise. + +2004-07-19 Alexandre Oliva <aoliva@redhat.com> + + * sysdeps/unix/sysv/linux/mips/Makefile (CFLAGS-pt-initfini.s): + Remove redundant override that missed -g0. + +2004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h + (__local_multiple_threads): Define for librt. + (SINGLE_THREAD_P): Likewise. + +2004-07-07 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/getcpuclockid.c (pthread_getcpuclockid): Allow + using other thread's clock. + * ptclock_gettime.c (__pthread_clock_gettime): Likewise. + * ptclock_settime.c (__pthread_clock_settime): Likewise. + * internals.h (__pthread_clock_gettime, __pthread_clock_settime): + Remove prototypes. + Reported by Bernd Schmidt <bernds@redhat.com>. + * Makefile (librt-tests): Add tst-clock1. + * tst-clock1.c: New test. + + * sysdeps/x86_64/Versions: New file. + * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file. + * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file. + +2004-04-16 Andreas Schwab <schwab@suse.de> + + * sysdeps/ia64/tls.h (INIT_SYSINFO): Cast dl_sysinfo to void*. + +2004-07-05 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/s390/pspinlock.c (__pthread_spin_lock, + __pthread_spin_trylock): Use constraint "m" instead of "0" for + futex. + * sysdeps/ia64/pt-machine.h (__compare_and_swap, + __compare_and_swap_with_release_semantic, testandset): Use + constraint "m" instead of "0" for futex. + +2004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Fix + branch offset for a PLT entry. + (CDISABLE): Likewise. + +2004-05-31 Andreas Jaeger <aj@suse.de> + + * sysdeps/unix/sysv/linux/mips/Makefile (CFLAGS-pt-initfini.s): + Set to -fno-unit-at-a-time. + Patch by Dan Kegel <dank@kegel.com>. + +2004-05-04 Jakub Jelinek <jakub@redhat.com> + + * tst-stack1.c: Don't include mcheck.h. + (do_test): Make sure user defined stacks aren't reused, + don't free them at the end. [BZ #110] + +2004-05-02 Jakub Jelinek <jakub@redhat.com> + + * manager.c: Include not-cancel.h. + (__pthread_manager): Use read_not_cancel instead of __libc_read. + (pthread_start_thread, __pthread_manager_sighandler): Use + write_not_cancel instead of __libc_write. + (pthread_reap_children): Use waitpid_not_cancel instead of + __libc_waitpid. + * pthread.c: Include not-cancel.h. + (__pthread_initialize_minimal, __pthread_create_2_1, + pthread_onexit_process, __pthread_message): Use + write_not_cancel instead of __libc_write. + (__pthread_initialize_manager): Likewise. Use close_not_cancel + instead of __libc_close. + (__pthread_reset_main_thread): Use close_not_cancel instead of + __libc_close. + * join.c: Include not-cancel.h. + (__pthread_do_exit, pthread_join, pthread_detach): Use + write_not_cancel instead of __libc_write. + * semaphore.c: Include not-cancel.h. + (__new_sem_post): Use write_not_cancel instead of __libc_write. + * specific.c: Include not-cancel.h. + (pthread_key_delete): Use write_not_cancel instead of __libc_write. + +2004-05-01 Jakub Jelinek <jakub@redhat.com> + + * Versions (libc): Add __on_exit and __libc_sigaction. + +2004-04-28 Jakub Jelinek <jakub@redhat.com> + + * semaphore.c (sem_timedwait): Return -1 and set errno instead of + returning error number [BZ #133]. Patch by <rmhaddad@yahoo.com>. + +2004-04-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp> + + * sysdeps/unix/sysv/linux/sh/vfork.S: Fix wrong function pointer + reference in PIC case. + +2004-04-20 Jakub Jelinek <jakub@redhat.com> + + * oldsemaphore.c (SEM_VALUE_MAX): Remove. + +2004-04-19 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Define + for librt. Save the return value to a safe register. + (CDISABLE): Define for librt. Set the function argument correctly. + +2004-04-18 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h + (PSEUDO_CANCEL): Define. + (PSEUDO): Use it. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE, + CDISABLE): For librt, append @PLT. + +2004-04-17 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/x86_64/tls.h [!__ASSEMBLER__]: Include tcb-offsets.h. + + * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer + return it_value { 0, 0 }. + * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE + like SIGEV_SIGNAL. + * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove + assertion for SIGEV_NONE. + (thread_attr_compare): Compare all attributes, not just a partial + subset. + + * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h. + +2004-04-17 Ulrich Drepper <drepper@redhat.com> + + * semaphore.h (SEM_VALUE_MAX): Just use a plain number. + +2004-04-16 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix last patch. + +2004-04-13 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning. + +2004-04-12 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/mq_notify.c: New file. + + * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE): Define + for librt. + (CDISABLE): Likewise. + +2004-04-08 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define. + * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define. + * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define. + * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define. + * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING): + Define. + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h + (_POSIX_MESSAGE_PASSING): Define. + +2004-04-10 Andreas Jaeger <aj@suse.de> + + * sysdeps/x86_64/pt-machine.h: Add used attribute to stack_pointer + to avoid warnings with GCC 3.5. + +2004-04-09 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/powerpc/tls.h (TLS_INIT_TP): Eliminate lvalue cast from + __thread_self assignment. + (THREAD_DTV): Replace __thread_register with __thread_self. + (INIT_THREAD_SELF): Eliminate lvalue cast from __thread_self + assignment. + +2004-04-08 Alexandre Oliva <aoliva@redhat.com> + + * signals.c (pthread_sigmask): Don't ever block or mask + __pthread_sig_debug. + +2004-03-11 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/powerpc/tls.h: Remove __powerpc64__ conditional. + +2004-03-23 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/ia64/pt-machine.h (BUSY_WAIT_NOP): Define. + * sysdeps/x86_64/pt-machine.h (BUSY_WAIT_NOP): Likewise. + +2004-03-12 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/bits/local_lim.h: Add HOST_NAME_MAX. + * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise. + +2004-03-08 Andreas Jaeger <aj@suse.de> + + * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT_KERNEL_CHECK): + dl_osversion is readonly. + +2004-03-07 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/tls.h (INIT_SYSINFO): _dl_sysinfo is now in + _rtlf_global_ro. + * sysdeps/ia64/tls.h (INIT_SYSINFO): Likewise. + +2004-02-20 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/unix/sysv/linux/powerpc/ptlongjmp.c [SHARED]: Code only + valid for SHARED case. Correct spelling of __vmx_longjmp. + + * sysdeps/powerpc/pspinlock.c: Move from here. + * sysdeps/powerpc/powerpc32/pspinlock.c: To here. + * sysdeps/powerpc/powerpc64/pspinlock.c: New file. + * sysdeps/powerpc/powerpc64/pt-machine.h: Define __compare_and_swap32 + and __compare_and_swap32_with_release_semantics. + +2004-02-20 Jakub Jelinek <jakub@redhat.com> + + * Makefile (generated): Remove tst-stack1.mtrace and tst-stack1-mem. + (tests): Remove $(objpfx)tst-stack1-mem. + (tst-stack1-ENV): Remove. + ($(objpfx)tst-stack1-mem): Remove. + + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h + (__syscall_error_handler2): Call CDISABLE. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h + (__syscall_error_handler2): Call CDISABLE. + + * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define. + +2004-02-10 Steven Munroe <sjmunroe@us.ibm.com> + + * Makefile (libpthread-routines): Add ptcleanup. + * ptlongjmp.c: Removed. + * ptcleanup.c: Copied __pthread_cleanup_upto to here. New file. + * sysdeps/pthread/ptlongjmp.c: Copied longjmp to here. New file. + * sysdeps/unix/sysv/linux/powerpc/Versions: New file. + Version longjmp, siglongjmp for GLIBC_2.3.4. + * sysdeps/unix/sysv/linux/powerpc/ptlongjmp.c: New File. + +2004-01-22 Andreas Jaeger <aj@suse.de> + + * spinlock.c (__pthread_lock): Fix contraint to avoid warning. + (__pthread_release): Likewise. + +2004-01-16 Richard Henderson <rth@redhat.com> + + * attr.c: Include ldsodefs.h. + (pthread_getattr_np): Don't declare __libc_stack_end. + +2004-01-09 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h + [!HAVE_TLS_SUPPORT]: Define SINGLE_THREAD_P using static + __lib*_multiple_threads. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h + [!HAVE_TLS_SUPPORT]: Likewise. + +2004-01-13 Roland McGrath <roland@redhat.com> + + * sysdeps/powerpc/tcb-offsets.sym: Put -- separator line before any + conditionals. + +2004-01-10 Andreas Jaeger <aj@suse.de> + + * sysdeps/unix/sysv/linux/x86_64/vfork.S: Add cfi directives. + +2004-01-01 Andreas Jaeger <aj@suse.de> + + * Makefile (generated): Add missing files. + +2003-12-31 Ulrich Drepper <drepper@redhat.com> + + * attr.c (pthread_getattr_np): Make sure stack info returned for + main thread does not overlap with any other VMA. + Patch by Jakub Jelinek. + +2003-12-29 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/ia64/tls.h: Include dl-sysdep.h. + (INIT_SYSINFO): Define. + (TLS_INIT_TP): Use it. + +2003-12-28 Carlos O'Donell <carlos@baldric.uwo.ca> + + * attr.c (pthread_getattr_np): Add _STACK_GROWS_UP case. + +2003-12-26 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/pthread.h (pthread_setcancelstate, + pthread_setcanceltype, pthread_cancel, pthread_testcancel): Remove + __THROW. + * semaphore.h (sem_wait, sem_timedwait): Likewise. + +2003-12-17 Jakub Jelinek <jakub@redhat.com> + + * manager.c (pthread_free): Call _dl_deallocate_tls even for + p_userstack threads. + * pthread.c (__pthread_initialize_manager): Call _dl_deallocate_tls + on error. + (pthread_onexit_process): Update comment. + * Makefile (tests): Add tst-stack1. Depend on $(objpfx)tst-stack1-mem. + (generated): Add tst-stack1.mtrace and tst-stack1-mem. + (tst-stack1-ENV): Set. + ($(objpfx)tst-stack1-mem): New. + * tst-stack1.c: New test. + +2003-12-16 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/powerpc/tcb-offsets.sym [!__powerpc64__]: Remove + conditional so MULTIPLE_THREADS_OFFSET is generated for both. + * sysdeps/powerpc/tls.h [!__powerpc64__]: Remove conditional + so TLS_MULTIPLE_THREADS_IN_TCB is generated for both. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: + Include tls.h. + +2003-12-04 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h + (SINGLE_THREAD_P): Test using thread local p_multiple_threads field. + +2003-12-10 David Mosberger <davidm@hpl.hp.com> + + * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Update copyright + message. Add include of <stddef.h>. + (INIT_NEW_WAY): New macro. + (INIT_OLD_WAY): Likewise. + (_init): Add unwind directives. Invoke + __pthread_initialize_minimal() via INIT_NEW_WAY or INIT_OLD_WAY, + respectively. + (_init_EPILOG_BEGINS): Add unwind-directives. Drop unused .regstk + directive. + (_fini): Add unwind directives. Drop unnecessary .align 16 + directive (bundles are always 16-byte aligned). + (_fini_EPILOG_BEGINS): Add unwind-directives. + +2003-11-19 David Mosberger <davidm@hpl.hp.com> + + * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file. + +2003-12-10 Andreas Jaeger <aj@suse.de> + Ruediger Oertel <ro@suse.de> + + * sysdeps/alpha/elf/pt-initfini.c (__asm__): Remove extra .prologue. + +2003-11-30 Andreas Jaeger <aj@suse.de> + + * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time). + * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s): + Likewise. + +2003-11-04 Jakub Jelinek <jakub@redhat.com> + + * signals.c (__pthread_sigaction): Set __sighandler[sig].old before + __libc_sigaction if it has been one of the special values before. + +2003-10-06 Carlos O'Donell <carlos@baldric.uwo.ca> + + * pthread.c (__pthread_self_stack): _STACK_GROWS_UP case added. + (__pthread_find_self): Likewise. + * manager.c (thread_segment): _STACK_GROWS_UP case added. + +2003-10-10 Carlos O'Donell <carlos@baldric.uwo.ca> + + * linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h: New file. + +2003-10-10 Carlos O'Donell <carlos@baldric.uwo.ca> + + * sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h: New file. + +2003-10-07 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02 + changes. + (SAVE_OLDTYPE_0): Fix a typo. + +2003-10-02 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use + correct offset. + +2003-10-02 Jakub Jelinek <jakub@redhat.com> + + * Makefile (tests): Add tst-cancel8. + * tst-cancel8.c: New test. + +2003-10-02 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and + restoring of the old cancellation type. + +2003-09-10 Chris Demetriou <cgd@broadcom.com> + + * sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h: New file. + +2003-09-30 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/malloc-machine.h [!__libc_maybe_call2] (mutex_init, + mutex_lock, mutex_trylock, mutex_unlock): Remove. + +2003-09-27 Wolfram Gloger <wg@malloc.de> + + * sysdeps/pthread/malloc-machine.h: New file. + +2003-09-18 H.J. Lu <hongjiu.lu@intel.com> + + * attr.c (__pthread_attr_init_2_1): Double __guardsize size + if NEED_SEPARATE_REGISTER_STACK is defined. + +2003-09-22 Philip Blundell <philb@gnu.org> + + * forward.c: Add _pthread_cleanup_push, _pthread_cleanup_pop. + * sysdeps/pthread/pthread-functions.h (struct pthread_functions): + Likewise. + * pthread.c (__pthread_elements): Initialise these new elements. + * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Use + __libc_maybe_call. + (__libc_cleanup_pop): Likewise. + +2003-09-22 Jakub Jelinek <jakub@redhat.com> + + * attr.c: Include stdlib.h. + +2003-09-18 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage. + + * tst-attr1.c: New test. + * Makefile (tests): Add tst-attr1. + +2003-09-17 Philip Blundell <philb@gnu.org> + + * sysdeps/unix/sysv/linux/arm/vfork.S: Branch to fork if + libpthread is loaded. Elide backwards compatibility code when not + required. + +2003-09-17 Jakub Jelinek <jakub@redhat.com> + + * descr.h (manager_thread): Rename to... + (__pthread_manager_threadp): ... this. + * pthread.c (manager_thread): Define to __pthread_manager_threadp. + (__pthread_manager_threadp): New variable. + * internals.h (__manager_thread): Define to + __pthread_manager_threadp if USE_TLS. + +2003-09-15 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/i386/Makefile (CFLAGS-cancel.c, CFLAGS-manager.c, + CFLAGS-pthread.c, CFLAGS-sighandler.c): Add + -mpreferred-stack-boundary=4. + +2003-09-16 Ulrich Drepper <drepper@redhat.com> + + * attr.c (pthread_getattr_np): Correctly fill in the stack-related + values for the initial thread. + +2003-09-17 Jakub Jelinek <jakub@redhat.com> + + * pthread.c (manager_thread): Remove static, add attribute_hidden. + (thread_self_stack): Rename to... + (__pthread_self_stack): ... this. Remove static. + (pthread_handle_sigcancel): Use check_thread_self (). + (pthread_handle_sigrestart): Likewise. + * sighandler.c (__pthread_sighandler, __pthread_sighandler_rt): + Likewise. + * descr.h (manager_thread): Declare. + * internals.h (__pthread_self_stack): New prototype. + (__manager_thread): Define. + (check_thread_self): New function. + +2003-09-15 Jakub Jelinek <jakub@redhat.com> + + * Makefile (CFLAGS-mutex.c): Add $(uses-callbacks). + (CFLAGS-sighandler.c): Change $(exceptions) into $(uses-callbacks). + +2003-09-12 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: New. + (__SSIZE_T_TYPE): Define to __SWORD_TYPE for gcc 2.95.x and + __SLONGWORD_TYPE otherwise. + +2003-09-11 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/powerpc/powerpc64/pt-machine.h [MEMORY_BARRIER]: Use lwsync. + [READ_MEMORY_BARRIER]: Define. + [WRITE_MEMORY_BARRIER]: Define. + +2003-09-10 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Move + ptr___pthread_cond_timedwait to the end of the structure to avoid + breaking Wine unnecessarily. + +2003-09-08 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: Remove. + +2003-09-02 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file. + * sysdeps/unix/sysv/linux/alpha/Versions: New file. + * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file. + * sysdeps/unix/sysv/linux/ia64/Versions: New file. + * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file. + * sysdeps/unix/sysv/linux/sparc/Versions: New file. + * attr.c (__old_pthread_attr_setstacksize, + __old_pthread_attr_setstack): New functions. + (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export + as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1. + (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export + as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2. + * tststack.c: Include limits.h and sys/param.h. + (main): Set size to MAX (70 * 1024, PTHREAD_STACK_MIN). + + * barrier.c (__pthread_barrierattr_getpshared): Always + return PTHREAD_PROCESS_PRIVATE. + (pthread_barrierattr_setpshared): Return EINVAL if pshared + is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED. + +2003-09-02 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/i386/dl-sysdep.h + (DL_SYSINFO_IMPLEMENTATION): Add CFI and make sure the code ends + up in .text. + + * barrier.c (pthread_barrierattr_setpshared): We don't handle + inter-process barriers. + +2003-09-01 Jakub Jelinek <jakub@redhat.com> + + * Makefile (tests): Add tst-tls1. + (module-names): Add tst-tls1mod{,a,b,c,d,e,f}. + ($(objpfx)tst-tls1mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes. + ($(objpfx)tst-tls1): New. + ($(objpfx)tst-tls2.out): Likewise. + (tests): Depend on $(objpfx)tst-tls2.out. + * tst-tls1.c: New test. + * tst-tls1.h: New. + * tst-tls1mod.c: New. + * tst-tls1moda.c: New. + * tst-tls1modb.c: New. + * tst-tls1modc.c: New. + * tst-tls1modd.c: New. + * tst-tls1mode.c: New. + * tst-tls1modf.c: New. + * tst-tls2.sh: New test. + + * internals.h (__pthread_cond_timedwait): New prototype. + * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add + ptr___pthread_cond_timedwait. + * pthread.c (__pthread_functions): Initialize them. + * forward.c (pthread_cond_timedwait@GLIBC_2.0, + pthread_cond_timedwait@@GLIBC_2.3.2): New forwards. + * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0, + pthread_cond_timedwait@@GLIBC_2.3.2. + +2003-08-27 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/pthread.h: Don't mark pthread_exit, + pthread_join, pthread_cond_wait, and pthread_cond_timedwait with + __THROW to match NPTL. + +2003-08-13 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/Makefile [subdir=rt] (CPPFLAGS): Add + -DBROKEN_THREAD_SIGNALS. + +2003-08-11 Steven Munroe <sjmunroe@us.ibm.com> + + * manager.c (pthread_start_thread) [!(USE_TLS && HAVE___THREAD)]: + Correct spelling of per thread resolver state. + +2003-08-07 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED] + (__rtld_lock_default_lock_recursive, + __rtld_lock_default_unlock_recursive): Define. + [_LIBC && SHARED] (__rtld_lock_lock_recursive, + __rtld_lock_unlock_recursive): Define using + GL(_dl_rtld_*lock_recursive). + * pthread.c (pthread_initialize): Initialize _dl_rtld_lock_recursive + and _dl_rtld_unlock_recursive. Lock GL(_dl_load_lock) the same + number of times as GL(_dl_load_lock) using non-mt implementation was + nested. + +2003-07-31 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/bits/typesizes.h (__SSIZE_T_TYPE): Define. + * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h (__SSIZE_T_TYPE): + Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h (__SSIZE_T_TYPE): + Likewise. + * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: New file. + + * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr, + pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to + PTHREAD_STACK_MIN in comments. + + * sysdeps/alpha/pt-machine.h (PT_EI): Add + __attribute__((always_inline)). + * sysdeps/arm/pt-machine.h (PT_EI): Likewise. + * sysdeps/cris/pt-machine.h (PT_EI): Likewise. + * sysdeps/hppa/pt-machine.h (PT_EI): Likewise. + * sysdeps/i386/i686/pt-machine.h (PT_EI): Likewise. + * sysdeps/i386/pt-machine.h (PT_EI): Likewise. + * sysdeps/ia64/pt-machine.h (PT_EI): Likewise. + * sysdeps/m68k/pt-machine.h (PT_EI): Likewise. + * sysdeps/mips/pt-machine.h (PT_EI): Likewise. + * sysdeps/powerpc/powerpc32/pt-machine.h (PT_EI): Likewise. + * sysdeps/powerpc/powerpc64/pt-machine.h (PT_EI): Likewise. + * sysdeps/s390/s390-32/pt-machine.h (PT_EI): Likewise. + * sysdeps/s390/s390-64/pt-machine.h (PT_EI): Likewise. + * sysdeps/sh/pt-machine.h (PT_EI): Likewise. + * sysdeps/sparc/sparc32/pt-machine.h (PT_EI): Likewise. + * sysdeps/sparc/sparc64/pt-machine.h (PT_EI): Likewise. + * sysdeps/x86_64/pt-machine.h (PT_EI): Likewise. + * spinlock.h (__pthread_set_own_extricate_if): Likewise. + * sysdeps/ia64/tls.h (TLS_INIT_TP): Cast tcbp to __typeof + (__thread_self). + * Examples/ex13.c (main): Change res type to void * to avoid + warnings. + * tst-cancel.c (cleanup, inner, tf1, tf2, tf3): Comment out. + +2003-07-30 Jakub Jelinek <jakub@redhat.com> + + * pthread.c (init_one_static_tls, __pthread_init_static_tls): New + functions. + (pthread_initialize): Initialize GL(dl_init_static_tls). + +2003-06-19 Daniel Jacobowitz <drow@mvista.com> + + * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref + before __timer_dealloc. + * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching): + Don't call list_unlink. + +2003-07-29 Roland McGrath <roland@redhat.com> + + * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules). + +2003-07-25 Roland McGrath <roland@redhat.com> + + * manager.c (pthread_start_thread): Fix typo in last change. + +2003-07-14 Guido Guenther <agx@sigxcpu.org> + + * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: Add IS_IN_librt, + use L() for local labels. + +2003-07-22 Jakub Jelinek <jakub@redhat.com> + + * descr.h (struct _pthread_descr_struct): Provide p_res member + even if USE_TLS && HAVE___THREAD. + * sysdeps/pthread/res-state.c (__res_state): Return __resp + if USE___THREAD. + * manager.c: Include resolv.h. + (pthread_start_thread): Initialize __resp. + * libc-tls-loc.c (__res_state): Return __resp. + * Makefile (tests): Add tst-_res1. + (modules-names, extra-objs, test-extras, test-modules): Add support + for test modules. + ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so. + ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and + -lpthread. + * tst-_res1.c: New test. + * tst-_res1mod1.c: New test. + * tst-_res1mod2.c: New test. + +2003-07-20 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/bits/libc-lock.h: Define __libc_cleanup_push and + __libc_cleanup_pop. + + * tst-cancel-wrappers.sh: lseek and llseek are no cancellation points. + +2003-07-14 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Fix typo + in test for compilation in libc. + +2003-07-04 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use + different symbol for the cancellation syscall wrapper and + non-cancellation syscall wrapper. + (PSEUDO_END): Define. + +2003-07-05 Richard Henderson <rth@redhat.com> + + * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end. + +2003-06-20 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Support cancellation + in librt. + +2003-06-21 Andreas Schwab <schwab@suse.de> + + * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Support cancellation + in librt. + +2003-06-20 Richard Henderson <rth@redhat.com> + + * sysdeps/unix/sysv/linux/alpha/Makefile (libpthread-routines): + Remove ptw-osf_sigprocmask. + +2003-06-18 Jakub Jelinek <jakub@redhat.com> + + * internals.h (__librt_multiple_threads, __librt_enable_asynccancel, + __librt_disable_asynccancel): Declare. + (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET, LIBC_CANCEL_HANDLED): Define + for IS_IN_librt. + * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Support cancellation + in librt. + * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise. + * sysdeps/x86_64/tcb-offsets.sym: New file. + * sysdeps/x86_64/Makefile: New file. + * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads. + * Versions (libc): Export __librt_enable_asynccancel, + __librt_disable_asynccancel and __librt_multiple_threads as + GLIBC_PRIVATE. + * libc-cancellation.c (__librt_multiple_threads, + __librt_enable_asynccancel, __librt_disable_asynccancel): New aliases. + +2003-06-12 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h + (SINGLE_THREAD_P): Replace @ got notation with @toc. + +2003-06-11 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/powerpc/pspinlock.c (__pthread_spin_init): Fix + initializer [PR libc/5052]. + +2003-06-09 Andreas Schwab <schwab@suse.de> + + * Makefile: Move inclusion of ../Rules down after extra-objs is + fully known. + +2003-06-06 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: New sequences for + 5+ arg syscalls only needed for PIC. + Patch by Ralph Siemsen <ralphs@netwinder.org>. + +2003-06-05 Richard Henderson <rth@redhat.com> + + * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use + and require CFI assembler directives. + * sysdeps/unix/sysv/linux/alpha/vfork.S: Likewise. + +2003-05-30 Andreas Jaeger <aj@suse.de> + + * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h + (SAVESTK_0): Add CFI directives. + (SAVESTK_3): Likewise. + (SAVESTK_5): Likewise. + (RESTSTK_0): Likewise. + (RESTSTK_3): Likewise. + (RESTSTK_5): Likewise. + +2003-05-05 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Add \n to error + messages. + +2003-05-04 Roland McGrath <roland@redhat.com> + + * Makefile ($(objpfx)../libc.so): New target. + +2003-04-26 Ulrich Drepper <drepper@redhat.com> + + * pthread.c (__pthread_initialize_manager): Remove one last + p_multiple_threads call. + +2003-04-22 Jakub Jelinek <jakub@redhat.com> + + * pthread.c (__pthread_initialize_manager): Subtract + TLS_PRE_TCB_SIZE bytes from tcbp to get to descr. + * manager.c (pthread_handle_create): Subtract or add TLS_PRE_TCB_SIZE + instead of sizeof (pthread_descr). + (pthread_free): Add TLS_PRE_TCB_SIZE instead of sizeof (pthread_descr). + * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define to 0. + (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of + pthread_descr. + (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad + to TLS_TCB_ALIGN. + (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before + tcbp. + (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE + unneccessarily. + (NO_TLS_OFFSET): Define. + +2003-04-22 Roland McGrath <roland@redhat.com> + + * Makeconfig (shared-thread-library): Reverse link order to work + around linker bug. + +2003-04-20 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Make sure the + compiler knows we use the ldt_entry variable and that the syscall + modifies the memory. + + * internals.h: Split pthread_functions definition into... + * sysdeps/pthread/pthread-functions.h: ...new file. + + * sysdeps/i386/useldt.h: Include <sysdep.h>. + +2003-04-13 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Rename macros to + match changes in NPTL sysdep-cancel.h. + +2003-04-11 Roland McGrath <roland@redhat.com> + + * Makefile (multidir): Don't set the variable here with $(shell ...). + ($(objpfx)multidir.mk): New target, generated makefile; include that. + (generated): Append it. + +2003-04-10 Jakub Jelinek <jakub@redhat.com> + + * Makefile (multidir, crti-objs, crtn-objs): New variables. + (generated-dirs): Add pathname component of multidir. + (omit-deps, extra-objs): Include $(multidir)/crt? as well. + ($(objpfx)libpthread.so): Depend on $(multidir)/crt?.o as well. + ($(objpfx)$(multidir), $(objpfx)$(multidir)/crti.o, + $(objpfx)$(multidir)/crtn.o): New. + * sysdeps/unix/sysv/linux/sparc/Makefile: Removed. + * sysdeps/unix/sysv/linux/x86_64/Makefile (LDFLAGS-pthread.so, + before-compile, generated): Don't generate and use specs. + ($(objpfx)specs): Remove. + +2003-04-11 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/s390/pspinlock.c (__pthread_spin_unlock): Fix asm contraints. + +2003-04-03 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (PSEUDO): Add + missing ; after ENTRY use [PR libc/4997]. + +2003-04-03 Jakub Jelinek <jakub@redhat.com> + + * pthread.c (pthread_initialize): Unblock __pthread_sig_cancel + in case the parent blocked it. + +2003-04-02 Jakub Jelinek <jakub@redhat.com> + + * Makefile (libpthread-routines): Add pthread_atfork. + (libpthread-static-only-routines): Add pthread_atfork. + +2003-04-01 Jakub Jelinek <jakub@redhat.com> + + * pthread.c (__pthread_wait_for_restart_signal): Use + __pthread_sigsuspend instead of sigsuspend. + * internals.h (__pthread_sigsuspend): New prototype. + * Makefile (libpthread-routines): Add pt-sigsuspend. + (tests): Add tst-cancel7. + * sysdeps/unix/sysv/linux/pt-sigsuspend.c: New file. + * sysdeps/unix/sysv/linux/alpha/pt-sigsuspend.S: New file. + * sysdeps/unix/sysv/linux/ia64/pt-sigsuspend.c: New file. + * sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c: New file. + * sysdeps/unix/sysv/linux/sparc/sparc64/pt-sigsuspend.c: New file. + * sysdeps/unix/sysv/linux/x86_64/pt-sigsuspend.c: New file. + * tst-cancel7.c: New test. + +2003-03-31 Alexandre Oliva <aoliva@redhat.com> + + * alloca_cutoff.c: Include internals.h. + * sysdeps/pthread/errno-loc.c: Include linuxthreads/internals.h. + * sysdeps/pthread/herrno-loc.c: Likewise. + * sysdeps/pthread/res-state.c: Likewise. + +2003-03-25 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/bits/typesizes.h: New file. + * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h: New file. + * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h: New file. + +2003-03-24 Daniel Jacobowitz <drow@mvista.com> + + * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h + (DOARGS_5, DOARGS_6, DOARGS_7): Rewritten. + +2003-03-22 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def. + +2003-03-21 Daniel Jacobowitz <drow@mvista.com> + + * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h + (SINGLE_THREAD_P_PIC): Use "reg" instead of "lr". + +2003-03-21 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/i386/tls.h [__ASSUME_SET_THREAD_AREA_SYSCALL] + (TLS_SETUP_GS_SEGMENT): Fix a typo. + +2003-03-19 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/Makefile: Fix cut&paste error. + +2003-03-18 Roland McGrath <roland@redhat.com> + + * Versions (libpthread: GLIBC_2.2): Remove + pthread_barrierattr_getpshared, never really existed. + (libpthread: GLIBC_2.0): Move __pthread_initialize to ... + (libpthread: GLIBC_PRIVATE): ... here. + +2003-03-14 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file. + * sysdeps/unix/sysv/linux/sparc/Makefile ($(objpfx)specs): Use full + path for crt[in].o. + +2003-03-14 Alexandre Oliva <aoliva@redhat.com> + + * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Don't .set + mips2 on new abi. + * sysdeps/mips/pt-machine.h (__compare_and_swap): Likewise. + Handle 64-bit longs on n64. + +2003-03-07 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/ia64/pspinlock.c (__pthread_spin_lock, + __pthread_spin_trylock): Rewritten. + +2003-03-06 Ulrich Drepper <drepper@redhat.com> + + * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset + recent kernels. + +2003-03-02 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/timer_create.c (timer_create): Return correct + error for CPU clocks. + + * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define + _POSIX_MONOTONIC_CLOCK. + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise. + +2003-03-01 Roland McGrath <roland@redhat.com> + + * sysdeps/powerpc/powerpc64/pt-machine.h + (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC): + New macros. + * sysdeps/powerpc/tls.h: Don't define those here. + + * sysdeps/powerpc/tls.h [! USE_TLS && !__powerpc64__]: Define + tcbhead_t with multiple_threads member. + [USE_TLS] (tcbhead_t): Define minimal one-word version. + [USE_TLS && !__powerpc64__] (TLS_MULTIPLE_THREADS_IN_TCB): Define. + * sysdeps/powerpc/tcb-offsets.sym [USE_TLS]: Use tls.h macros to + derive thread register offset of p_multiple_threads member. + + * descr.h (struct _pthread_descr_struct) [!USE_TLS || !TLS_DTV_AT_TP]: + Conditionalize p_header member on this. + [TLS_MULTIPLE_THREADS_IN_TCB]: Add p_multiple_threads alternatively. + * sysdeps/ia64/tls.h [USE_TLS] (TLS_MULTIPLE_THREADS_IN_TCB): Define. + * sysdeps/sh/tls.h: Likewise. + * sysdeps/ia64/tcb-offsets.sym [USE_TLS]: Use p_multiple_threads. + * sysdeps/sh/tcb-offsets.sym: Likewise. + * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h + (SINGLE_THREAD_P): Likewise. + * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h + (SINGLE_THREAD_P): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h + (SINGLE_THREAD_P): Likewise. + * pthread.c (__pthread_initialize_manager): Likewise. + * manager.c (pthread_handle_create): Likewise. + + * sysdeps/powerpc/tls.h [HAVE_TLS_SUPPORT]: Define USE_TLS and all + related macros. + +2003-01-31 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S [SHARED]: + Conditionalize .toc section magic on this. + +2003-02-21 Roland McGrath <roland@redhat.com> + + * cancel.c (__pthread_perform_cleanup): Call __libc_thread_freeres + instead of __rpc_thread_destroy. + +2003-02-21 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Call + __fork instead of branching to it if BROKEN_SPARC_WDISP22. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO): + Fix typo. + * sysdeps/unix/sysv/linux/sparc/Makefile (specs): Add ./ prefix + to crti.o and crtn.o. + * sysdeps/unix/sysv/linux/x86_64/Makefile (specs): Likewise. + +2003-02-21 Roland McGrath <roland@redhat.com> + + * Makefile (install-lib-ldscripts): New variable. + +2003-02-20 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Avoid short + interprocedure branches. + +2003-02-19 Ulrich Drepper <drepper@redhat.com> + + * specific.c (pthread_key_delete_helper): Don't use GETMEM, we + need the target thread's lock. + +2003-02-17 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX + and LOGIN_NAME_MAX. + +2003-02-17 Kevin B. Hendricks <kevin.hendricks@sympatico.ca> + Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + + * sysdeps/powerpc/Makefile: Handle tcb-offsets.sym. + * sysdeps/powerpc/tcb-offsets.sym: New file. + * sysdeps/powerpc/tls.h: New file. + * sysdeps/powerpc/powerpc32/pt-machine.h (FLOATING_STACKS): Define. + (ARCH_STACK_MAX_SIZE): Define. + (THREAD_SELF): Define. + (INIT_THREAD_SELF): Define. + (THREAD_GETMEM): Define. + (THREAD_GETMEM_NC): Define. + (THREAD_SETMEM): Define. + (THREAD_SETMEM_NC): Define. + (__thread_self): Declare. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Adjust + for thread register. + +2003-02-14 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork): + Check pthread_create existance, not __pthread_fork. + +2003-02-12 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c. + +2003-02-10 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Check + pthread_create existance, not __pthread_fork. + * sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/m68k/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork): + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Likewise. + Add .weak pthread_create. + * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Fix a typo. + Check pthread_create existance, not __pthread_fork. + * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Branch to + __fork whenever libpthread.so is loaded. + +2003-02-09 Andreas Jaeger <aj@suse.de> + + * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: + Rework: %r9 is destroyed by functions so don't use it as + temporary, align stack correctly, fix parameter for CDISABLE. + +2003-02-07 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * sysdeps/sh/Makefile: New file. + * sysdeps/sh/tcb-offsets.sym: Likewise. + * sysdeps/sh/tls.h: Don't include sysdep.h. Move include + of linuxthreads/descr.h after the definition of THREAD_SELF. + (tcbhead_t): Use IA64 type tcbhead_t for TLS case. + (TLS_TCB_SIZE): Set size of tcbhead_t. + (TLS_PRE_TCB_SIZE): Define. + (INSTALL_NEW_DTV): Set dtv of tcbhead_t structure instead of + a member of thread structure. + (THREAD_DTV): Likewise. + (TLS_INIT_TP_EXPENSIVE): Remove. + (TLS_INIT_TP): Set gbr register only. + (THREAD_SELF): New. + (INIT_THREAD_SELF): Likewise. + (NONTLS_INIT_TP): New. + * sysdeps/unix/sysv/linux/sh/pt-initfini.c (__fpscr_values): + Remove. + * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Add + SYSCALL_INST_PAD macro after DO_CALL. + (SINGLE_THREAD_P): Fix non-PIC and TLS case so to read the + correct variable. + * sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Branch to __fork + whenever libpthread.so is loaded. + +2003-02-08 Andreas Schwab <schwab@suse.de> + + * sysdeps/unix/sysv/linux/m68k/vfork.S: Branch to __fork whenever + libpthread.so is loaded. + +2003-02-07 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/i386/vfork.S: Make sure + __ASSUME_VFORK_SYSCALL is not defined if the kernel headers have + no __NR_vfork definition. + +2003-02-07 Jakub Jelinek <jakub@redhat.com> + + * tst-popen2.c: New test. + * Makefile (tests): Add tst-popen2. + * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Branch to __fork + whenever libpthread.so is loaded. + * sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Likewise. + +2003-02-05 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/bits/libc-lock.h (__libc_once): Set control + variable for non-libpthread case to the same value the + pthread_once function would use. + +2003-02-03 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): If + BROKEN_SPARC_WDISP22, handle SHARED the same way as non-SHARED. + +2003-02-04 Andreas Jaeger <aj@suse.de> + + * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: Do not use + multi-line strings. + +2003-01-30 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/s390/tls.h (TLS_INIT_TP): Return NULL, not 0. + +2003-01-30 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/alpha/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, + THREAD_SETMEM, THREAD_SETMEM_NC): Avoid warnings about unused self + variable. + * sysdeps/ia64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC, + THREAD_SETMEM, THREAD_SETMEM_NC): Likewise. + * sysdeps/s390/s390-32/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC, + THREAD_SETMEM, THREAD_SETMEM_NC): Likewise. + * sysdeps/s390/s390-64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC, + THREAD_SETMEM, THREAD_SETMEM_NC): Likewise. + * sysdeps/sh/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC, + THREAD_SETMEM, THREAD_SETMEM_NC): Likewise. + * sysdeps/sparc/sparc32/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC, + THREAD_SETMEM, THREAD_SETMEM_NC): Likewise. + * sysdeps/sparc/sparc64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC, + THREAD_SETMEM, THREAD_SETMEM_NC): Likewise. + +2003-01-27 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/s390/s390-32/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF): + Define TLS versions. + * sysdeps/s390/s390-64/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF): + Likewise. + * sysdeps/s390/tls.h [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE, + TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE, TLS_TCB_ALIGN, TLS_TCB_AT_TP, + INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_DTV): + Define. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Use + branch with 32 bit offset. + * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: Likewise. + +2003-01-24 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/sparc/sparc32/pt-machine.h (__thread_self): Change to %g7, + as required by TLS ABI. + * sysdeps/sparc/sparc64/pt-machine.h (__thread_self): Likewise. + * sysdeps/sparc/tls.h [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE, + TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE, TLS_TCB_ALIGN, TLS_TCB_AT_TP, + INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_DTV): + Define. + [HAVE_TLS_SUPPORT]: Include descr.h and sysdep.h. + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Use %g7 + instead of %g6 for thread pointer. + * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise. + +2003-01-25 Guido Guenther <agx@sigxcpu.org> + + * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file. + * sysdeps/unix/sysv/linux/mips/Makefile: New file. + +2003-01-20 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Avoid non pc relative + reference to __fork. + +2003-01-17 Richard Henderson <rth@redhat.com> + + * sysdeps/alpha/tls.h (tcbhead_t): Clarify second member. + (TLS_TCB_SIZE, TLS_TCB_ALIGN): Set for tcbhead_t. + (TLS_PRE_TCB_SIZE): New. + (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Update for + new ia64-style thread pointer layout. + (THREAD_GETMEM, THREAD_GETMEM_NC): New. + (THREAD_SETMEM, THREAD_SETMEM_NC): New. + * sysdeps/unix/sysv/linux/alpha/vfork.S: Don't tail-call to __fork + if !SHARED. + +2003-01-15 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/ia64/tls.h (tcbhead_t): Use the TLS ABI required layout + if USE_TLS only. + (NONTLS_INIT_TP): Revert last change. + * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define to + offsetof (tcbhead_t, multiple_threads) if USE_TLS not defined. + +2003-01-16 Jakub Jelinek <jakub@redhat.com> + + * pthread.c (_pthread_initialize_minimal): Use + GL(dl_tls_dtv_slotinfo_list) != NULL to check whether TLS has + been already initialized. + +2003-01-16 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize head->sysinfo even + if not SHARED. + +2003-01-15 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init, + __libc_lock_init_recursive): Initialize fields directly. + +2003-01-15 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Allow + __fork to be far away from __vfork ifndef SHARED. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise. + Add a missing instruction. + * sysdeps/unix/sysv/linux/arm/vfork.S (__vfork): Conditionally + branch to __fork even if __NR_vfork is not defined. + +2003-01-14 Ulrich Drepper <drepper@redhat.com> + + * tst-cancel-wrappers.sh: Allow .__*_asynccancel functions names + as well. + +2003-01-14 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file. + +2003-01-14 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/ia64/vfork.S (JUMPTARGET): Remove. + +2003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: Avoid + unterminated string literals. + * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: Likewise. + +2003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h + (PSEUDO): Code reordering. Move CENABLE and CDISABLE literals from + PSEUDO_END to PSEUDO. + (PSEUDO_END): Remove. + (SINGLE_THREAD_P): Save an instruction. + * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add missing + parameter to SINGLE_THREAD_P call. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): + Code reordering. + +2003-01-10 Andreas Schwab <schwab@suse.de> + + * sysdeps/unix/sysv/linux/m68k/vfork.S: New file. + +2003-01-10 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Setup + backchain in pseudo_cancel. Minor code improvements. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): + Likewise. + +2003-01-10 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file. + * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file. + +2002-01-12 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file. + +2002-01-09 Richard Henderson <rth@redhat.com> + + * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Assume only + ret follows pseudo, and thus avoid branch-to-branch in cancel + case. Use SYSCALL_ERROR_LABEL. + +2003-01-11 Philip Blundell <philb@gnu.org> + + * sysdeps/unix/sysv/linux/arm/vfork.S: New file. + * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (PSEUDO_RET): + Correctly unstack lr. + (UNDOARGS_5): Fix ordering of pushes and pops. + (SINGLE_THREAD_P_PIC): New. + (SINGLE_THREAD_P_INT): New. + (SINGLE_THREAD_P): Implement in terms of above. Restore lr if it + was stacked. + (PSEUDO): Use SINGLE_THREAD_P_INT. + +2003-01-11 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * sysdeps/unix/sysv/linux/sh/vfork.S: New file. + +2003-01-11 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/ia64/tls.h (tcbhead_t): Change into dtv_t *, void *. + [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, + TLS_TCB_SIZE, TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, TLS_DTV_AT_TP, + INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_SELF, + INIT_THREAD_SELF): Define. + [HAVE_TLS_SUPPORT]: Include descr.h. + (NONTLS_INIT_TP): Point __thread_self at the end of dummy + struct _pthread_descr_struct. + * sysdeps/ia64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC, + THREAD_SETMEM, THREAD_SETMEM_NC): Define using THREAD_SELF, + not __thread_self. + * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Adjust + computation. + * pthread.c (__pthread_initialize_minimal): Use tcbp, not self + for TCB pointer. + (__pthread_initialize_manager): Rename tcb to mgr. + Use tcbp for TCB pointer, if TLS_DTV_AT_TP set mgr to sizeof (struct + _pthread_descr) below tcbp, otherwise to tcbp. + * manager.c (pthread_handle_create): If TLS_DTV_AT_TP, set + new_thread to be below _dl_allocate_tls (). Adjust new_thread back + before freeing. Fix clone arguments if report_events and USE_TLS. + (pthread_free): Adjust th back before freeing. + +2003-01-10 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: Moved to ... + * sysdeps/unix/sysv/linux/powerpc/Makefile: ...here. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New File. + +2003-01-09 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/i386/vfork.S: New file. + * sysdeps/unix/sysv/linux/ia64/vfork.S: New file. + * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h + [__ASSEMBLER__] (SINGLE_THREAD_P): Remove trailing ;;. + * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file. + * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file. + * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file. + * sysdeps/unix/sysv/linux/alpha/vfork.S: New file. + * tst-popen.c: New test. + * Makefile (tests): Add tst-popen. + +2003-01-06 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/sigwait.c (do_sigwait): Add + INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros. + +2003-01-06 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use + PSEUDO_PREPARE_ARGS. Fix branch condition after SINGLE_THREAD_P. + +2003-01-06 Philip Blundell <philb@gnu.org> + + * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: New file. + +2003-01-06 Jakub Jelinek <jakub@redhat.com> + + * internals.h (LIBC_CANCEL_HANDLED): Define. + * sysdeps/unix/sysv/linux/sigwait.c (LIBC_CANCEL_HANDLED): Add. + * signals.c (LIBC_CANCEL_HANDLED): Add. + * pt-system.c (LIBC_CANCEL_HANDLED): Add. + * tst-cancel-wrappers.sh: Remove all exceptions. + + * sysdeps/unix/sysv/linux/alpha/Makefile: New file. + +2003-01-05 Andreas Schwab <schwab@suse.de> + + * sysdeps/m68k/Makefile: New file, use -fPIC for nonshared + objects. + + * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h (SINGLE_THREAD_P): + Fix for PIC. + (CENABLE): Likewise. + (CDISABLE): Likewise. + +2003-01-05 Ulrich Drepper <drepper@redhat.com> + + * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk + features. Reported by Marijn Ros <marijn@mad.scientist.com>. + + * Makefile (libc.so-no-z-defs): Define to yes. + +2003-01-05 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * sysdeps/sh/tls.h: Include dl-sysdep.h and stdint.h. + (tcbhead_t): Add multiple_threads member. + (TLS_INIT_TP_EXPENSIVE): Define. + * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Don't use multi-line + strings. Remove unused code. + * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file. + +2003-01-04 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: New file. + +2003-01-04 Jakub Jelinek <jakub@redhat.com> + + * internals.h (LIBC_THREAD_GETMEM, LIBC_THREAD_SETMEM): Define + even if NOT_IN_libc is defined. + +2003-01-05 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file. + * sysdeps/s390/Makefile: New file. + * sysdeps/s390/tcb-offsets.sym: New file. + * sysdeps/s390/tls.h: New file. + +2003-01-03 Richard Henderson <rth@redhat.com> + + * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file. + +2003-01-03 Andreas Jaeger <aj@suse.de> + + * sysdeps/pthread/bits/libc-tsd.h: Declare weak_extern functions. + +2003-01-03 Jakub Jelinek <jakub@redhat.com> + + * Makefile ($(objpfx)libpthread.so): Depend on ld.so. + +2003-01-02 Ulrich Drepper <drepper@redhat.com> + + * tst-cancel-wrappers.sh: Exclude sigwait.c as well, it does not have + cancellation tests. + +2003-01-02 Jakub Jelinek <jakub@redhat.com> + + * internals.h (struct pthread_functions): Rename + ptr_pthread_cond_* fields to ptr___pthread_cond_*. + * pthread.c (pthread_functions): Adjust. + * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and + pthread_cond_*@GLIBC_2.0 compatibility symbols. + * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast, + pthread_cond_destroy, pthread_cond_init, pthread_cond_signal + and pthread_cond_wait. + + * sysdeps/pthread/bits/pthreadtypes.h (__pthread_cond_align_t): New + type. + (pthread_cond_t): Add __align member, shorten __padding. + * sysdeps/pthread/pthread.h (PHTREAD_COND_INITIALIZER): Initialize + __padding and __align too. + + * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call2): Add + __builtin_expect. + * sysdeps/pthread/sigaction.c: New file. + * sysdeps/unix/sysv/linux/raise.c: New file. + * sysdeps/unix/sysv/linux/sigwait.c: New file. + * sysdeps/unix/sysv/linux/fork.c (__pthread_fork): Protect + weak_extern with #ifndef SHARED. + * sysdeps/unix/sysv/linux/jmp-unwind.c (__pthread_cleanup_upto): + Likewise. + * signals.c (__sigaction): Renamed to... + (__pthread_sigaction): ... this. + (__sigaction): New strong alias, #ifdef SHARED only. + (sigaction): Protect with #ifdef SHARED. + (sigwait): Renamed to... + (__pthread_sigwait): ... this. + (sigwait): New strong alias, #ifdef SHARED only. + (raise): Renamed to... + (__pthread_raise): ... this. + (raise): New strong alias, #ifdef SHARED only. + * internals.h (__pthread_sigaction, __pthread_sigwait, + __pthread_raise): New prototypes. + (struct pthread_functions): Add ptr_pthread_sigaction, + ptr_pthread_sigwait, ptr_pthread_raise. + * pthread.c (pthread_functions): Renamed to... + (__pthread_functions): ... this. No longer static, no longer + SHARED only. Initialize ptr_pthread_sigaction, ptr_pthread_sigwait + and ptr_pthread_raise. + [SHARED] (ptr_pthread_functions): Change to &__pthread_functions. + * libc-cancellation.c (__pthread_thread_self): Remove weak_extern. + * ptfork.c (__fork, __vfork): Protect with #ifdef SHARED. + * ptlongjmp.c (siglongjmp, longjmp): Protect with #ifdef SHARED. + + * Makefile (tests, tests-static): Add tst-cancel-static. + * tst-cancel-static.c: New test. + +2003-01-02 Jakub Jelinek <jakub@redhat.com> + + * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc. + +2003-01-02 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/bits/pthreadtypes.h (pthread_cond_t): Add padding. + * condvar.c: Add symbol versioning. The compatibility versions + are the same as the change in the interface does not effect this + implementation. + * Versions [libpthread]: Add definitions for new pthread_cond_* + interfaces for version GLIBC_2.3.2. + +2002-12-31 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for + __register_atfork. + * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def + for __register_atfork. + +2002-12-31 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/i386/i686/pt-machine.h: Use __ASSEMBLER__ instead of + ASSEMBLER test macro. + * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise. + + * sysdeps/pthread/errno-loc.c (__errno_location): Add + libc_hidden_def. + * sysdeps/pthread/herrno-loc.c (__h_errno_location): Likewise. + * sysdeps/pthread/res-state.c (__res_state): Likewise. + * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin, + __libc_current_sigrtmax): Likewise. + * Versions [libc] (GLIBC_PRIVATE): Remove __libc_internal_tsd_get, + __libc_internal_tsd_set, __libc_internal_tsd_address, + __libc_alloca_cutoff. + [libpthread] (GLIBC_PRIVATE): Remove __libc_internal_tsd_get, + __libc_internal_tsd_set, __libc_internal_tsd_address. + + * sysdeps/pthread/list.h: Remove assert.h include. + * sysdeps/unix/sysv/linux/fork.c: Include <fork.h>, not "fork.h". + + * sysdeps/pthread/list.h: New file. + * sysdeps/unix/sysv/linux/jmp-unwind.c: New file. + * sysdeps/unix/sysv/linux/fork.c: New file. + * sysdeps/unix/sysv/linux/fork.h: New file. + * sysdeps/unix/sysv/linux/ia64/fork.h: New file. + * sysdeps/unix/sysv/linux/sparc/fork.h: New file. + * sysdeps/unix/sysv/linux/register-atfork.c: New file. + * sysdeps/unix/sysv/linux/unregister-atfork.c: New file. + * sysdeps/unix/sysv/linux/Makefile: New file. + * sysdeps/unix/sysv/linux/Versions: New file. + * ptlongjmp.c (pthread_cleanup_upto): Rename to... + (__pthread_cleanup_upto): ...this. Add targetframe argument, + use it instead of currentframe. No longer static. + (siglongjmp, longjmp): Remove pthread_cleanup_upto calls. + * internals.h (__pthread_cleanup_upto, __pthread_fork): New prototypes. + (struct pthread_functions): Add ptr_pthread_fork, + ptr_pthread_cleanup_upto. + * pthread.c (pthread_functions): Initialize ptr_pthread_fork and + ptr_pthread_cleanup_upto. + * ptfork.c: Include fork.h. + (struct handler_list, struct handler_list_block): Remove. + (pthread_atfork_lock, pthread_atfork_prepare, pthread_atfork_parent, + pthread_atfork_child): Remove. + (pthread_insert_list, __pthread_atfork, pthread_call_handlers): Remove. + (__pthread_fork): New function. + (__fork, __vfork): Call __libc_fork. + * Makefile (libpthread-routines): Add old_pthread_atfork. + (libpthread-nonshared): Add pthread_atfork. + (others): Depend on $(objpfx)libpthread_nonshared.a. + ($(objpfx)libpthread_nonshared.a): New rule. + (install): Depend on $(inst_libdir)/libpthread.so. + ($(inst_libdir)/libpthread.so, $(inst_libdir)/libpthread_nonshared.a): + New rules. + (tests): Depend on libpthread_nonshared.a too. + * old_pthread_atfork.c: New file. + * pthread_atfork.c: New file. + * Makeconfig (shared-thread-library): Include libpthread_nonshared.a + too. + +2002-12-30 Jakub Jelinek <jakub@redhat.com> + + * forward.c: Make all functions available by default again. It + caused too much trouble. + * internals.h (struct pthread_functions): Rename ptr_pthread_exit + and ptr_pthread_attr_init_2_* to ptr___pthread_exit and + ptr___pthread_attr_init_2_*. + * pthread.c (pthread_functions): Adjust. + +2002-12-28 Jakub Jelinek <jakub@redhat.com> + + * libc_pthread_init.c (__libc_pthread_init): Remove + MULTIPLE_THREADS_OFFSET check. + * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler. + (SYSINFO_OFFSET): Remove. + * sysdeps/i386/Makefile [csu] (gen-as-const-headers): Add + tcb-offsets.sym. + * sysdeps/i386/tcb-offsets.sym: New file. + * sysdeps/pthread/tcb-offsets.h: New file. + * sysdeps/sparc/sparc32/tls.h: Removed. + * sysdeps/sparc/sparc64/tls.h: Move... + * sysdeps/sparc/tls.h: ...here. Include tcb-offsets.h in assembler. + * sysdeps/sparc/Makefile: New file. + * sysdeps/sparc/tcb-offsets.sym: New file. + * sysdeps/ia64/tls.h: Include tcb-offsets.h in assembler. + * sysdeps/ia64/Makefile: New file. + * sysdeps/ia64/tcb-offsets.sym: New file. + * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h + (MULTIPLE_THREADS_OFFSET): Remove. + Replace defined MULTIPLE_THREADS_OFFSET + with defined FLOATING_STACKS && USE___THREAD. + * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h + (MULTIPLE_THREADS_OFFSET): Remove. + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h + (MULTIPLE_THREADS_OFFSET): Remove. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h + (MULTIPLE_THREADS_OFFSET): Remove. + * pthread.c (__pthread_initialize_manager): Remove + MULTIPLE_THREADS_OFFSET cbeck. + + * tst-cancel-wrappers.sh: Add line continuations. + +2002-12-27 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/bits/libc-tsd.h: Include linuxthreads/descr.h + and bits/libc-lock.h. + (__libc_internal_tsd_get, __libc_internal_tsd_set, + __libc_internal_tsd_address): Remove. + (__pthread_internal_tsd_address, __pthread_internal_tsd_get, + __pthread_internal_tsd_set): New weak_externs. + (__libc_tsd_address, __libc_tsd_get, __libc_tsd_set): Define + using __libc_maybe_call2. + (__libc_tsd_key_t): Move to ... + * descr.h (__libc_tsd_key_t): ...here. + Remove bits/libc-tsd.h include. + * sysdeps/pthread/errno-loc.c: New file. + * sysdeps/pthread/herrno-loc.c: New file. + * sysdeps/pthread/res-state.c: New file. + * libc-cancellation.c (THREAD_GETMEM, THREAD_SETMEM): Remove. + (__libc_enable_asynccancel, __libc_disable_asynccancel): Use + thread_self unconditionally. Use LIBC_THREAD_[SG]ETMEM instead + of THREAD_[SG]ETMEM. + * specific.c (libc_internal_tsd_set): Renamed to... + __pthread_internal_tsd_set. Remove static. + (libc_internal_tsd_get): Renamed to... + __pthread_internal_tsd_get. Remove static. + (libc_internal_tsd_address): Renamed to... + __pthread_internal_tsd_address. Remove static. + (__libc_internal_tsd_set, __libc_internal_tsd_get, + __libc_internal_tsd_address, __libc_alloca_cutoff): Remove. + * internals.h [!NOT_IN_libc] (LIBC_THREAD_GETMEM, LIBC_THREAD_SETMEM): + Define. + (__pthread_internal_tsd_set, __pthread_internal_tsd_get, + __pthread_internal_tsd_address): New prototypes. + (struct pthread_functions): Add + ptr_pthread_internal_tsd_([sg]et|address) fields. + [!NOT_IN_libc && !FLOATING_STACKS] (thread_self): Define. + * pthread.c (pthread_functions) [!USE_TLS && !HAVE___THREAD]: + Initialize ptr_pthread_internal_tsd_([sg]et|address) fields. + * Versions (libpthread): Remove __libc_alloca_cutoff@GLIBC_PRIVATE. + * alloca_cutoff.c: New file. + * no-tsd.c: Removed. + * Makefile (routines): Remove no-tsd. Add alloca_cutoff. + * pt-system.c (system): Remove cancellation handling. + * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the + cancellation routines. + + * sysdeps/i386/tls.h: Include dl-sysdep.h and stdint.h. + (tcbhead_t): Add sysinfo field. + (SYSINFO_OFFSET, INIT_SYSINFO): Define. + (TLS_INIT_TP): Use INIT_SYSINFO. + * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file. + * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h + (MULTIPLE_THREADS_OFFSET): Adjust. + * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h + (MULTIPLE_THREADS_OFFSET): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h + (MULTIPLE_THREADS_OFFSET): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h + (MULTIPLE_THREADS_OFFSET): Likewise. + * descr.h: Include stdint.h. + (struct _pthread_descr_struct): Add p_header.data.sysinfo field. + +2002-12-22 Jakub Jelinek <jakub@redhat.com> + + * libc_pthread_init.c: Include stdlib.h. + * sysdeps/i386/tls.h (tcbhead_t): Add multiple_threads member. + (TLS_INIT_TP_EXPENSIVE): Define. + * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call, + __libc_maybe_call2): In _LIBC check SHARED define. + * sysdeps/ia64/tls.h: New file. + * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file. + * sysdeps/unix/sysv/linux/ia64/Makefile: New file. + * sysdeps/x86_64/tls.h (TLS_INIT_TP_EXPENSIVE): Define. + * sysdeps/sparc/sparc32/tls.h: New file. + * sysdeps/sparc/sparc64/tls.h: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file. + * Makefile (tests): Add tst-cancel[1-6]. + (tests-reverse): Add tst-cancel5. + Link libc.so before libpthread.so for tests-reverse. + * tst-cancel1.c: New file. + * tst-cancel2.c: New file. + * tst-cancel3.c: New file. + * tst-cancel4.c: New file. + * tst-cancel5.c: New file. + * tst-cancel6.c: New file. + +2002-12-27 Andreas Schwab <schwab@suse.de> + + * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: New file. + +2002-12-22 Roland McGrath <roland@redhat.com> + + * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%). + +2002-12-21 Ulrich Drepper <drepper@redhat.com> + + * pthread.c (init_rtsigs): Remove incomplete __builtin_expect. + Reported by Art Hass <ahaas@airmail.net>. + +2002-12-19 Jakub Jelinek <jakub@redhat.com> + + * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1): + Use return 0 as 6th argument to FORWARD4. + +2002-12-18 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/i386/useldt.h (FLOATING_STACKS, ARCH_STACK_MAX_SIZE): Only + define if __ASSUME_LDT_WORKS > 0. + * libc-cancellation.c (THREAD_GETMEM, THREAD_SETMEM): Redefine to + struct member access if !FLOATING_STACKS. + * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias. + +2002-12-18 Jakub Jelinek <jakub@redhat.com> + + * internals.h (__pthread_thread_self): New prototype. + (struct pthread_functions): Add ptr_pthread_thread_self field. + * pthread.c (pthread_functions): Initialize ptr_pthread_thread_self. + (__pthread_thread_self): New function. + * libc-cancellation.c (__pthread_thread_self): Add weak_extern. + (__libc_enable_asynccancel, __libc_disable_asynccancel): Don't + use thread_self() directly if not FLOATING_STACKS. + +2002-12-18 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/x86_64/pt-machine.h: Guard most of the header + with #ifndef __ASSEMBLER__. + * pthread.c (pthread_functions): Use SHLIB_COMPAT around + pthread_attr_init_2_0 use. + +2002-12-17 Jakub Jelinek <jakub@redhat.com> + + * wrapsyscall.c: Removed. + * weaks.c: Removed. + * Makefile (distribute): Add tst-cancel-wrappers.sh. + (routines): Remove weaks. Add forward, + libc_pthread_init, libc-cancellation. + (shared-only-routines): Remove weaks. Add forward. + (libpthread-routines): Remove wrapsyscall. + Add ptw-write, ptw-read, ptw-close, ptw-fcntl, ptw-accept, + ptw-connect, ptw-recv, ptw-recvfrom, ptw-recvmsg, ptw-send, + ptw-sendmsg, ptw-sendto, ptw-fsync, ptw-lseek, ptw-lseek64, + ptw-llseek, ptw-msync, ptw-nanosleep, ptw-open, ptw-open64, + ptw-pause, ptw-pread, ptw-pread64, ptw-pwrite, ptw-pwrite64, + ptw-tcdrain, ptw-wait, ptw-waitpid, pt-system, pt-allocrtsig. + (libpthread-shared-only-routines): Add pt-allocrtsig. + (tests): Depend on $(objpfx)tst-cancel-wrappers.out. + ($(objpfx)tst-cancel-wrappers.out): New rule. + * sysdeps/pthread/bits/libc-lock.h: Include linuxthreads/internals.h + if in libc. + (__libc_maybe_call): In libpthread.* don't check for existance + of the function. + (__libc_maybe_call2): Define. + (__libc_lock_init, __libc_lock_fini, __libc_lock_lock, + __libc_lock_trylock, __libc_lock_unlock): Use it. + * sysdeps/pthread/flockfile.c: New file. + * sysdeps/pthread/ftrylockfile.c: New file. + * sysdeps/pthread/funlockfile.c: New file. + * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file. + * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file. + * sysdeps/unix/sysv/linux/allocrtsig.c: New file. + * libc-cancellation.c: New file. + * forward.c: New file. + * libc_pthread_init.c: New file. + * pt-system.c: New file. + * pthread.c: Remove locale.h. + (__pthread_manager_thread): Initialize multiple_threads. + (__pthread_multiple_threads): Declare. + (pthread_functions): New variable. + (__pthread_initialize_minimal): Remove __uselocale call. + Call __libc_pthread_init. + (__pthread_initialize_manager): Initialize __pthread_multiple_threads, + initial thread's multiple_threads and __libc_multiple_threads. + Check MULTIPLE_THREADS_OFFSET value. Initialize manager thread's + multiple_threads. + (pthread_setschedparam, pthread_getschedparam): Rename to __ + prefixed variants. Add strong_alias. + (current_rtmin, current_rtmax, __libc_current_sigrtmin, + __libc_current_sigrtmax, __libc_allocate_rtsig): Remove. + (init_rtsigs): Use __libc_current_sigrtmin_private. + (pthread_initialize): Only call init_rtsigs if + !__ASSUME_REALTIME_SIGNALS. + (__pthread_require_wrappers, __pthread_require_lockfile): Remove. + * internals.h (__pthread_attr_destroy, __pthread_attr_setdetachstate, + __pthread_attr_getdetachstate, __pthread_attr_setschedparam, + __pthread_attr_getschedparam, __pthread_attr_setschedpolicy, + __pthread_attr_getschedpolicy, __pthread_attr_setinheritsched, + __pthread_attr_getinheritsched, __pthread_attr_setscope, + __pthread_attr_getscope, __pthread_cond_init, + __pthread_cond_destroy, __pthread_cond_wait, + __pthread_cond_signal, __pthread_cond_broadcast, + __pthread_condattr_init, __pthread_condattr_destroy, + __pthread_equal, __pthread_getschedparam, + __pthread_setschedparam, __pthread_setcancelstate, + __pthread_setcanceltype, __pthread_enable_asynccancel, + __libc_enable_asynccancel, __libc_pthread_init): New prototype. + (__pthread_mutex_init, __pthread_mutex_destroy, + __pthread_mutex_lock, __pthread_mutex_unlock, + __pthread_mutex_trylock): Likewise. + Add hidden_proto. + (struct pthread_functions): New type. + (__libc_pthread_functions): New variable. + (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define. + * descr.h (struct _pthread_descr_struct): Add + p_header.data.multiple_threads field. + * manager.c (pthread_handle_create): Initialize multiple_threads. + * cancel.c (__pthread_enable_asynccancel, + __pthread_disable_asynccancel): New functions. + (__pthread_provide_wrappers): Remove. + (pthread_setcancelstate, pthread_setcanceltype): Rename to __ + prefixed variants. Add strong_alias. + * condvar.c (pthread_cond_init, pthread_cond_destroy, + pthread_cond_wait, pthread_cond_signal, pthread_cond_broadcast, + pthread_condattr_init, pthread_condattr_destroy): Likewise. + * join.c (pthread_exit): Likewise. + * attr.c (pthread_attr_destroy, pthread_attr_setdetachstate, + pthread_attr_getdetachstate, pthread_attr_setschedparam, + pthread_attr_getschedparam, pthread_attr_setschedpolicy, + pthread_attr_getschedpolicy, pthread_attr_setinheritsched, + pthread_attr_getinheritsched, pthread_attr_setscope, + pthread_attr_getscope): Likewise. + * mutex.c (__pthread_mutex_init, __pthread_mutex_destroy, + __pthread_mutex_lock, __pthread_mutex_unlock, + __pthread_mutex_trylock): Add hidden_def. + * Versions (libc): Add __libc_pthread_init, + __libc_current_sigrtmin_private, __libc_current_sigrtmax_private, + __libc_allocate_rtsig_private @@GLIBC_PRIVATE. + * lockfile.c: Remove some USE_IN_LIBIO guards. + (__pthread_provide_lockfile): Remove. + * pt-allocrtsig.c: New file. + * tst-cancel-wrappers.sh: New test. + +2002-12-15 Ulrich Drepper <drepper@redhat.com> + + * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect, + readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev. + * wrapsyscall.c: Remove creat, poll, pselect, readv, select, + sigpause, sigsuspend, sigwaitinfo, waitid, and writev wrappers. + +2002-12-10 Ulrich Drepper <drepper@redhat.com> + + * wrapsyscall.c (CANCELABLE_SYSCALL): Don't define function as + weak. There is no reason for that. + (CANCELABLE_SYSCALL_VA): Likewise. + +2002-12-09 Ulrich Drepper <drepper@redhat.com> + + * wrapsyscall.c: Add wrappers for creat, poll, pselect, readv, select, + sigpause, __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev. + * Versions: Export creat, poll, pselect, readv, select, sigpause, + __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev from + libpthread in version GLIBC_2.3.2. + +2002-12-06 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros. + +2002-12-05 Roland McGrath <roland@redhat.com> + + * pthread.c (__pthread_initialize_minimal) + [USE_TLS && SHARED && !USE___THREAD]: Initialize TLS and set up the + TCB if the dynamic linker didn't do it at startup. + + * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error + string. + (TLS_DO_SET_THREAD_AREA, TLS_DO_MODIFY_LDT, TLS_SETUP_GS_SEGMENT): + Submacros updated. + * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise. + * sysdeps/alpha/tls.h (TLS_INIT_TP): Likewise (always zero). + +2002-12-03 Roland McGrath <roland@redhat.com> + + * pthread.c (pthread_initialize) [SHARED]: Copy dl_error_tsd value + from dynamic linker internal cell to new libc cell. + +2002-11-28 Roland McGrath <roland@redhat.com> + + * tst-context.c: #define IS_IN_libpthread around #include <tls.h> + before other headers, so FLOATING_STACKS is not defined wrongly. + + * sysdeps/i386/tls.h [!IS_IN_libpthread]: Enable TLS support + even if [! FLOATING_STACKS]. + (TLS_DO_MODIFY_LDT_KERNEL_CHECK): New macro. + If not under [__ASSUME_LDT_WORKS > 0], then do a runtime check of + dl_osversion >= 2.3.99 and fatal if not. + (TLS_DO_MODIFY_LDT): Use it. + +2002-11-28 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which + require it to 200112L. Remove _POSIX_POLL and _POSIX_SELECT. + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise. + +2002-11-19 Ulrich Drepper <drepper@redhat.com> + + * Versions (libc: GLIBC_2.0): Remove names of functions which are + not defined in libc. + * Makefile (shared-only-routines): Add weaks. + * weaks.c: Remove functions which are not exported from libc.so. + +2002-11-14 Roland McGrath <roland@redhat.com> + + * libc-tsd.c: New file. + * Makefile (distribute): Add it. + (libc-link.so): New variable. + ($(objpfx)libpthread.so): Depend on that instead of libc.so file name. + (libc-ok-for-link): New variable. + [$(versioning) = yes]: Include $(common-objpfx)tls.make and define + libc-ok-for-link to $(use-thread). + [$(libc-ok-for-link) = no] + (libc-link.so): Set to $(objpfx)libc.so, not $(common-objpfx)libc.so. + ($(objpfx)libc_pic_lite.a,$(objpfx)libc_pic_lite.os, $(objpfx)libc.so): + New targets. + (generated): Append them. + (extra-objs): Append libc-tsd.os. + + * libc-tls-loc.c: New file. + * Makefile (libpthread-routines): Add it. + +2002-11-14 Andreas Schwab <schwab@suse.de> + + * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Fix unterminated + string. + +2002-11-13 Roland McGrath <roland@redhat.com> + + * Examples/ex6.c (main): Improve error reporting. + +2002-11-04 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/Makefile: Compile pthread.c and sighandler.c with + -fno-omit-frame-pointer. Patch by Andreas Steinmetz <ast@domdv.de>. + + * sysdeps/i386/useldt.h [PIC] (USETLS_LOAD_EBX): Use correct input + register number. + (DO_SET_THREAD_AREA): Mark asm output specifiers correctly. + +2002-10-22 Jakub Jelinek <jakub@redhat.com> + + * manager.c (pthread_start_thread): Call __uselocale even + if [! SHARED]. Patch by Leon Kanter <leon@geon.donetsk.ua>. + +2002-10-17 Roland McGrath <roland@redhat.com> + + * Makefile (unload): Don't link in libpthread.so. + ($(objpfx)unload.out): Do depend on it. + * unload.c (main): Improve error reporting. + +2002-10-09 Roland McGrath <roland@redhat.com> + + * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro. + Under [__PIC__], call the function via the pointer fetched for + comparison rather than a call by name that uses the PLT. + (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini) + (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock) + (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock) + (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock) + (__libc_key_create, __libc_getspecific, __libc_setspecific) + (__libc_atfork): Use it. + + * pthread.c [SHARED] (__libc_dl_error_tsd): New function. + (pthread_initialize) [SHARED]: Set _dl_error_catch_tsd to that. + * Versions (libc: GLIBC_PRIVATE): Add __libc_dl_error_tsd. + (ld: GLIBC_PRIVATE): Set removed. + +2002-10-11 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/execve.c: New file. + +2002-10-09 Jakub Jelinek <jakub@redhat.com> + + * no-tsd.c: Include stdlib.h. + +2002-10-07 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/allocalim.h: New file. + * descr.h (struct _pthread_descr_struct): Add p_alloca_cutoff + field. + * manager.c (__pthread_allocate_stack): Add out_stacksize argument. + Pass stack size to caller. + (pthread_handle_create): Set p_alloca_cutoff. + * pthread.c (__pthread_initial_thread): Use C99 designated + initializers. Set p_alloca_cutoff. + (__pthread_manager_thread): Likewise. + (__pthread_initialize_minimal) [USE_TLS]: Set p_alloca_cutoff + for initial thread. + (__pthread_init_max_stacksize): Possibly decrease p_alloca_cutoff + for initial thread. + (__pthread_initialize_manager) [USE_TLS]: Set p_alloca_cutoff + for manager thread. + * specific.c (__libc_alloca_cutoff): New function. + * no-tsd.c (__libc_alloca_cutoff): New function. + * Versions: Export __libc_alloca_cutoff@@GLIBC_PRIVATE from libc + and libpthread. + +2002-10-02 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * sysdeps/sh/pt-machine.h: Make C code ifndef'ed with __ASSEMBLER__. + * sysdeps/sh/tls.h: Likewise. + * sysdeps/unix/sysv/linux/sh/smp.h: New file. + +2002-09-29 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/tst-timer.c (main): Clear + SIGEV2.sigev_notify_attributes. + +2002-09-29 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Don't use + INLINE_SYSCALL for set_thread_area syscall. + +2002-09-28 Roland McGrath <roland@redhat.com> + + * pthread.c (__pthread_reset_main_thread) [FLOATING_STACKS]: + Don't call setrlimit, since we did no prior bogon we need to undo. + +2002-09-27 Roland McGrath <roland@redhat.com> + + * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Don't include <pt-machine.h>. + +2002-09-24 Roland McGrath <roland@redhat.com> + + * sysdeps/x86_64/tls.h: New file. + +2002-09-23 Roland McGrath <roland@redhat.com> + + * Examples/ex13.c (dump_mut): int -> size_t for counter. + +2002-09-18 Bruno Haible <bruno@clisp.org> + + * Examples/ex10.c (thread): Fail if pthread_mutex_timedlock() returns + an unexpected error code. + + * internals.h (__pthread_message): Add const to first parameter type. + * pthread.c (__pthread_message): Likewise. + + * sysdeps/unix/sysv/linux/configure: Moved to ../sysdeps/pthread. + +2002-09-17 Roland McGrath <roland@redhat.com> + + * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT, TLS_DO_SET_THREAD_AREA): + Set the descriptor limit to the full 4GB, so %gs:OFFSET works for any + offset (positive or negative) relative to the thread struct. + * sysdeps/i386/useldt.h (DO_MODIFY_LDT, DO_SET_THREAD_AREA): Likewise. + +2002-09-12 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Move... + * sysdeps/unix/sysv/linux/sparc/Makefile: ...here. + Replace /usr/lib/crt[in].o with crt[in].o too. + +2002-09-11 Steven Munroe <sjmunroe@us.ibm.com> + + * sysdeps/powerpc/powerpc64/pt-machine.h: New file. + +2002-09-04 Bruno Haible <bruno@clisp.org> + + * pthread.c: Include <sys/time.h>. + (is_smp_system): Move to sysdeps/unix/sysv/linux/smp.h. + * sysdeps/unix/sysv/linux/smp.h: New file, extracted from pthread.c. + * Makefile (distribute): Add smp.h to the list. + +2002-09-04 Bruno Haible <bruno@clisp.org> + + * sysdeps/alpha/pt-machine.h: Choose different include file location + on non-Linux platforms. + + * wrapsyscall.c (PROMOTE_INTEGRAL_TYPE): New macro. + (open, open64): Change va_arg argument type to the integral type to + which mode_t promotes. + + * sysdeps/pthread/tst-timer.c (main): Don't assume anything about + the structure of 'struct sigevent'. + + * errno.c (__errno_location, __h_errno_location, __res_state): + Use prototype function definitions. + +2002-07-29 Steven Munroe <sjmunroe@us.ibm.com> + + * shlib-versions: Set libpthread version to 2.3 for powerpc64. + * sysdeps/powerpc/pt-machine.h: moved to... + * sysdeps/powerpc/powerpc32/pt-machine.h: ...here + * sysdeps/powerpc/powerpc64/pt-machine.h: New file. + +2002-09-02 Roland McGrath <roland@redhat.com> + + * sysdeps/powerpc/Makefile (CFLAGS-pt-initfini.s): New variable. + +2002-09-01 Roland McGrath <roland@redhat.com> + + * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t): Add new keys + CTYPE_B, CTYPE_TOLOWER, CTYPE_TOUPPER. + + * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_address): New macro. + (__libc_internal_tsd_address): Declare it. + * Versions (libc, ld, libpthread: GLIBC_PRIVATE): Add + __libc_internal_tsd_address. + * specific.c (libc_internal_tsd_address): New function. + (__libc_internal_tsd_address): New variable. + * no-tsd.c (__libc_internal_tsd_address): New variable. + +2002-08-31 Ulrich Drepper <drepper@redhat.com> + + * Makefile: Don't use rule for crt%.o, spell it out as rules for + crti.o and crtn.o. + +2002-08-30 Roland McGrath <roland@redhat.com> + + * Makefile (extra-objs, omit-deps): Add crtn. + ($(objpfx)libpthread.so): Depend on $(objpfx)crtn.o. + ($(objpfx)libpthread.so: +postinit): Append $(objpfx)crtn.o. + ($(objpfx)crtn.S): New target. + ($(objpfx)crt%.o): Pattern rule replaces crti.o target. + (generated): Add crtn.S. + + * sysdeps/unix/sysv/linux/x86_64/Makefile ($(objpfx)specs): Massage + crtn.o pathname too. + +2002-08-30 Jakub Jelinek <jakub@redhat.com> + + * pthread.c (__pthread_initialize_minimal): Call __uselocale even + if [! SHARED]. + +2002-08-30 Roland McGrath <roland@redhat.com> + + * tst-static-locale.c: New file. + * Makefile (tests, tests-static): Add it. + +2002-04-24 Steven Munroe <sjmunroe@us.ibm.com> + + * spinlock.c (__pthread_lock): Fix spurious wakeup + handling. Don't clear lowest bit of list pointer as sign the thread + is still on the wait list. Don't restart after spurious wakeup + with spinning to get the lock. + (__pthread_unlock): Take set lowest bit into account when handling + pointer to list elements. + Patch by Steve Munroe <sjmunroe@us.ibm.com>. + +2002-08-28 Roland McGrath <roland@redhat.com> + + * sysdeps/pthread/timer_routines.c (thread_func): Fix type in cast. + +2002-08-28 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/hppa/aio_cancel.c: New file. + * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file. + * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file. + +2002-08-28 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/timer_routines.c (thread_func): Change return + type to void and add casts in use to avoid warnings with all gcc + versions. + +2002-08-08 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/bits/local_lim.h (PTHREAD_THREADS_MAX): + Bump to 16384. + * manager.c (__pthread_handles): Remove. + * pthandles.c: New file. + * pthread.c (__pthread_initialize_minimal): Initialize + __pthread_handles[0] and __pthread_handles[1]. + * Makefile (libpthread-routines): Add pthandles (must be last). + +2002-08-26 Brian Youmans <3diff@gnu.org> + + * Examples/ex10.c: Corrected version number in Lesser GPL copying + permission notice from 2 to 2.1. + * Examples/ex11.c: Likewise. + * Examples/ex13.c: Likewise. + * Examples/ex8.c: Likewise. + * Examples/ex9.c: Likewise. + * barrier.c: Likewise. + * events.c: Likewise. + * lockfile.c: Likewise. + * no-tsd.c: Likewise. + * pt-machine.c: Likewise. + * ptclock_gettime.c: Likewise. + * ptclock_settime.c: Likewise. + * rwlock.c: Likewise. + * sysdeps/alpha/pspinlock.c: Likewise. + * sysdeps/alpha/pt-machine.h: Likewise. + * sysdeps/arm/pspinlock.c: Likewise. + * sysdeps/arm/pt-machine.h: Likewise. + * sysdeps/cris/pspinlock.c: Likewise. + * sysdeps/cris/pt-machine.h: Likewise. + * sysdeps/hppa/pspinlock.c: Likewise. + * sysdeps/hppa/pt-machine.h: Likewise. + * sysdeps/i386/i686/pt-machine.h: Likewise. + * sysdeps/i386/pspinlock.c: Likewise. + * sysdeps/i386/pt-machine.h: Likewise. + * sysdeps/i386/useldt.h: Likewise. + * sysdeps/ia64/pspinlock.c: Likewise. + * sysdeps/ia64/pt-machine.h: Likewise. + * sysdeps/m68k/pspinlock.c: Likewise. + * sysdeps/m68k/pt-machine.h: Likewise. + * sysdeps/mips/pspinlock.c: Likewise. + * sysdeps/mips/pt-machine.h: Likewise. + * sysdeps/powerpc/pspinlock.c: Likewise. + * sysdeps/powerpc/pt-machine.h: Likewise. + * sysdeps/pthread/bits/initspin.h: Likewise. + * sysdeps/pthread/bits/libc-lock.h: Likewise. + * sysdeps/pthread/bits/libc-tsd.h: Likewise. + * sysdeps/pthread/getcpuclockid.c: Likewise. + * sysdeps/pthread/posix-timer.h: Likewise. + * sysdeps/pthread/timer_create.c: Likewise. + * sysdeps/pthread/timer_delete.c: Likewise. + * sysdeps/pthread/timer_getoverr.c: Likewise. + * sysdeps/pthread/timer_gettime.c: Likewise. + * sysdeps/pthread/timer_routines.c: Likewise. + * sysdeps/pthread/timer_settime.c: Likewise. + * sysdeps/pthread/tst-timer.c: Likewise. + * sysdeps/s390/pspinlock.c: Likewise. + * sysdeps/s390/s390-32/pt-machine.h: Likewise. + * sysdeps/s390/s390-64/pt-machine.h: Likewise. + * sysdeps/sh/pspinlock.c: Likewise. + * sysdeps/sh/pt-machine.h: Likewise. + * sysdeps/sparc/sparc32/pspinlock.c: Likewise. + * sysdeps/sparc/sparc32/pt-machine.h: Likewise. + * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise. + * sysdeps/sparc/sparc64/pspinlock.c: Likewise. + * sysdeps/sparc/sparc64/pt-machine.h: Likewise. + * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise. + * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise. + * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise. + * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise. + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise. + * tststack.c: Likewise. + * unload.c: Likewise. + * weaks.c: Likewise. + * wrapsyscall.c: Likewise. + + * sysdeps/pthread/pt-initfini.c: Changed copying + permission notice to Lesser GPL from Library GPL, including the + references in the special exception. + * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: Likewise. + * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: + Likewise. + * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Likewise. + +2002-08-26 Ulrich Drepper <drepper@redhat.com> + + * Examples/ex10.c (thread): tv_nsec == 1000000000 is already + overflow [PR libc/4244]. + +2002-08-25 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/timer_routines.c (thread_func): Make the + compiler happy by adding a return statement which will never be + reached. + + * tst-context.c (main): Cast to long before casting to pointer. + + * Examples/ex17.c (main): Use correct format string. + + * Examples/ex9.c (thread): Remove incorrect return statement. + +2002-08-23 Ulrich Drepper <drepper@redhat.com> + + * pthread.c (__linuxthreads_version): New global constant. + +2002-08-23 Andreas Jaeger <aj@suse.de> + + * sysdeps/x86_64/pt-machine.h: Use %fs instead of %gs + as thread specific register. + (testandset): Fix inline asm. + (THREAD_GETMEM): Fix inline asm. + +2002-08-22 Roland McGrath <roland@redhat.com> + + * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Remove [HAVE_TLS_SUPPORT] + conditional. + (INIT_THREAD_SELF): Pass second arg to DO_SET_THREAD_AREA. + (DO_SET_THREAD_AREA): Take second arg, pass to DO_SET_THREAD_AREA_REUSE + macro. That chooses whether to reuse %gs value or let kernel set it. + [USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, always 1. + [!USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, true if arg is + not constant 0. + +2002-08-21 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/tls.h (TLS_SETUP_GS_SEGMENT): Add new parameter + also to the third definition of this macro. + +2002-06-17 Andreas Jaeger <aj@suse.de> + + * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s): + Set it. + +2002-08-20 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/useldt.h: Go back to using 16-bit instructions when + loading/reading segment registers. Some old hardware doesn't + handle the 32-bit instructions as expected. + * sysdeps/i386/tls.h: Likewise. + + * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Second parameter is + renamed to secondcall and use is negated. + (TLS_SETUP_GS_SEGMENT): Likewise. + (TLS_INIT_TP): Likewise. + * sysdeps/sh/tls.h (TLS_INIT_TP): Second parameter is renamed to + secondcall. + + * sysdeps/i386/tls.h: Use 32-bit operations when handling segment + registers. No need to mask upper 16 bits in this case. + * sysdeps/i386/useldt.h: Likewise. + (DO_SET_THREAD_AREA): We have to load %gs again even if the value + is the same since the GDT content changed. + + * sysdeps/i386/tls.h (TLS_INIT_TP): Add new parameter and pass it on + to TLS_SETUP_GS_SEGMENT. + (TLS_SETUP_GS_SEGMENT): Add new parameter and pass it on to + TLS_DO_SET_THREAD_AREA. + (TLS_DO_SET_THREAD_AREA): If new parameter is zero determine + entry number from %gs value. + * sysdeps/sh/tls.h (TLS_INIT_TP): Add new parameter and simply + ignore it. + + * manager.c (pthread_handle_create): Pass NULL to _dl_allocate_tls. + Pass true to _dl_deallocate_tls. + (pthread_free): Likewise. + * pthread.c (__pthread_initialize_manager): Likewise. + +2002-08-19 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Use correct shift when + computing index from %gs value. + +2002-08-16 Roland McGrath <roland@redhat.com> + + * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Calculate segment + register value from entry number properly. + + * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Rewrite asm to use %ebx + optimally conditional on [__PIC__]. + (TLS_DO_SET_THREAD_AREA): New macro, implement inline syscall + without touching errno, and use latest modify_ldt-like interface. + (TLS_SETUP_GS_SEGMENT): Use that instead of INLINE_SYSCALL. + * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Set %gs in this macro. + (DO_SET_THREAD_AREA): New macro, uses current syscall interface with + existing %gs value as the segment to set. + (INIT_THREAD_SELF): Rewritten using those. Use set_thread_area only + under [HAVE_TLS_SUPPORT] so we can rely on the initialization done + by the first thread's early TLS setup. + +2002-08-15 Roland McGrath <roland@redhat.com> + + * sysdeps/i386/tls.h (TLS_INIT_TP): Use statement expression and + return a value as callers now expect. + +2002-08-11 Roland McGrath <roland@redhat.com> + + * pthread.c (__pthread_initialize_manager): Initialize + p_header.data.tcb field of manager thread's descriptor. + (__pthread_initialize_minimal): Don't initialize p_header.data.self + field, already done by TLS_INIT_TP. + + * manager.c (pthread_handle_create): Move p_header field initializers + together. + +2002-08-08 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Removed. + +2002-08-07 Ulrich Drepper <drepper@redhat.com> + + * pthread.c (__linuxthreads_initial_report_events): New variable. + (__pthread_initialize_manager): Use it to initialize p_report_events + of initial thread. + [TLS]: Store pointer to descriptor of manager in __pthread_handles. + +2002-08-07 Roland McGrath <roland@redhat.com> + + * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Add an extra argument with + an "m" constraint to the asm so the compiler knows LDT_ENTRY was used. + +2002-08-02 Roland McGrath <roland@redhat.com> + + * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t): + Add _LIBC_TSD_KEY_LOCALE. + * manager.c (pthread_start_thread) [!(USE_TLS && HAVE___THREAD)]: + Call __uselocale to initialize our per-thread locale pointer to + the global one. + * pthread.c (__pthread_initialize_minimal): Likewise. + + * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Add missing \s. + +2002-08-02 Ulrich Drepper <drepper@redhat.com> + + * pthread.c: Declare _errno, _h_errno, and _res unless we use TLS + internally. + + * cancel.c (__pthread_perform_cleanup) [USE_TLS && HAVE___THREAD]: + Don't use p_libc_specific element in thread descriptor. + +2002-07-30 Roland McGrath <roland@redhat.com> + + * sysdeps/pthread/bits/libc-tsd.h: Include <tls.h>. + [USE_TLS && HAVE___THREAD]: Just include the sysdeps/generic file, + which does the right thing when __thread support is available. + * descr.h (struct _pthread_descr_struct) [USE_TLS && HAVE___THREAD]: + Omit `p_libc_specific', `p_errnop', `p_errno', `p_h_errnop', + `p_h_errno', `p_resp', and `p_res' members. + * pthread.c (__pthread_initialize_minimal) [USE_TLS && HAVE___THREAD]: + Don't initialize `p_errnop' and `p_h_errnop' members. + (__pthread_reset_main_thread): Likewise. + (__pthread_initialize_manager): Likewise. + * manager.c (__pthread_manager, pthread_handle_create): Likewise. + * pthread.c (pthread_initialize) [USE_TLS && HAVE___THREAD]: + Don't initialize `p_resp' member. + (__pthread_reset_main_thread): Likewise. + * manager.c (pthread_handle_create): Likewise. + * specific.c (libc_internal_tsd_set, libc_internal_tsd_get): + Conditionalize these on [!(USE_TLS && HAVE___THREAD)]. + * no-tsd.c: Conditionalize contents on [!(USE_TLS && HAVE___THREAD)]. + * errno.c [USE_TLS && HAVE___THREAD] + (__h_errno_location, __res_state): Don't define these at all. + + * sysdeps/i386/tls.h (INSTALL_DTV): Add parens around arguments! + (INSTALL_NEW_DTV, GET_DTV): Likewise. + * sysdeps/sh/tls.h (INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV): Likewise. + + * weaks.c: Don't include <errno.h> here. + +2002-08-01 Roland McGrath <roland@redhat.com> + + * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): New macro, broken out of + TLS_INIT_TP. + (TLS_DO_SET_THREAD_AREA): New macro, uses thread_set_area syscall. + (TLS_SETUP_GS_SEGMENT): New macro, try one or the other or both. + (TLS_INIT_TP): Use that. + +2002-08-02 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Move from INIT_THREAD_SELF. + (INIT_THREAD_SELF): Use sys_thread_area syscall instead if available. + (FREE_THREAD): Avoid modify_ldt if using GDT. + * sysdeps/i386/pspinlock.c (__have_no_set_thread_area): New variable. + +2002-07-25 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/i386/tls.h: Use __ASSEMBLER__ test macro not ASSEMBLER. + * sysdeps/i386/pt-machine.h: Likewise. + * sysdeps/i386/useldt.h: Likewise. + +2002-07-22 Ulrich Drepper <drepper@redhat.com> + + * pthread.c (__pthread_initialize_minimal): If !SHARED and TLS + call __libc_setup_tls first. + * Makefile: Actually create tst-signal.out file when running the test. + (tests): Add tststatic. + * Examples/tststatic.c: New file. + +2002-07-19 Ulrich Drepper <drepper@redhat.com> + + * errno.c (__errno_location): Don't define unless !USE_TLS + || !HAVE___THREAD. + * sysdeps/i386/pt-machine.c: Protect C code with #ifndef ASSEMBLER. + * sysdeps/i386/tls.h: Likewise. + * sysdeps/i386/useldt.h: Likewise. + * sysdeps/i386/i686/pt-machine.h: Likewise. + +2002-07-02 H.J. Lu <hjl@gnu.org> + + * sysdeps/mips/pspinlock.c: Don't include <sgidefs.h>. Always + use ll/sc. + * sysdeps/mips/pt-machine.h: Likewise. + +2002-07-14 Ulrich Drepper <drepper@redhat.com> + + * manager.c (pthread_handle_create): Initialize self-reference in + descriptor. + +2002-07-01 Jakub Jelinek <jakub@redhat.com> + + * Examples/ex9.c (main): Remove unused th variable. + +2002-07-10 Ulrich Drepper <drepper@redhat.com> + + * wrapsyscall.c: Add __nanosleep alias. + * Versions (GLIBC_2.2.6): Add __nanosleep. + * bug-sleep.c: New file. + * Makefile (tests): Add bug-sleep. + +2002-06-19 Steven Munroe <sjmunroe@vnet.ibm.com> + + * Examples/ex9.c (main): Use list of children and join them. + (thread): Do not call exit. + +2002-06-20 Ulrich Drepper <drepper@redhat.com> + + * spinlock.c (wait_node_alloc): We cannot use compare-and-exchange. + Unconditionally use the code using spinlock. Use __pthread_release + to free a spinlock. + (wait_node_free): Likewise. + (__pthread_acquire, __pthread_release): Unconditionally define. + +2002-06-07 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Fix typo. + +2002-05-24 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Use __sync_synchronize. + +2002-05-21 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/pthread.h (pthread_create): Rename first + parameter. + (pthread_cancel): Likewise. + * internals.h (__pthread_create_2_1): Likewise. + * sysdeps/unix/sysv/linux/bits/sigthread.h (pthread_kill): Likewise. + +2002-05-20 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/alpha/pt-machine.c (THREAD_SELF): Remove clobber. + Patch by Glen Nakamura <gen@flex.com>. + +2002-05-03 Ulrich Drepper <drepper@redhat.com> + + * signals.c: Move sighandler functions to... + * sighandler.c: ...here. New file. + * signals.c: Move signal handler related type definitions to... + * internals.h: ...here. Add prototypes for signal handlers. + * Makefile (libpthread-routines): Add sighandler. + (CFLAGS-sighandler.c): Add $(exceptions). + +2002-04-30 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/x86_64/Makefile: New file. + +2002-04-08 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/timer_getoverr.c: Return real overrun. + * sysdeps/pthread/posix-timer.h (struct timer_node): Add overrun_count. + * sysdeps/pthread/timer_routines.c (thread_func): Schedule next timeout + based on previous one and not on current time. Count overruns. + Patch by Eric F. Sorton <eric@cctcorp.com>. + + * sysdeps/unix/sysv/linux/bits/local_lim.h: Add DELAYTIMER_MAX. + +2002-04-08 kaz Kojima <kkojima@rr.iij4u.or.jp> + + * sysdeps/sh/pt-machine.h: Define _PT_MACHINE_H + if it isn't defined yet. + (FLOATING_STACKS, ARCH_STACK_MAX_SIZE): Defined. + (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC): + Likewise. + * sysdeps/sh/tls.h: New file. + +2002-04-08 Jakub Jelinek <jakub@redhat.com> + + * manager.c (__pthread_manager_event): Use self instead of arg + for INIT_THREAD_SELF. + * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Use sizeof (struct + _pthread_descr_struct) instead of sizeof (*descr). + +2002-04-05 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/ia64/pt-machine.h: Protect against multiple inclusion. + * sysdeps/alpha/pt-machine.h: Likewise. + * sysdeps/arm/pt-machine.h: Likewise. + * sysdeps/cris/pt-machine.h: Likewise. + * sysdeps/hppa/pt-machine.h: Likewise. + * sysdeps/m68k/pt-machine.h: Likewise. + * sysdeps/mips/pt-machine.h: Likewise. + * sysdeps/powerpc/pt-machine.h: Likewise. + * sysdeps/s390/s390-32/pt-machine.h: Likewise. + * sysdeps/s390/s390-64/pt-machine.h: Likewise. + * sysdeps/sh/pt-machine.h: Likewise. + * sysdeps/sparc/sparc32/pt-machine.h: Likewise. + * sysdeps/sparc/sparc64/pt-machine.h: Likewise. + * sysdeps/x86_64/pt-machine.h: Likewise. + +2002-04-05 Jakub Jelinek <jakub@redhat.com> + + * man/pthread_mutexattr_init.man (pthread_mutexattr_settype): Document + instead of pthread_mutexattr_setkind_np. + (pthread_mutexattr_gettype): Similarly. + * man/pthread_mutexattr_setkind_np.man: New. + * man/Makefile (SOURCES): Add pthread_mutexattr_setkind_np.man. + +2002-04-02 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Define. + +2002-03-22 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Remove. + +2002-03-22 Ulrich Drepper <drepper@redhat.com> + + * internals.h (MEMORY_BARRIER): Define as asm with memory as clobber. + +2002-03-17 Andreas Jaeger <aj@suse.de> + + * sysdeps/i386/pt-machine.h: Add testandset and __compare_and_swap + prototpyes. + * sysdeps/alpha/pt-machine.h: Likewise. + * sysdeps/arm/pt-machine.h: Likewise. + * sysdeps/cris/pt-machine.h: Likewise. + * sysdeps/hppa/pt-machine.h: Likewise. + * sysdeps/i386/i686/pt-machine.h: Likewise. + * sysdeps/ia64/pt-machine.h: Likewise. + * sysdeps/m68k/pt-machine.h: Likewise. + * sysdeps/mips/pt-machine.h: Likewise. + * sysdeps/powerpc/pt-machine.h: Likewise. + * sysdeps/s390/s390-32/pt-machine.h: Likewise. + * sysdeps/s390/s390-64/pt-machine.h: Likewise. + * sysdeps/sh/pt-machine.h: Likewise. + * sysdeps/sparc/sparc32/pt-machine.h: Likewise. + * sysdeps/sparc/sparc64/pt-machine.h: Likewise. + * sysdeps/x86_64/pt-machine.h: Likewise. + + * internals.h: Move testandset and __compare_and_swap prototypes + to pt-machine.h. + +2002-03-03 Andreas Jaeger <aj@suse.de> + + * errno.c: Include resolv.h to avoid warning. + +2002-02-27 Ulrich Drepper <drepper@redhat.com> + + * pthread.c [USE_TLS] (thread_self_stack): Correct check for upper + stack limit. + +2002-02-23 Ulrich Drepper <drepper@redhat.com> + + * attr.c (pthread_getattr_np): Don't take thread descriptor size + into account if USE_TLS. + * manager.c (pthread_handle_create): Free TLS data structures if call + failed. Pass correct stack to clone if USE_TLS. + * sysdeps/i386/pt-machine.h: Handle multiple inclusion. + * sysdeps/i386/i686/pt-machine.h: Likewise. + * sysdeps/i386/tls.h: Unconditionally include <pt-machine.h>. + + * descr.h (struct _pthread_descr_struct): Update p_header for TLS. + Add p_stackaddr element #if USE_TLS. + * internals.c: Include <tls.h>. + * manager.c: Integrate creating and handling of thread descriptor + for TLS. + * pthread.c: Likewise. + * sysdeps/i386/tls.h (tcbhead_t): Add self pointer. + Include <linuxthreads/descr.h> only if TLS is really used. + (GET_DTV): New macro. + (TLS_INIT_TP): Initialize self pointer. + +2002-02-17 Andreas Schwab <schwab@suse.de> + + * signals.c (sigwait): Check for old sighandler being SIG_ERR, + not NULL. + +2002-02-12 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/tls.c (INSTALL_NEW_DTV): Define. + (INSTALL_DTV): Adjust for being passed pointer to element with length. + +2002-02-08 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/tls.h (TLS_INIT_TP): Also initialize %gs. + +2002-02-08 Richard Henderson <rth@redhat.com> + + * sysdeps/alpha/elf/pt-initfini.c: Use \n\ for multiline string. + +2002-02-08 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/tls.h: TLS cannot be supported with FLOATING_STACKS + after all. + +2002-02-07 H.J. Lu <hjl@gnu.org> + + * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Silence the + gcc warning. + (__pthread_spin_lock): Remove ".set noreorder". + * sysdeps/mips/pt-machine.h (__compare_and_swap): Liekwise. + +2002-02-05 H.J. Lu <hjl@gnu.org> + + * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Not use + branch likely. + * sysdeps/mips/pt-machine.h (testandset): Likewise. + (__compare_and_swap): Likewise. + +2002-02-07 Ulrich Drepper <drepper@redhat.com> + + * internals.h: Move declarations/definitions of + __pthread_initial_thread_bos, __pthread_initial_thread, + __pthread_manager_thread_bos, __pthread_manager_thread_tos, + __pthread_manager_thread, __pthread_nonstandard_stacks, STACK_SIZE, + CURRENT_STACK_FRAME, __pthread_find_self, and thread_self... + * descr.h: ...here. + * sysdeps/i386/tls.h: Add TLS definitions also for !FLOATING_STACKS. + Define THREAD_GETMEM accordingly. + +2002-02-06 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/tls.h: Include <stddef.h> for size_t. + + * sysdeps/i386/tls.h: Define THREAD_DTV. + +2002-02-04 Ulrich Drepper <drepper@redhat.com> + + * internals.h: Move thread descriptor definition... + * descr.h.: ...here. New file. + * sysdeps/i386/tls.h: New file. + +2002-02-01 H.J. Lu <hjl@gnu.org> + + * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Use a + different register in the delayed slot. Use branch likely. + + * sysdeps/mips/pt-machine.h (testandset): Call _test_and_set. + (__compare_and_swap): Return 0 only when failed to compare. Use + branch likely. + +2002-02-01 Jakub Jelinek <jakub@redhat.com> + + * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set, + __pthread_kill_other_threads_np): Move to GLIBC_PRIVATE. + * sysdeps/i386/i586/Versions: Move all symbols to GLIBC_PRIVATE. + * sysdeps/i386/i686/Versions: Move all symbols to GLIBC_PRIVATE. + * sysdeps/sparc/sparc32/sparcv9/Versions: New file. + * sysdeps/sparc/sparc64/Versions: New file. + * sysdeps/ia64/Versions: Move all symbols to GLIBC_PRIVATE. + +2002-01-31 Ulrich Drepper <drepper@redhat.com> + + * pthread.c: _dl_cpuclock_offset is not any longer a global variable + in SHARED code, use GL(dl_cpuclock_offset). + +2002-01-28 Andreas Jaeger <aj@suse.de> + + * sysdeps/mips/pspinlock.c (__pthread_spin_init): Clear *LOCK to + 0. Patch by Machida Hiroyuki <machida@sm.sony.co.jp>. + +2002-01-16 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/s390/s390-32/pt-machine.h (MEMORY_BARRIER): Define. + (CURRENT_STACK_FRAME): Remove duplicate definition. + * sysdeps/s390/s390-64/pt-machine.h: Likewise. + +2002-01-14 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * Makefile (CFLAGS-tst-cancel.c): Add -fno-inline-functions to prevent + automatic inline. + +2002-01-12 Andreas Schwab <schwab@suse.de> + + * Makefile (test-srcs): Add tst-signal. + (tests): Run tst-signal. + (distribute): Add tst-signal.sh. + * tst-signal.c, tst-signal.sh: New files. + +2002-01-14 Andreas Jaeger <aj@suse.de> + + * sysdeps/x86_64/pt-machine.h (INIT_THREAD_SELF): Avoid warning. + +2002-01-11 Andreas Schwab <schwab@suse.de> + + * signals.c (sighandler): Initialize all elements to SIG_ERR. + (__sigaction): Don't use value from sighandler if it is SIG_ERR. + +2002-01-06 Richard Henderson <rth@redhat.com> + + * sysdeps/alpha/elf/pt-initfini.c: New file. + +2001-12-29 Andreas Jaeger <aj@suse.de> + + * Examples/ex9.c: Add noreturn attribute for thread. + * Examples/ex10.c: Likewise. + * Examples/ex13.c (thread_start): Likewise. + * Examples/ex15.c (worker): Likewise. + + * Examples/ex18.c: Include unistd.h for prototype of sleep. + +2001-12-14 Ulrich Drepper <drepper@redhat.com> + + * man/pthread_atfork.man: Adjust description of mutex handling + after fork for current implementation. + * linuxthreads.texi: Likewise [PR libc/2519]. + +2001-12-13 Andreas Schwab <schwab@suse.de> + + * specific.c (pthread_key_delete): Don't contact the thread + manager if no threads have been created yet. + +2001-12-12 NIIBE Yutaka <gniibe@m17n.org> + + * sysdeps/sh/pt-machine.h (INIT_THREAD_SELF): Added __volatile__ + qualifier to be safe. + +2001-11-30 Andreas Schwab <schwab@suse.de> + + * pthread.c (pthread_handle_sigcancel) [THREAD_SELF]: Double check + that self is the manager thread, and initialize the thread + register if not. + (thread_self_stack) [THREAD_SELF]: New function to find self via + stack pointer. + * manager.c (pthread_handle_create): Don't block cancel signal any + more. + +2001-11-29 Andreas Jaeger <aj@suse.de> + + * sysdeps/x86_64/pt-machine.h: Use %gs as thread specific register. + (THREAD_SELF): New. + (INIT_THREAD_SELF): New. + (THREAD_GETMEM): New. + (THREAD_GETMEM_NC): + (THREAD_SETMEM): New. + (THREAD_SETMEM_NC): New. + (FLOATING_STACKS): Define. + (ARCH_STACK_MAX_SIZE): Define. + +2001-11-28 Kaz Kylheku <kaz@ashi.footprints.net> + + Bugfix to pthread_key_delete. It was iterating over the thread + manager's linked list of threads, behind the thread manager's + back causing a race. The fix is to have the manager iterate over + the threads instead, using a new request type for doing so. + * internals.h (struct pthread_request): New manager request type + REQ_FOR_EACH_THREAD. + * manager.c (pthread_for_each_thread): New function. + (__pthread_manager): Handle new REQ_FOR_EACH_THREAD request. + * specific.c (struct pthread_key_delete_helper_args): New type. + (pthread_key_delete_helper): New static function. + (pthread_key_delete): Use the new thread manager + REQ_FOR_EACH_THREAD function to iterate over the threads and set + the delete key slot to a null value in each thread. + * Examples/ex18.c: New test. + * Makefile (tests): Add ex18. + +2001-11-22 Wolfram Gloger <wg@malloc.de> + + * pthread.c (pthread_onexit_process): Don't call free + after threads have been asynchronously terminated. + + * manager.c (pthread_handle_exit): Surround cancellation + of threads with __flockfilelist()/__funlockfilelist(). + +2001-11-26 Andreas Schwab <schwab@suse.de> + + * manager.c (pthread_handle_create): Start the child thread with + the cancel signal blocked, so that it does not handle it before + the thread register is set up. Save errno from failed clone call. + +2001-11-15 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/i686/Implies: Removed. + * sysdeps/i386/i686/Versions: New file. + +2001-10-31 Andreas Jaeger <aj@suse.de> + + * sysdeps/x86_64/Makefile: Remove, we do not need it anymore. + +2001-10-05 Kevin Buettner <kevinb@cygnus.com> + + * pthread.c (__linuxthread_pthread_sizeof_descr): Change name + to __linuxthreads_pthread_sizeof_descr to match name used by + symbol_list_arr[LINUXTHREADS_PTHREAD_SIZEOF_DESCR] in + linuxthreads_db/td_symbol_list.c. + +2001-09-22 Andreas Jaeger <aj@suse.de> + + * linuxthreads/tst-context.c: Avoid compile warning. + +2001-09-20 Andreas Jaeger <aj@suse.de> + + * shlib-versions: Add x86-64. + +2001-09-19 Andreas Jaeger <aj@suse.de> + + * sysdeps/x86_64/Makefile: New file. + * sysdeps/x86_64/pspinlock.c: New file. + * sysdeps/x86_64/pt-machine.h: New file. + +2001-09-12 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/timer_delete.c (timer_delete): Thread may be NULL + for SIGEV_NONE. + * sysdeps/pthread/timer_settime.c (timer_settime): Likewise. + +2001-09-11 Ulrich Drepper <drepper@redhat.com> + Wolfram Gloger <wg@malloc.de> + + * join.c: Protect all communications from and to manager with + TEMP_FAILURE_RETRY. + * manager.c: Likewise. + * pthread.c: Likewise. + * smeaphore.c: Likewise. + +2001-08-29 Ulrich Drepper <drepper@redhat.com> + + * spinlock.c (__pthread_lock): Top max_count value with + MAX_ADAPTIVE_SPIN_COUNT. + * internals.h (MAX_ADAPTIVE_SPIN_COUNT): Define if not already done. + + * sysdeps/i386/i686/pt-machine.h (BUSY_WAIT_NOP): New macro to + help P4. + +2001-08-27 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_t): Only define to + non-opaque type if __USE_UNIX98. + +2001-08-26 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/bits/libc-lock.h (__libc_lock_t): Define + non-opaque lock types also if _IO_MTSAFE_IO is defined. + +2001-08-23 Roland McGrath <roland@frob.com> + + * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start): Take + new first argument, skip the cleanup handler if it's zero. + (_LIBC_LOCK_RECURSIVE_INITIALIZER): New macro. + (__libc_lock_define_initialized_recursive): Use it. + * sysdeps/pthread/bits/stdio-lock.h: File removed. + The sysdeps/generic file from the main tree now suffices. + +2001-08-22 Roland McGrath <roland@frob.com> + + * sysdeps/pthread/bits/stdio-lock.h: Include <bits/libc-lock.h> + instead of <pthread.h>. + (_IO_lock_t): Define this typedef using __libc_lock_define_recursive. + (_IO_lock_initializer): Add braces. + (_IO_lock_lock): Use __libc_lock_lock_recursive. + (_IO_lock_unlock): Use __libc_lock_unlock_recursive. + + * sysdeps/pthread/bits/libc-lock.h (__libc_lock_recursive_t): New type. + (__libc_lock_define_initialized_recursive): Use it. + (__libc_lock_init_recursive): Likewise. + (__libc_lock_fini_recursive): Likewise. + (__libc_lock_lock_recursive): Likewise. + (__libc_lock_trylock_recursive): Likewise. + (__libc_lock_unlock_recursive): Likewise. + (__libc_lock_define_recursive): New macro. + +2001-08-14 Jakub Jelinek <jakub@redhat.com> + + * lockfile.c (__pthread_provide_lockfile): New variable. + * pthread.c (__pthread_require_lockfile): New variable. + * cancel.c (__pthread_require_lockfile): New variable. + +2001-07-31 Ulrich Drepper <drepper@redhat.com> + + * tst-context.c (threadfct): Initialize context before calling + makecontext. + + * Examples/ex17.c: Make sure test thread is around long enough. + +2001-07-26 kaz Kojima <kkojima@rr.iij4u.or.jp> + + * sysdeps/sh/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF): Defined. + +2001-07-24 Ulrich Drepper <drepper@redhat.com> + + * tst-context.c (main): Print explanation before bailing out + because context handling is not supported. + +2001-07-23 Ulrich Drepper <drepper@redhat.com> + + * Makefile (tests): Add tst-context. + * tst-context.c: New file. + + * sysdeps/pthread/bits/stdio-lock.h: Define + _IO_cleanup_region_start_noarg. + +2001-07-23 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/alpha/pt-machine.h (FLOATING_STACKS): Define. + (ARCH_STACK_MAX_SIZE): Define. + * sysdeps/sparc/sparc32/pt-machine.h: Likewise. + * sysdeps/sparc/sparc64/pt-machine.h: Likewise. + +2001-07-19 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/i386/useldt.h: Fix typo in ARCH_STACK_MAX_SIZE comment. + + * sysdeps/ia64/pt-machine.h (FLOATING_STACKS): Define. + (ARCH_STACK_MAX_SIZE): Define. + * manager.c (pthread_allocate_stack): Handle FLOATING_STACKS with + NEED_SEPARATE_REGISTER_STACK. + +2001-07-16 Andreas Schwab <schwab@suse.de> + + * Makefile (before-compile): Don't add $(objpfx)crti.o. + (omit-deps): Add crti. + ($(objpfx)libpthread.so): Depend on $(objpfx)crti.o, but make sure + it is filtered out of the link command. + +2001-07-16 Ulrich Drepper <drepper@redhat.com> + + * pthread.c (pthread_initialize): For FLOATING_STACKS don't bother + to find the right value for __pthread_initial_thread_bos, it's not + used. If not FLOATING_STACKS first run + __pthread_init_max_stacksize. + +2001-06-16 H.J. Lu <hjl@gnu.org> + + * internals.h: Include <stackinfo.h>. + + * attr.c: Don't include <stackinfo.h> here. + * cancel.c: Likewise. + * manager.c: Likewise. + * pthread.c: Likewise. + * ptlongjmp.c: Likewise. + +2001-03-23 Matthew Wilcox <willy@ldl.fc.hp.com> + + * attr.c: Make _STACK_GROWS_UP work. + * internals.h: Likewise. + * manager.c: Likewise. + * pthread.c: Likewise. + +2001-06-15 H.J. Lu <hjl@gnu.org> + + * pthread.c (__pthread_reset_main_thread): Fix a typo. + +2001-02-02 John S. Marvin <jsm@udlkern.fc.hp.com> + + * semaphore.h: Use struct _pthread_fastlock as an element of + sem_t instead of an identical struct. + * rwlock.c: Remove casts. + * semaphore.c: Likewise. + +2001-04-30 Alan Modra <amodra@one.net.au> + + * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: New. + +2001-05-25 Bruce Mitchener <bruce@cubik.org> + + * linuxthreads.texi: Spelling corrections. + +2001-05-25 Ulrich Drepper <drepper@redhat.com> + + * oldsemaphore.c (__old_sem_wait): Clear p_nextwaiting before + returning successfully. + Patch by Gene Cooperman <gene@ccs.neu.edu>. + +2001-05-24 Ulrich Drepper <drepper@redhat.com> + + * spinlock.c (__pthread_lock) [HAS_COMPARE_AND_SWAP]: Before doing any + serious work try once whether the lock is uncontested. + Remove duplicate reading of __status before loop. + Change suggested by Hans Boehm <hans_boehm@hp.com>. + + * spinlock.h (__pthread_trylock): Remove need for oldstatus variable. + (__pthread_alt_trylock): Likewise. + +2001-05-01 Kaz Kylheku <kaz@ashi.footprints.net> + + Memory barrier overhaul following line by line inspection. + * mutex.c (pthread_once): Missing memory barriers added. + * pthread.c (__pthread_wait_for_restart_signal, + __pthread_timedsuspend_new, __pthread_restart_new): Added + memory barriers ``just in case'' and for documentary value. + * spinlock.c (__pthread_release): New inline function for releasing + spinlock, to complement __pthread_acquire. Includes memory + barrier prior to assignment to spinlock, and __asm __volatile + dance to prevent reordering or optimization of the spinlock access. + * spinlock.c (__pthread_unlock, __pthread_alt_lock, + __pthread_alt_timedlock, __pthread_alt_unlock, + __pthread_compare_and_swap): Updated to use new __pthread_release + instead of updating spinlock directly. + * spinlock.c (__pthread_lock, __pthread_unlock, wait_node_alloc, + wait_node_free, wait_node_dequeue, __pthread_alt_lock, + __pthread_alt_timedlock, __pthread_alt_unlock, __pthread_acquire): + Memory barrier overhaul. Lots of missing memory barriers added, + a couple needless ones removed. + * spinlock.c (__pthread_compare_and_swap): testandset optimization + removed, just calls __pthread_acquire, which has the new read + barrier in it before its testandset. + +2001-05-20 Roland McGrath <roland@frob.com> + + * Makeconfig: New file, variables used to be in main libc Makeconfig. + +2001-05-09 Geoff Keating <geoffk@redhat.com> + + * sysdeps/powerpc/pt-machine.h + (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): Define. + (__compare_and_swap): Remove memory barriers. + (__compare_and_swap_with_release_semantics): New function. + +2001-04-24 Andreas Jaeger <aj@suse.de> + + * wrapsyscall.c: send* and recv* return ssize_t. + + * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Unlock the + mutex instead of double locking it. + Reported by Pierre Artaud <partaud@sodatec.com>. + +2001-04-23 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/getcpuclockid.c: Make function generic, test + using #ifdef whether the clock is available. + * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: Removed. + + * sysdeps/ia64/Versions: New file. + + * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init): We don't + have to call __gmon_start__ in the libpthread DSO. + * sysdeps/pthread/pt-initfini.c (_init): Likewise. + + * Makefile (libpthread-routines): Add ptclock_gettime and + ptclock_settime. + * internals.h: Don't use cpuclock-init.h definitions, use + hp-timing.h definitions. + * pthread.c: Likewise. + * manager.c: Likewise. + * ptclock_gettime.c: New file. + * ptclock_settime.c: New file. + * internals.h: Fix parameter type for __pthread_clock_gettime and + __pthread_clock_settime. + + * sysdeps/i386/i586/ptclock_gettime.c: Removed. + * sysdeps/i386/i586/ptclock_settime.c: Removed. + * sysdeps/i386/i586/Makefile: Removed. + +2001-04-22 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_ASYNCH_IO. + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise. + +2001-04-21 Andreas Jaeger <aj@suse.de> + + * sysdeps/pthread/timer_routines.c (thread_func): Add noreturn + attribute, remove statements that will never be executed. + (thread_func): Remove mutex_unlock call since it's never executed. + (thread_func): Fix comment as suggested by Jakub Jelinek. + + * manager.c (__pthread_manager): Add noreturn + attribute. + (pthread_start_thread): Likewise, remove return statement. + (pthread_start_thread_event): Likewise. + Add noreturn attribute for pthread_handle_exit. + * weaks.c: Add noreturn attribute for pthread_exit. + + * internals.h: Add __pthread_clock_gettime and + __pthread_clock_settime prototypes. + +2001-04-21 Ulrich Drepper <drepper@redhat.com> + + * internals.h: Include <cpuclock-init.h>. + (struct _pthread_descr_struct): Add p_cpuclock_offset field if + CPUCLOCK_VARDEF is defined. + * pthread.c (__pthread_initialize_minimal): Initialize + p_cpuclock_offset field for main thread if CPUCLOCK_INIT is defined. + * manager.c (pthread_start_thread): Set p_cpuclock_offset field + for new thread to current CPU clock value. + + * sysdeps/i386/useldt.h: Extend all the macros to handle 8-byte values. + + * sysdeps/i386/i586/Makefile: New file. + * sysdeps/i386/i586/Versions: New file. + * sysdeps/i386/i586/ptclock_gettime.c: New file. + * sysdeps/i386/i586/ptclock_settime.c: New file. + * sysdeps/i386/i686/Implies: New file. + +2001-04-18 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Put specs into + $generated, not $postclean-generated. + +2001-04-18 Andreas Jaeger <aj@suse.de> + + * Makefile (otherlibs): Added. + +2001-04-18 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file. + +2001-04-16 Ulrich Drepper <drepper@redhat.com> + + * signals.c (sigwait): NSIG is no signal number. Block all + signals while in signal handler for signals in SET. + Patch by Manfred Spraul <manfred@colorfullife.com>. + +2001-04-12 Ulrich Drepper <drepper@redhat.com> + + * tst-cancel.c: Disable most tests. Add new test where all + cleanup handlers must run. + * Makefile (tests): Add tst-cancel again. + + * cancel.c (__pthread_perform_cleanup): Correct condition for + leaving cleanup loop early. + + * sysdeps/i386/Makefile: Make sure gcc uses a frame pointer for + all the files which use CURRENT_STACK_FRAME. + * sysdeps/i386/pt-machine.h (CURRENT_STACK_FRAME): Define using + __builtin_frame_address. + * sysdeps/i386/i686/pt-machine.h: Likewise. + +2001-04-11 Ulrich Drepper <drepper@redhat.com> + + * Makefile (tests): Comment out tst-cancel for now. + + * tst-cancel.c (main): Cleanup 4 is supposed to run. Create + temporary file in object directory. + * Makefile: Don't allow inlining when compiling tst-cancel.c. + Pass $(objpfx) to tst-cancel. + +2001-04-11 David S. Miller <davem@redhat.com> + + * sysdeps/sparc/sparc32/pt-machine.h (stack_pointer): Advance + up closer to user local variables so that new cleanup heuristics work. + * sysdeps/sparc/sparc64/pt-machine.h (stack_pointer): Likewise. + +2001-04-11 Ulrich Drepper <drepper@redhat.com> + + * cancel.c (_pthread_cleanup_push): Catch invalid __prev buffer + and remove it. + (_pthread_cleanup_push_defer): Likewise. + + * tst-cancel.c (main): Fix loop printing cleanup output. + +2001-04-10 kaz Kojima <kkojima@rr.iij4u.or.jp> + + * sysdeps/sh/pspinlock.c (__pthread_spin_lock): Fix a reverse + test. + (__pthread_spin_trylock): Likewise. + * sysdeps/sh/pt-machine.h (testandset): Likewise. + +2001-04-10 Ulrich Drepper <drepper@redhat.com> + + * join.c (pthread_exit): Move code to new function __pthread_do_exit + which takes an extra parameter with the current frame pointer. + Call new function with CURRENT_STACK_FRAME. + (__pthread_do_exit): New function. Call __pthread_perform_cleanup + with the new parameter. + (pthread_join): Call __pthread_do_exit instead of pthread_exit. + * cancel.c (__pthread_perform_cleanup): Takes extra parameter. Use + this parameter as the initial value the cleanup handler records are + compared against. No active cleanup handler record must have an + address lower than the previous one and the initial record must be + above (below on PA) the frame address passed in. + (pthread_setcancelstate): Call __pthread_do_exit instead of + pthread_exit. + (pthread_setcanceltype): Likewise. + (pthread_testcancel): Likewise. + (_pthread_cleanup_pop_restore): Likewise. + * condvar.c (pthread_cond_wait): Likewise. + (pthread_cond_timedwait_relative): Likewise. + * manager.c (pthread_start_thread): Likewise. + * oldsemaphore.c (__old_sem_wait): Likewise. + * pthread.c (pthread_handle_sigcancel): Likewise. + * semaphore.c (__new_sem_wait): Likewise. + (sem_timedwait): Likewise. + * ptlongjmp.c (pthread_cleanup_upto): Also use current stack frame + to limit the cleanup handlers which get run. + * internals.h: Add prototype for __pthread_do_exit. Adjust prototype + for __pthread_perform_cleanup. + + * Makefile (tests): Add tst-cancel. + * tst-cancel.c: New file. + +2001-04-08 Hans-Peter Nilsson <hp@axis.com> + + * sysdeps/cris/pt-machine.h: New file. + * sysdeps/cris/pspinlock.c: New file. + +2001-04-09 Hans-Peter Nilsson <hp@axis.com> + + * shlib-versions: Add case for Linux on CRIS. + +2001-03-26 Ulrich Drepper <drepper@redhat.com> + + * attr.c (pthread_getattr_np): Correct computation of stack size + for machiens with register stack. + + * Examples/ex17.c (main): Correct detection of failed mmap call. + +2001-03-21 Jakub Jelinek <jakub@redhat.com> + + * pthread.c (__pthread_initialize_manager): Fix a typo. + +2001-03-21 Jakub Jelinek <jakub@redhat.com> + + * attr.c (__pthread_attr_setstack): Fix alignment check. + (pthread_getattr_np): __stackaddr is top of stack, not bottom. + * Makefile (tests): Add ex17 test. + * Examples/ex17.c: New test. + +2001-03-20 Ulrich Drepper <drepper@redhat.com> + + * Makefile: Define -D_RPC_THREAD_SAFE_ for cancel.c. + * cancel.c (__pthread_perform_cleanup): Call __rpc_thread_destroy. + * sysdeps/pthread/bits/libc-tsd.h: Define _LIBC_TSD_KEY_VARS. + +2001-03-18 Ulrich Drepper <drepper@redhat.com> + + * Makefile: When generating DSO link with libc_nonshared.a. + +2001-02-26 Jakub Jelinek <jakub@redhat.com> + + * signals.c (pthread_sighandler): Use CALL_SIGHANDLER. + +2001-02-23 Jakub Jelinek <jakub@redhat.com> + + * internals.h (__pthread_init_max_stacksize): New prototype. + * attr.c (__pthread_attr_setstacksize): Call + __pthread_init_max_stacksize if not yet initialized. + * pthread.c (__pthread_init_max_stacksize): New function. + (__pthread_initialize_manager): Call it. + Patch by <dtc@cmucl.cons.org>. + +2001-03-16 Ulrich Drepper <drepper@redhat.com> + + * attr.c (pthread_getattr_np): Fix __stacksize computation for IA-64. + +2001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * shlib-versions: Add rule for Linux on 64 bit S/390. + * sysdeps/s390/s390-64/pt-machine.h: New file. + * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file. + +2001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/s390/pt-machine.h: Move to... + * sysdeps/s390/s390-32/pt-machine.h: ...here. + Add defines for FLOATING_STACK and ARCH_STACK_MAX_SIZE. + +2001-03-15 Ulrich Drepper <drepper@redhat.com> + + * Versions [libpthread] (GLIBC_2.2.3): Add pthread_getattr_np. + * attr.c: Implement pthread_getattr_np. + * sysdeps/pthread/pthread.h: Add prototype for pthread_getattr_np. + * internals.h (struct _pthread_descr_struct): Add p_inheritsched. + * manager.c (pthread_handle_create): Initialize p_inheritsched. + +2001-03-09 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/unix/sysv/linux/s390/pt-initfini.c: Use 0x07 padding for + code alignment. + +2001-02-20 Hans Boehm <hans_boehm@hp.com> + + * manager.c (manager_mask): Removed static vesion. Now always local + to __pthread_manager(). + (manager_mask_all): Removed completely. + (__pthread_manager): Remove manager_mask_all initialization. + (pthread_handle_create): Remove code to set and reset signal mask + around __clone2() calls. + +2001-02-17 Jakub Jelinek <jakub@redhat.com> + + * spinlock.c (__pthread_lock): Force lock->__status to be read from + memory on every spin. + +2001-02-10 Andreas Jaeger <aj@suse.de> + + * Makefile (extra-objs): New. + +2001-02-09 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Add + __pthread_initialize_minimal prototype. + +2001-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp> + + * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file. + +2001-02-06 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/unix/sysv/linux/s390/pt-initfini.c: New file. + +2001-02-06 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: First attempt to fix the + broken code. Patch by Jes Sorensen. + +2001-02-06 Andreas Jaeger <aj@suse.de> + + * sysdeps/pthread/pthread.h: Move __pthread_initialize from here + to... + * internals.h: ...here. + +2001-02-05 Jes Sorensen <jes@linuxcare.com> + + * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file. + +2001-02-02 Ulrich Drepper <drepper@redhat.com> + + * Versions: Remove __pthread_initialize_minimal. + +2001-02-01 Ulrich Drepper <drepper@redhat.com> + + * Makefile: Add rules to build crti.o and make it being used in + building libpthread.so. + * sysdeps/i386/Makefile: New file. + * sysdeps/pthread/pt-initfini.c: New file. + + * pthread.c: Cleanups. + +2001-01-28 Andreas Jaeger <aj@suse.de> + + * oldsemaphore.c (__old_sem_init): Adjust for last change. + * sysdeps/pthread/bits/libc-lock.h: Likewise. + * spinlock.c: Likewise. + +2001-01-28 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/bits/initspin.h: Make all names namespace clean. + * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise. + * manager.c: Adjust for namespace cleanup in bits/initspin.h. + * pthread.c: Likewise. + * spinlock.h: Likewise. + * sysdeps/pthread/pthread.h: Likewise. + +2001-01-26 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/bits/pthreadtypes.h: Define pthread_attr_t also + as struct __pthread_attr_s. + + * semaphore.h (sem_t): Cleanup namespace, rename status and + spinlock elements. + +2001-01-13 Jakub Jelinek <jakub@redhat.com> + + * pthread.c (pthread_onexit_process): Clear + __pthread_manager_thread_bos after freeing it. + * Makefile (tests): Add ex16. + * Examples/ex16.c: New file. + +2001-01-11 Jakub Jelinek <jakub@redhat.com> + + * Makefile (CFLAGS-pthread.c): Pass -DHAVE_Z_NODELETE if ld supports + -z nodelete. + * pthread.c (pthread_exit_process): Rename to... + (pthread_onexit_process): ...this. + (pthread_atexit_process, pthread_atexit_retcode): New. + (pthread_initialize): Call __cxa_atexit instead of __cxa_on_exit + and only if HAVE_Z_NODELETE is not defined. + (__pthread_initialize_manager): Register pthread_atexit_retcode + with __cxa_atexit. + +2001-01-11 Ulrich Drepper <drepper@redhat.com> + + * pthread.c (pthread_initialize): Use __cxs_on_exit not __cxa_atexit. + +2001-01-11 Jakub Jelinek <jakub@redhat.com> + + * Makefile (tests): Add ex15. + * Examples/ex15.c: New test. + +2001-01-08 Ulrich Drepper <drepper@redhat.com> + + * pthread.c (pthread_exit_process): Free memory allocated for + manager stack. + +2000-12-31 Ulrich Drepper <drepper@redhat.com> + + * manager.c (pthread_alloca_stack): Remove MAP_FIXED from mmap calls. + (pthread_free): Always unmap the stack. It's safe now that we don't + use MAP_FIXED to allocate stacks. + +2000-12-31 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/powerpc/pspinlock.c: Don't include pt-machine.h here. + + * manager.c (pthread_allocate_stack): Prepare for removal of MAP_FIXED. + +2000-11-15 Wolfram Gloger <wg@malloc.de> + + * manager.c (pthread_free): [!FLOATING_STACKS]: Only remap the + stack to PROT_NONE, don't unmap it, avoiding collisions with malloc. + +2000-12-27 Andreas Jaeger <aj@suse.de> + + * Examples/ex13.c: Make local functions static. + * ecmutex.c: Likewise. + * joinrace.c: Likewise. + * Examples/ex14.c: Likewise. + + * Examples/ex2.c: Make local functions static; reformat. + * Examples/ex1.c: Likewise. + * Examples/ex4.c: Likewise. + * Examples/ex5.c: Likewise. + * Examples/ex7.c: Likewise. + + * oldsemaphore.c: Add prototypes to shut up GCC. + * pt-machine.c: Likewise. + + * weaks.c: Add prototype for pthread_exit. + + * internals.h: Add some prototypes, format prototypes and add + missing externs. + Move __libc_waitpid prototype to include/sys/wait.h. + + * rwlock.c: Include <bits/libc-lock.h> for prototypes. + * mutex.c: Likewise. + * specific.c: Likewise. + * ptfork.c: Likewise. + + * lockfile.c: Include internals.h to get prototypes. + * events.c: Likewise. + * sysdeps/alpha/pspinlock.c: Likewise. + * sysdeps/arm/pspinlock.c: Likewise. + * sysdeps/hppa/pspinlock.c: Likewise. + * sysdeps/i386/pspinlock.c: Likewise. + * sysdeps/ia64/pspinlock.c: Likewise. + * sysdeps/m68k/pspinlock.c: Likewise. + * sysdeps/mips/pspinlock.c: Likewise. + * sysdeps/powerpc/pspinlock.c: Likewise. + * sysdeps/s390/pspinlock.c: Likewise. + * sysdeps/sh/pspinlock.c: Likewise. + * sysdeps/sparc/sparc32/pspinlock.c: Likewise. + * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise. + * sysdeps/sparc/sparc64/pspinlock.c: Likewise. + +2000-12-27 Ulrich Drepper <drepper@redhat.com> + + * attr.c (__pthread_attr_setstack): Fix setting of __stackaddr element. + (__pthread_attr_getstack): Return correct address. + Add warnings for using pthread_attr_getstackaddr and + pthread_attr_setstackaddr. + +2000-12-26 Ulrich Drepper <drepper@redhat.com> + + * Examples/ex6.c (test_thread): Make static. + * Examples/ex12.c (test_thread): Make static and add noreturn + attribute. + +2000-12-18 Jes Sorensen <jes@linuxcare.com> + + * linuxthreads/sysdeps/ia64/pt-machine.h: __compare_and_swap + and compare_and_swap_with_release_semantics returns int not long. + +2000-12-17 Andreas Jaeger <aj@suse.de> + + * sysdeps/s390/pt-machine.h (testandset): Use long int as return + value. + * sysdeps/arm/pt-machine.h (testandset): Likewise. + * sysdeps/hppa/pt-machine.h (testandset): Likewise. + * sysdeps/m68k/pt-machine.h (testandset): Likewise. + * sysdeps/sh/pt-machine.h (testandset): Likewise. + * sysdeps/sparc/sparc32/pt-machine.h (testandset): Likewise. + * sysdeps/sparc/sparc64/pt-machine.h (testandset): Likewise. + +2000-12-17 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/pt-machine.h (testandset): Adjust for prototype change. + * sysdeps/i386/i686/pt-machine.h (testandset): Likewise. + +2000-12-17 Andreas Jaeger <aj@suse.de> + + * internals.h: Add prototypes for testandset and + __compare_and_swap to shut up gcc warnings. + +2000-12-06 Wolfram Gloger <wg@malloc.de> + + * join.c (pthread_detach): Allow case where the thread has already + terminated. + +2000-12-05 Andreas Jaeger <aj@suse.de> + + * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Don't set mips2. + * sysdeps/mips/pt-machine.h (testandset): Likewise. + (__compare_and_swap): Likewise. + Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>. + +2000-11-20 Jakub Jelinek <jakub@redhat.com> + + * Examples/ex3.c (main): Cast int to long before casting to void *. + (search): Cast void * to long, not int. + * Examples/ex8.c (main, thread): Similarly. + * Examples/ex11.c (main): Similarly. + * Examples/ex14.c (worker, do_test): Similarly. + * ecmutex.c (worker, do_test): Similarly. + (nlocks): Cast to int. + +2000-11-08 Bruce Mitchener <bruce@cubik.org> + + * linuxthreads.texi: Add documentation for pthreads attributes + guardsize, stackaddr, stacksize, and stack. Fix typo in previous + patch. Document pthread_[sg]etconcurrency(). Mark + pthread_mutexattr_[sg]ettype() as POSIX rather than GNU. + +2000-11-07 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING): + Don't define it. + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise. + Reported by Christopher Yeoh <cyeoh@linuxcare.com.au>. + +2000-11-06 Ulrich Drepper <drepper@redhat.com> + + * cancel.c (pthread_cancel): Always set p_canceled, even if we are + not doing it right now. + Reported by Kaz Kylheku <kaz@ashi.footprints.net>. + +2000-10-30 Ulrich Drepper <drepper@redhat.com> + + * Examples/ex4.c (main): Don't use exit() to avoid warning with + broken compilers. + +2000-10-29 Ulrich Drepper <drepper@redhat.com> + + * attr.c (__pthread_attr_setguardsize): Don't round guardsize + here. Reported by Bruce Mitchener <bruce@cubik.org>. + + * linuxthreads.texi: Changes terminology to 'type' from 'kind' when + discussing mutexes. (As per the Unix98 name for the API.) + Changes documentation for pthread_mutexattr_setkind_np() and + pthread_mutexattr_getkind_np() over to the Unix98 APIs for the + same: pthread_mutexattr_settype() and pthread_mutexattr_gettype(). + Changes references to PTHREAD_MUTEXATTR_FAST_NP to + PTHREAD_MUTEXATTR_ADAPTIVE_NP. + Begins to introduce discussion of the ``timed'' mutex type. This + discussion is currently incomplete. + Patch by Bruce Mitchener <bruce@cubik.org>. + +2000-10-26 Kazumoto Kojima <kkojima@rr.iij4u.or.jp> + Yutaka Niibe <gniibe@chroot.org> + + * sysdeps/sh/pt-machine.h (testandset): Since the operand of TAS.B + has restrictions, use register. + +2000-10-23 Andreas Schwab <schwab@suse.de> + + * Examples/ex14.c (TIMEOUT): Override default timeout. + +2000-10-16 Ulrich Drepper <drepper@redhat.com> + + * specific.c: Protect tsd array modification in thread data + structures by getting the thread lock in pthread_key_delete and + __pthread_destroy_specifics. + Patch by Wolfram Gloger <Wolfram.Gloger@dent.med.uni-muenchen.de>. + +2000-10-12 Alan Modra <alan@linuxcare.com.au> + + * sysdeps/pthread/bits/initspin.h: New file. + * spinlock.h: Move LOCK_INITIALIZER definition to <bits/initspin.h>. + (__pthread_init_lock): Initialize lock with LT_SPINLOCK_INIT. + (__pthread_alt_init_lock): Likewise. + (__pthread_alt_trylock): Release lock with LT_SPINLOCK_INIT. + +2000-10-12 David Huggins-Daines <dhd@linuxcare.com> + + * oldsemaphore.c (__old_sem_init): Release lock with + LT_SPINLOCK_INIT, not zero. + * spinlock.c (__pthread_unlock): Likewise. + (__pthread_alt_lock): Likewise. + (__pthread_alt_timedlock): Likewise. + (__pthread_alt_unlock): Likewise. + * sysdeps/pthread/bits/libc-lock.h: Initialize locks with + LT_SPINLOCK_INIT if it is non-zero. Likewise for init-once flags. + * sysdeps/pthread/pthread.h: Include bits/initspin.h. Use + LT_SPINLOCK_INIT do initialize spinlocks not 0. + +2000-10-12 David Huggins-Daines <dhd@linuxcare.com> + + * shlib-versions: Add version definitions for hppa-linux. + +2000-10-12 Alan Modra <alan@linuxcare.com.au> + + * sysdeps/hppa/pspinlock.c: New file. + * sysdeps/hppa/pt-machine.h: New file. + * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: New file. + +2000-10-05 Jakub Jelinek <jakub@redhat.com> + + * mutex.c (__pthread_mutex_destroy): Correct test of + busy mutex for mutexes using alternate fastlocks. + Patch by dtc@cmucl.cons.org. + +2000-09-28 Martin Schwidefsksy <schwidefsky@de.ibm.com> + + * sysdeps/s390/pt-machine.h: Make %a0 the thread register. + +2000-09-28 Ulrich Drepper <drepper@redhat.com> + + * mutex.c (__pthread_mutex_unlock): For PTHREAD_MUTEX_RECURSIVE_NP + test for owner first. + Patch by Kaz Kylheku <kaz@ashi.footprints.net>. + + * cancel.c (pthread_cancel): Don't do anything if cancelation is + disabled. + +2000-09-26 Ulrich Drepper <drepper@redhat.com> + + * spinlock.h (__pthread_set_own_extricate_if): Optimize a bit. + Patch by Kaz Kylheku <kaz@ashi.footprints.net>. + + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove + _POSIX_MONOTONIC_CLOCK. + + * spinlock.h (__pthread_set_own_extricate_if): Add back locking + and explain why. + +2000-09-20 Andreas Jaeger <aj@suse.de> + + * pthread.c [!__ASSUME_REALTIME_SIGNALS]: Make inclusion of + "testrtsig.h" conditional. + +2000-09-11 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/pthread.h: Declare pthread_attr_getstack and + pthread_attr_setstack. + * Versions [libpthread] (GLIBC_2.2): Export pthread_attr_getstack and + pthread_attr_setstack. + * attr.c (pthread_attr_getstack, pthread_attr_setstack): New functions. + +2000-09-05 Ulrich Drepper <drepper@redhat.com> + + * Examples/ex14.c: New file. + * Makefile (tests): Add ex14. + + * mutex.c (__pthread_mutex_unlock): Correct test for already unlocked + mutex. Patch by dtc@cmucl.cons.org. + + * ecmutex.c: New file. + * Makefile (tests): Add ecmutex. + +2000-09-04 H.J. Lu <hjl@gnu.org> + + * attr.c (__pthread_attr_setguardsize): Use page_roundup + instead of roundup to round up to the page size. + +2000-09-03 Mark Kettenis <kettenis@gnu.org> + + * manager.c (pthread_exited): Correctly report event as TD_REAP + instead of TD_DEATH. Fix comments. + +2000-09-03 Ulrich Drepper <drepper@redhat.com> + + * spinlock.h (testandset): Add cast to avoid warning. + Patch by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>. + +2000-09-02 Andreas Jaeger <aj@suse.de> + + * sysdeps/pthread/timer_routines.c: Include stdlib.h for abort + prototype. + +2000-09-01 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start): + Fix typo in last patch (_mode -> _flags). + + * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start): + Provide definition which respects _IO_USER_LOCK flag. + +2000-08-30 Ulrich Drepper <drepper@redhat.com> + + * manager.c (pthread_allocate_stack): Clear descriptor only if not + mmaped. + +2000-08-25 Ulrich Drepper <drepper@redhat.com> + + * Makefile: Add rules to build and run unload. + * unload.c: New file. + + * pthread.c (pthread_exit_process): Move thread_self use inside `if'. + + * sysdeps/pthread/pthread.h + (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Defined. + (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: Defined. + +2000-08-24 Andreas Jaeger <aj@suse.de> + + * Examples/ex13.c: Include <string.h> for strerror prototype and + <stdlib.h> for abort prototype. + (pthr_cond_signal_mutex): Rewrite to silence GCC. + (thread_start): Remove unused variable err. + (main): Silence GCC warnings. + +2000-08-22 Andreas Jaeger <aj@suse.de> + + * Examples/ex13.c: New test by Kurt Garloff <garloff@suse.de>. + + * Makefile (tests): Add ex13. + +2000-08-20 Ulrich Drepper <drepper@redhat.com> + + * semaphore.h: Add restrict where required by AGd4. + * sysdeps/pthread/pthread.h: Likewise. + * sysdeps/pthread/unix/sysv/linux/bits/sigthread.h: Likewise. + +2000-08-15 Ulrich Drepper <drepper@redhat.com> + + * Makefile (tests): Add ex12. Add rule to build it. + * Examples/ex12.c: New file. + +2000-08-13 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_SEMAPHORES + even though the implementation is not quite complete (but it reports + it). Define _POSIX_MESSAGE_PASSING to -1. + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise. + +2000-08-12 Andreas Jaeger <aj@suse.de> + + * sysdeps/mips/pt-machine.h (testandset): Add .set mips2 for + assembler. + (__compare_and_swap): Likewise. + * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Likewise. + +2000-08-10 Ulrich Drepper <drepper@redhat.com> + + * pthread.c (__pthread_initial_thread): Initialize p_errnop and + p_h_errnop correctly and not to NULL. + +2000-08-05 Ulrich Drepper <drepper@redhat.com> + + * Banner: Bump version number to 0.9. + +2000-08-04 Ulrich Drepper <drepper@redhat.com> + + * Makefile (tests): Add tststack. Add rule to build the program. + * tststack.c: New file. + + * internals.h: Declare __pthread_max_stacksize. + * pthread.c (__pthread_max_stacksize): New variable. + (__pthread_initialize_manager): Determine __pthread_initialize_manager + value. + * manager.c (thread_segment): Return always NULL if FLOATING_STACKS. + (pthread_allocate_stack): Allow kernel to choose stack address if + FLOATING_STACKS. This also handles variable-sized stacks. + Always allocate stack and guardpage together. Use mprotect to + change guardpage access. + * sysdeps/i386/useldt.h: Define FLOATING_STACKS and + ARCH_STACK_MAX_SIZE. + + * attr.c (__pthread_attr_setstacksize): Also test value against + upper limit. + + * manager.c (__pthread_nonstandard_stacks): Define only if + THREAD_SELF is not defined. + (pthread_allocate_stack): Always initialize gardaddr to a correct + value. + (pthread_handle_create): Unmap thread with one call. + (pthread_free): Remove test for initial thread before removing stack. + Unmap stack with one call. + + * pthread.c (__pthread_initial_thread): Initialize p_userstack to + 1 to avoid removing the stack. + +2000-07-27 Jes Sorensen <jes@linuxcare.com> + + * sysdeps/ia64/pspinlock.c (__pthread_spin_lock): Add + load of spin lock to prime the cache before the atomic compare and + exchange operation (cmpxchg4). This avoids the spinning on the + cmpxchg4 instruction and reduces movement of the cache line back + and forth between the processors (explanation by Asis K. Mallick + from Intel). This basically makes the implementation operate the + same as the Linux kernel implementation. + + * shlib-versions: Use GLIBC_2_2 for Linux/ia64. + * sysdeps/ia64/pspinlock.c: New file. + +2000-08-03 Ulrich Drepper <drepper@redhat.com> + + * pthread.c: Move definition of __pthread_set_own_extricate_if... + * spinlock.h: ...here. Remove locking. + * internals.h: Remove __pthread_set_own_extricate_if prototype. + + * rwlock.c: Use THREAD_GETMEM And THREAD_SETMEM. + (rwlock_rd_extricate_func): Don't determine self, let + __pthread_lock do it. + (rwlock_wr_extricate_func): Likewise. + (rwlock_have_already): Optimize *pself handling a bit. + + * mutex.c: Use __builtin_expect. + * pthread.c: Likewise. + +2000-08-02 Andreas Jaeger <aj@suse.de> + + * sysdeps/s390/pspinlock.c: New file. + * sysdeps/s390/pt-machine.h: New file. + Patches by Martin Schwidefsky <schwidefsky@de.ibm.com>. + +2000-07-12 Maciej W. Rozycki <macro@ds2.pg.gda.pl> + + * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Implement for + R3K. + * sysdeps/mips/pt-machine.h (testandset): Likewise. + +2000-07-26 Andreas Jaeger <aj@suse.de> + + * pthread.c: Initialize p_sem_avail. + +2000-07-25 Ulrich Drepper <drepper@redhat.com> + + * internals.h (struct __pthread_descr_struct): Add p_sem_avail. + * semaphore.c: Handle spurious wakeups. + + * sysdeps/pthread/pthread.h: Add back PTHREAD_MUTX_FAST_NP as an alias + for PTHREAD_MUTEX_ADAPTIVE_NP for source code compatibility. + + * pthread.c (__pthread_set_own_extricate): Use THREAD_GETMEM. + (__pthread_wait_for_restart): Likewise. + + * condvar.c (pthread_cond_wait): Also check whether thread is + cancelable before aborting loop. + (pthread_cond_timedwait): Likewise. + + * signals.c (pthread_sighandler): Remove special code to restrore + %gs on x86. + (pthread_sighandler_t): Likewise. + +2000-07-25 Mark Kettenis <kettenis@gnu.org> + + * internals.h (__RES_PTHREAD_INTERNAL): Remove define. + * pthread.c: Include <resolv.h>. + (_res): Undefine. Add extern declaration. + +2000-07-24 Ulrich Drepper <drepper@redhat.com> + + * pthread.c (__pthread_initial_thread): Update initializer. + (__pthread_manager_thread): Likewise. + (pthread_initialize): Move setrlimit call to... + (__pthread_initialize_manager): ...here. + (__pthread_reset_main_thread): Reset also soft limit on stack size. + + * condvar.c: Handle spurious wakeups. [PR libc/1749]. + * internals.h (struct _pthread_descr_struct): Add p_condvar_avail. + +2000-07-21 Ulrich Drepper <drepper@redhat.com> + + * spinlock.h: If IMPLEMENT_TAS_WITH_CAS is defined use + __compare_and_swap to define testandset. + * sysdeps/powerpc/pt-machine.h: Add volatile to asms. + Define IMPLEMENT_TAS_WITH_CAS. + +2000-07-20 Ulrich Drepper <drepper@redhat.com> + + * Makefile: Pass -z nodelete to linker for libpthread.so + generation if it understand this option. + +2000-07-18 Mark Kettenis <kettenis@gnu.org> + + * manager.c (pthread_handle_create): Remove initialization of + new_thread->p_res._sock. + +2000-07-19 Kaz Kylheku <kaz@ashi.footprints.net> + + Bugfixes to the variant of the code for machines with no compare + and swap. + + * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Wait + node was not being properly enqueued, due to failing to update + the lock->__status field. + + * spinlock.c (__pthread_alt_timedlock): The oldstatus variable was + being set inappropriately, causing the suspend function to be called + with a null self pointer and crash. + +2000-07-18 Ulrich Drepper <drepper@redhat.com> + + * spinlock.h (__pthread_alt_trylock): Fix code used if no + compare&swap is available. + + * spinlock.h (__pthread_trylock): Use __compare_and_swap, not + compare_and_swap. + + * pthread.c (pthread_initialize): Don't use sysconf to determine + whether the machine has more than one processor. + + * spinlock.c (__pthread_alt_timedlock): Add back one of the + removed thread_self calls. + +2000-07-18 Kaz Kylheku <kaz@ashi.footprints.net> + + * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Changed + __compare_and_swap to compare_and_swap in code which assumes + compare swap is available. + +2000-07-18 Kaz Kylheku <kaz@ashi.footprints.net> + + * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Fixed + bug whereby thr field of waitnode structure would not be correctly + set unless a null self pointer is passed to the functions. + Eliminated redundant calls to thread_self(). + +2000-07-18 Jakub Jelinek <jakub@redhat.com> + + * pthread.c (__pthread_initialize_manager): Lock + __pthread_manager_thread.p_lock before calling clone. + +2000-05-05 H.J. Lu <hjl@gnu.org> + + * sysdeps/ia64/pt-machine.h (__compare_and_swap): Change it to + have acquire semantics. + (__compare_and_swap_with_release_semantics): New inline + function. + (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): New macro. + +2000-01-28 Hans Boehm <hboehm@exch.hpl.hp.com> + + * manager.c: Fix the problem with signals at startup. + Change the way that thread stacks are allocated on IA64. + Clean up some of the guard page allocation stuff. + +1999-12-19 H.J. Lu <hjl@gnu.org> + + * internals.h (page_roundup): New. + * attr.c (__pthread_attr_setguardsize); Use page_roundup + instead of roundup. + * manager.c (pthread_allocate_stack): Make sure guardaddr is + page aligned with page_roundup if NEED_SEPARATE_REGISTER_STACK + is define. + +1999-12-17 Hans Boehm <hboehm@exch.hpl.hp.com> + + * manager.c (pthread_allocate_stack): Unmap the stack top + if failed to map the stack bottom. + Fix the guard page. + (pthread_free): Fix the guard page. + + * pthread.c (pthread_initialize): Set rlimit correctly for + NEED_SEPARATE_REGISTER_STACK. + +1999-12-16 H.J. Lu <hjl@gnu.org> + + * pthread.c (__pthread_initialize_manager): Pass + __pthread_manager_thread_bos instead of + __pthread_manager_thread_tos to __clone2. + +1999-12-16 H.J. Lu <hjl@gnu.org> + + * manager.c (pthread_allocate_stack): Correct the calculation + of "new_thread_bottom". Remove MAP_GROWSDOWN from mmap for + stack bottom. + +1999-12-13 H.J. Lu <hjl@gnu.org> + + * sysdeps/ia64/pt-machine.h (__compare_and_swap): Added a stop + bit after setting ar.ccv. + +1999-12-12 H.J. Lu <hjl@gnu.org> + + * manager.c (pthread_allocate_stack): Make the starting + address of the stack bottom page aligned. FIXME: it may + need changes in other places. + (pthread_handle_create): Likewise. + +1999-12-11 Hans Boehm <hboehm@exch.hpl.hp.com> + + * manager.c (pthread_allocate_stack): Handle + NEED_SEPARATE_REGISTER_STACK. + (pthread_handle_create): Likewise. + * pthread.c (__pthread_initialize_manager): Likewise. + + * sysdeps/ia64/pt-machine.h: Use r13 for thread pointer. + +1999-12-02 H.J. Lu <hjl@gnu.org> + + * sysdeps/ia64/pt-machine.h: New. + +2000-07-13 Ulrich Drepper <drepper@redhat.com> + + * wrapsyscall.c: Mark non-__ protected names as weak. + PR libc/1466. + +2000-07-12 Bruno Haible <haible@clisp.cons.org> + + * Examples/ex8.c: Include <sys/wait.h>, not <wait.h>. + +2000-07-12 Ulrich Drepper <drepper@redhat.com> + + * spinlock.c: Fix code for TEST_FOR_COMPARE_AND_SWAP being defined. + Add tests also to new alternative spinlock implementation. + * spinlock.h: Likewise. + Patch by Kaz Kylheku <kaz@ashi.footprints.net>. + +2000-07-06 Ulrich Drepper <drepper@redhat.com> + + * Version: Export __sigaction. + * signals.c: Define __sigaction alias. Use __libc_sigaction instead + of __sigaction. + * pthread.c: Use __libc_sigaction instead of __sigaction. + + * condvar.c: Implement pthread_condattr_getpshared and + pthread_condattr_setpshared. + * mutex.c: Implement pthread_mutexattr_getpshared and + pthread_mutexattr_setpshared. + * Versions: Export new functions. + * sysdeps/pthread/pthread.h: Add prototypes for new functions. + + * rwlock.c (pthread_rwlockattr_init): Use PTHREAD_PROCESS_PRIVATE. + (pthread_rwlockattr_setpshared): Fail if PTHREAD_PROCESS_PRIVATE + is not selected. + +2000-07-04 Greg McGary <greg@mcgary.org> + + * sysdeps/pthread/bits/libc-lock.h: Remove BP_SYM from + pragmas. Include bp-sym.h only if _LIBC. + +2000-07-04 Ulrich Drepper <drepper@redhat.com> + + * spinlock.c (__pthread_unlock): Properly place write barrier. + Patch by Kaz Kylheku <kaz@ashi.footprints.net>. + +2000-07-03 Ulrich Drepper <drepper@redhat.com> + + * spinlock.c: Replace fast spinlocks by adaptive spinlocks which are + faster on SMP systems. No more emulation of compare&swap for adaptive + spinlocks. + * spinlock.h: Likewise. + * sysdeps/pthread/pthread.h: Shuffle PTHREAD_MUTEX_* values around. + Replace fast with adaptive mutex. + * mutex.c: Rewrite for replacement of fast by adaptive mutex. + * condvar.c: Likewise. + * pthread.c: Define and initialize __pthread_smp_kernel variable. + * internals.h: Declare __pthread_smp_kernel. + * sysdeps/pthread/bits/pthreadtypes.h: Update comment of + _pthread_fastlock structure. + Patch by Kaz Kylheku <kaz@ashi.footprints.net>. + + * pthread.c: Remove initialization to zero from global variables. + +2000-06-29 Jakub Jelinek <jakub@redhat.com> + + * shlib-versions: Make sparc64 GLIBC_2.2+ only. + +2000-06-28 Greg McGary <greg@mcgary.org> + + * weaks.c: Wrap BP_SYM () around weak extern declarations of + pthread functions that have pointers in their return+arg signatures. + +2000-06-27 Greg McGary <greg@mcgary.org> + + * sysdeps/pthread/bits/libc-lock.h: Wrap BP_SYM () around weak + extern declarations of pthread functions that have pointers in + their return+arg signatures. + +2000-06-26 Ulrich Drepper <drepper@redhat.com> + + * Makefile (tests): Add ex11. Add rules to build it. + * Examples/ex11.c: New file. + * rwlock.c: Fix complete braindamaged previous try to implement + timedout functions. + + * spinlock.c: Pretty print. + +2000-06-25 Ulrich Drepper <drepper@redhat.com> + + * Makefile (tests): Add ex10. Add rules to build it. + * Versions [GLIBC_2.2] (libpthread): Add pthread_mutex_timedlock, + pthread_rwlock_timedrdlock, and pthread_rwlock_timedwrlock. + * condvar.c (pthread_cond_wait): Allow mutex of kind + PTHREAD_MUTEX_TIMED_NP. + (pthread_cond_timedwait_relative): Likewise. + * mutex.c (__pthread_mutex_init): Default is PTHREAD_MUTEX_TIMED_NP. + (__pthread_mutex_trylock): Use __pthread_alt_trylock for + PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP. + (__pthread_mutex_lock): Use __pthread_alt_lock for + PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP. + (__pthread_mutex_timedlock): New function. + (__pthread_mutex_unlock): Use __pthread_alt_unlock for + PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP. + (__pthread_mutexattr_init): Use PTHREAD_MUTEX_TIMED_NP. + (__pthread_mutexattr_settype): Allow PTHREAD_MUTEX_TIMED_NP. + * spinlock.c: Implement alternate fastlocks. + * spinlock.h: Add prototypes. + * Examples/ex10.c: New file. + * sysdeps/pthread/pthread.h: Add prototypes for new functions. + Patch by Kaz Kylheku <kaz@ashi.footprints.net>. + + * rwlock.c (__pthread_rwlock_rdlock): Optimize loop a bit. + (__pthread_rwlock_timedrdlock): New function. + (__pthread_rwlock_timedwrlock): New function. + Use laternate fastlock function everywhere. + +2000-06-21 Andreas Jaeger <aj@suse.de> + + * sysdeps/pthread/timer_routines.c: Include <string.h> for memset + prototype. + + * join.c: Include <stdlib.h> for exit prototype. + +2000-06-20 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/i386/useldt.h: Include <stdlib.h>. + + * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_BARRIERS. + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise. + + * Makefile (libpthread-routines): Add barrier. + (tests): Add ex9. Add rule to build ex9. + * Versions: Export barrier functions. + * barrier.c: New file. + * Examples/ex9.c: New file. + * sysdeps/pthread/pthread.h: Add barrier data types and declarations. + * sysdeps/pthread/bits/pthreadtypes.h: Likewise. + Patch by Kaz Kylheku <kaz@ashi.footprints.net>. + +2000-06-19 H.J. Lu <hjl@gnu.org> + + * spinlock.h (HAS_COMPARE_AND_SWAP): Defined if + HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS is defined. + (compare_and_swap_with_release_semantics): New. Default to + compare_and_swap if HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS + is not defined. + + * spinlock.c (__pthread_unlock): Call + compare_and_swap_with_release_semantics () instead of + compare_and_swap (). + +2000-06-19 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/timer_create.c: Use _set_errno instead of assigning + to errno directly. + * sysdeps/pthread/timer_delete.c: Likewise. + * sysdeps/pthread/timer_getoverr.c: Likewise. + * sysdeps/pthread/timer_gettime.c: Likewise. + * sysdeps/pthread/timer_settime.c: Likewise. + +2000-06-13 Kaz Kylheku <kaz@ashi.footprints.net> + + Timer nodes are now reference counted, and can be marked + as deleted. This allows for the safe release of the global mutex + in the middle without losing the timer being operated on. + + * sysdeps/pthread/posix-timer.h (struct timer_node): The inuse + member is now an enum with three values, so that an intermediate + state can be represented (deleted but not free for reuse yet). + New refcount member added. + * sysdeps/pthread/timer_routines.c: Likewise. + + * sysdeps/pthread/posix-timer.h (timer_addref, timer_delref, + timer_valid): New inline functions added. + + * sysdeps/pthread/timer_gettime.c (timer_gettime): Function + restructured, recursive deadlock bug fixed. + + * sysdeps/pthread/timer_gettime.c (timer_gettime): Uses new + timer_addref to ensure that timer won't be deleted while mutex is not + held. Also uses timer_invalid to perform validation of timer handle. + * sysdeps/pthread/timer_settime.c (timer_settime): Likewise. + * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Likewise. + +2000-06-14 Ulrich Drepper <drepper@redhat.com> + + * shlib-versions: Add entry for SH. + Patch by Kaz Kojima <kkojima@rr.iij4u.or.jp>. + +2000-06-13 Kaz Kylheku <kaz@ashi.footprints.net> + + A few optimizations. Got rid of unnecessary wakeups of timer threads, + tightened up some critical regions and micro-optimized some list + manipulation code. + + * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer): + Returns int value now to indicate whether timer was queued at head. + * sysdeps/pthread/posix-timer.h: Likewise. + * sysdeps/pthread/timer_settime.c (timer_settime): Takes advantage of + new return value from __timer_thread_queue_timer to avoid waking + up timer thread unnecessarily. + + * sysdeps/pthread/posix-timer.h (timer_id2ptr): No longer checks + inuse flag, because this requires mutex to be held. Callers updated + to do the check when they have the mutex. + * sysdeps/pthread/timer_getoverr.c: Add check for inuse here. + + * sysdeps/pthread/timer_settime.c (timer_settime): Tighter critical + regions: avoids making system calls while holding timer mutex, and + a few computations were moved outside of the mutex as well. + * sysdeps/pthread/timer_gettime.c (timer_gettime): Likewise. + + * sysdeps/pthread/posix-timer.h (list_unlink_ip): Function name changed + to list_unlink_ip, meaning idempotent. Pointer manipulation + changed to get better better code out of gcc. + * sysdeps/pthread/timer_routines.c (list_unlink): Non-idempotent + version of list_unlink added here. + * sysdeps/pthread/timer_delete.c: Use appropriate list unlink + function in all places: idempotent one for timers, non-idempotent + one for thread nodes. + * sysdeps/pthread/timer_settime: Likewise. + * sysdeps/pthread/timer_routines.c: Likewise. + +2000-06-13 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_TIMERS): Define. + * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise. + + * sysdeps/pthread/Makefile: Remove tests definition. + +2000-06-12 Kazumoto Kojima <kkojima@rr.iij4u.or.jp> + Yutaka Niibe <gniibe@chroot.org> + + * sysdeps/sh/pspinlock.c: New file. + * sysdeps/sh/pt-machine.h: New file. + +2000-06-12 Ulrich Drepper <drepper@redhat.com> + + * Makefile (tests): Add joinrace. + + * Examples/ex6.c: Test return value of pthread_join. + +2000-06-11 Geoff Keating <geoffk@cygnus.com> + + * sysdeps/powerpc/pspinlock.c (__pthread_spin_lock): Implement. + (__pthread_spin_trylock): Implement. + (__pthread_spin_unlock): Implement. + (__pthread_spin_init): Implement. + (__pthread_spin_destroy): Implement. + +2000-06-10 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/timer_routines.c (list_append): Little fix to + really append the entry. + +2000-06-10 Andreas Jaeger <aj@suse.de> + + * lockfile.c (__fresetlockfiles): Remove unused variable fp. + +2000-06-10 Kaz Kylheku <kaz@ashi.footprints.net> + + * sysdeps/pthread/timer_create.c: Thread matching now done on + clock type as well as thread attributes. + There are individual global signal-delivering threads for + different clock types. + * sysdeps/pthread/posix-timer.h: Likewise. + * sysdeps/pthread/timer_routines.c: Likewise. + + * sysdeps/pthread/timer_routines.c: Thread allocation and + deallocation function now remembers to put thread on active + list and remove from active list. + Thus now the feature of binding multiple timers + to a single thread actually works. + +2000-06-10 Ulrich Drepper <drepper@redhat.com> + + * pthread.c (__pthread_create_2_1): Optimize a bit. + + * internals.h (invalid_handle): Also test for p_terminated != 0. + (nonexisting_handle): New function. Same as old invalid_handle. + * join.c (pthread_join): Use nonexisting_handle instead of + invalid_handle to test for acceptable thread handle. + * manager.c (pthread_handle_free): Likewise. + * joinrace.c: New file. + Reported by Permaine Cheung <pcheung@cygnus.com>. + +2000-06-08 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer): + Correct handling of matching variable. + + * sysdeps/pthread/tst-timer.c (main): Rewrite initializers to + avoid warnings. + + * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer): + Be prepared for empty timer list. + + * sysdeps/pthread/timer_create.c (timer_create): Correct names of + CPUTIME clock ID. Add support for thread clocks. + + * sysdeps/pthread/posix-timer.h (timer_ptr2id): Operands in + subtraction were switched. + + * sysdeps/pthread/timer_routines.c (init_module): Use + THREAD_MAXNODES threads. + + * sysdeps/pthread/posix-timer.h (struct timer_node): Add creator_pid. + * sysdeps/pthread/timer_create.c: Fill in creator_pid. + * sysdeps/pthread/timer_routines.c (thread_expire_timer): Send signal + with sigqueueinfo is this system call is available. + + * sysdeps/pthread/timer_create.c (timer_create): Allow + CLOCK_CPUTIME if _POSIX_CPUTIME is defined. + + * sysdeps/pthread/Makefile: New file. Add rules to build timer + functionality. + * sysdeps/unix/sysv/linux/bits/local_lim.h: Add TIMER_MAX. + +2000-06-04 Kaz Kylheku <kaz@ashi.footprints.net> + + * sysdeps/pthread/posix-timer.h: New file. + * sysdeps/pthread/timer_create.c: New file. + * sysdeps/pthread/timer_delete.c: New file. + * sysdeps/pthread/timer_getoverr.c: New file. + * sysdeps/pthread/timer_gettime.c: New file. + * sysdeps/pthread/timer_routines.c: New file. + * sysdeps/pthread/timer_settime.c: New file. + * sysdeps/pthread/tst-timer.c: New file. + +2000-06-08 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/bits/local_lim.h: Remove OPEN_MAX and + LINK_MAX definitions if necessary. + +2000-06-04 Kaz Kylheku <kaz@ashi.footprints.net> + + Added missing fork time handling of global libio lock. + + * lockfile.c (__fresetlockfiles): Now also resets the list lock, + not just the individual stream locks. Rewritten to use new + iterator interface provided by libio rather than accessing + global variable. + + * lockfile.c (__flockfilelist, _funlockfilelist): New functions + which lock and unlock the stream list using the new interface + provied by libio. + * internals.h: Likewise. + + * ptfork.c (__fork): Now calls __flockfilelist before fork, + and __funlockfilelist in the parent after the fork. + Child still calls __fresetlockfiles as before. + + * linuxthreads.texi: Now explains what happens to streams at + fork time. Also whole new section on forking and thread added. + Definition of pthread_atfork moved out of Miscellaneous Functions + to this new section. + +2000-06-04 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/sparc/sparc32/sparcv9/pspinlock.c (__pthread_spin_lock): + Add missing register. + * sysdeps/sparc/sparc64/pspinlock.c (__pthread_spin_lock): Likewise. + +2000-06-02 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/sparc/sparc32/pspinlock.c: Implement spinlocks. + * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: New. + * sysdeps/sparc/sparc64/pspinlock.c: Implement spinlocks. + +2000-05-31 Andreas Jaeger <aj@suse.de> + + * sysdeps/mips/pspinlock.c: Implement spinlocks. + +2000-05-28 Ulrich Drepper <drepper@redhat.com> + + * spinlock.c (__pthread_lock): Remove ASSERT. + + * Makefile (tests): Add ex8. + * Examples/ex8.c: New file. + +2000-05-12 Kaz Kylheku <kaz@ashi.footprints.net> + + Bugfix: The pthread_atfork mechanism now takes care of its + own internal mutex at fork time. + + * ptfork.c (__fork): Revised so that the mutex is held across + the fork operation and while the handlers are called, and so that + the child resets the mutex. + + * linuxthreads.texi: Updated pthread_atfork documentation to make + it clear that fork and pthread_atfork can't be reentered from + atfork handlers, that pthread_atfork and fork are mutually atomic, + and that the handlers are inherited by the child process. + +2000-05-24 Ulrich Drepper <drepper@redhat.com> + + * Makefile (libpthread-routines): Add pspinlock. + * cancel.c: Rename __pthread_spin_unlock back to __pthread_unlock. + Use struct _pthread_fastlock instead of 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. + * spinlock.h: Likewise. + * spinlock.c: Likewise. Remove pthread_spin_lock functions. + * sysdeps/alpha/pspinlock.c: New file. + * sysdeps/arm/pspinlock.c: New file. + * sysdeps/i386/pspinlock.c: New file. + * sysdeps/m68k/pspinlock.c: New file. + * sysdeps/mips/pspinlock.c: New file. + * sysdeps/powerpc/pspinlock.c: New file. + * sysdeps/sparc/sparc32/pspinlock.c: New file. + * sysdeps/sparc/sparc64/pspinlock.c: New file. + * sysdeps/pthread/bits/pthreadtypes.h: Remove pthread_spinlock_t + back to _pthread_fastlock. Define new pthread_spinlock_t. + +2000-05-24 Andreas Jaeger <aj@suse.de> + + * sysdeps/i386/i686/pt-machine.h: Only use LDT on newer kernels. + +2000-05-21 Jakub Jelinek <jakub@redhat.com> + + * manager.c (pthread_handle_create): Initialize p_res._sock to -1. + +2000-05-13 Jakub Jelinek <jakub@redhat.com> + + * internals.h (__RES_PTHREAD_INTERNAL): Define. + +2000-05-06 Kaz Kylheku <kaz@ashi.footprints.net> + + * mutex.c (pthread_once): IN_PROGRESS state of pthread_once_t + object state is represented with additional bits which distinguish + whether that state was set up in the current process, or + in an ancestor process. If that state was set in an ancestor, + it means that a fork happened while thread was executing the init + function. In that case, the state is reset to NEVER. + * mutex.c (__pthread_once_fork_prepare): New function. + (__pthread_once_fork_child): Likewise + (__pthread_once_fork_parent): Likewise + (__pthread_reset_pthread_once): Removed. + * ptfork.c (__fork): Call new handlers in mutex.c. + * internals.h: Declarations of new mutex.c functions added. + Declaration of removed function deleted. + * linuxthreads.texi: Updated documentation about pthread_once + to clarify what happens under cancellation and forking. + +2000-05-06 Kaz Kylheku <kaz@ashi.footprints.net> + + * internals.h: New thread manager request type, REQ_KICK. + * join.c (pthread_exit): main thread now calls exit() instead + of _exit() in order to proper process cleanup. + * manager.c (__pthread_manager): Do not terminate manager + after unblocking main thread; wait for main thread's + REQ_PROCESS_EXIT request instead. + Also, added REQ_KICK case to handle new request; this just does + nothing. + * manager.c (pthread_exited): Do not terminate manager after + unblocking main thread. + * manager.c (__pthread_manager_sighandler): If the main thread + is waiting for all other threads to die, send a REQ_KICK into + the thread manager request pipe to get it to clean out the threads + and unblock the main thread as soon as possible. This fixes + the 2000 millisecond hang on shutdown bug. + * Examples/ex7.c: New file, tests shutdown behavior when all threads + including the main one call pthread_exit(), or implicitly do so. + * Makefile (tests): Add ex7. + +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 + _POSIX_SHARED_MEMORY_OBJECTS. + +2000-04-11 Andreas Jaeger <aj@suse.de> + + * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define. + (__compare_and_swap): Mark as modifying memory. + +2000-04-11 Geoff Keating <geoffk@cygnus.com> + + * sysdeps/powerpc/pt-machine.h (MEMORY_BARRIER): Don't be + __volatile__. + (__compare_and_swap): Replace other 'sync' with MEMORY_BARRIER. + Don't have the 'asm' __volatile__. + +2000-04-11 Ulrich Drepper <drepper@redhat.com> + + * internals.h: Define MEMORY_BARRIER as empty if not defined already. + * spinlock.c (__pthread_lock): Add memory barriers. + (__pthread_unlock): Likewise. + * sysdeps/alpha/pt-machine.h (MEMORY_BARRIER): Define using mb + instruction. + (RELEASE): Not needed anymore. + (__compare_and_swap): Mark asm as modifying memory. + * sysdeps/powerpc/pt-machine.h (sync): Remove. Replace with definition + of MEMORY_BARRIER. + (__compare_and_swap): Use MEMORY_BARRIER instead of sync. + * sysdeps/sparc/sparc32/pt-machine.h (RELEASE): Not needed anymore. + (MEMORY_BARRIER): Define using stbar. + * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Define using + stbar. + (__compare_and_swap): Use MEMORY_BARRIER to ensure ordering. + Patch by Xavier Leroy <Xavier.Leroy@inria.fr> based on comments by + Mike Burrows <m3b@pa.dec.com>. + +2000-04-09 Ulrich Drepper <drepper@redhat.com> + + * signals.c (sigaction): Fix return value for the case SIG is one + of the signals the implementation uses. + Patch by Xavier.Leroy@inria.fr. + +2000-04-01 Andreas Jaeger <aj@suse.de> + + * attr.c: Use shlib-compat macros. + * oldsemaphore.c: Likewise. + * pthread.c: Likewise. + * weaks.c: Likewise. + +2000-03-26 Ulrich Drepper <drepper@redhat.com> + + * semaphore.c (sem_timedwait): New function. + Patch by Carl Mailloux <carlm@oricom.ca>. + * semaphore.h: Declare sem_timedwait. + * Versions [libpthread] (GLIBC_2.2): Add sem_timedwait. + +2000-03-26 Roland McGrath <roland@baalperazim.frob.com> + + * sysdeps/pthread/Makefile: File removed. + +2000-03-23 Ulrich Drepper <drepper@redhat.com> + + * mutex.c (__pthread_reset_pthread_once): Reset once_masterlock. + * internals.h (__pthread_reset_pthread_once): Add prototype. + * ptfork.c (__fork): Call __pthread_reset_pthread_once. + + * manager.c (pthread_handle_create): Store ID of new thread before + clone call. + +2000-03-21 Ulrich Drepper <drepper@redhat.com> + + * attr.c: Use new macros from shlib-compat.h to define versions. + * oldsemaphore.c: Likewise. + * semaphore.c: Likewise. + * weaks.c: Likewise. + + * pthread.c: Update for new SHLIB_COMPAT definition. + + * manager.c (__pthread_manager): Unmask debug signal. + + * pthread.c (pthread_initialize): Test for address of __dso_handle + being NULL, not value. Use __on_exit, not on_exit. + Patch by Andreas Jaeger <aj@suse.de>. + + * pthread.c: Use new macros from shlib-compat.h to define versions. + +2000-03-19 Ulrich Drepper <drepper@redhat.com> + + * pthread.c (pthread_initialize): Instead of on_exit use + __cxa_atexit if __dso_label is available to allow unloading the + libpthread shared library. + +2000-03-16 Ulrich Drepper <drepper@redhat.com> + + * condvar.c: Make tests for ownership of mutex less strict. + +2000-03-14 Ulrich Drepper <drepper@redhat.com> + + * condvar.c (pthread_cond_wait): Check whether mutex is owned by + current thread and return error if not. + (pthread_cond_timedwait_relative_old): Likewise. + (pthread_cond_timedwait_relative_new): Likewise. + + * mutex.c (__pthread_once): Handle cancelled init function correctly. + (pthread_once_cancelhandler): New function. + Patch by Kaz Kylheku <kaz@ashi.footprints.net>. + +2000-03-14 Andreas Jaeger <aj@suse.de> + + * pthread.c (pthread_handle_sigcancel_rt): GS has been renamed to + REG_GS. + (pthread_handle_sigrestart_rt): Likewise. + * signals.c (pthread_sighandler_rt): Likewise. + +2000-03-02 Andreas Jaeger <aj@suse.de> + + * sysdeps/pthread/bits/libc-lock.h: Fix typo. + Reported by Sean Chen <sean.chen@turbolinux.com>. + +2000-02-28 Andreas Jaeger <aj@suse.de> + + * rwlock.c: Fix typo. + +2000-02-27 Ulrich Drepper <drepper@redhat.com> + + * rwlock.c: Define __* variants of the functions and make old names + aliases. + * Versions [GLIBC_2.2]: Export the __pthread_rwlock_* functions. + * sysdeps/pthread/bits/libc-lock.h: Define __libc_rwlock_* macros. + +2000-02-25 Andreas Jaeger <aj@suse.de> + + * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64, + pwrite64, lseek64, open64, and __open64 with version 2.2. + +2000-02-22 Ulrich Drepper <drepper@redhat.com> + + * semaphore.h (SEM_FAILED): Use 0 not NULL. + +2000-02-14 Ulrich Drepper <drepper@redhat.com> + + * condvar.c (pthread_cond_timedwait_relative_old): Tight loop with + nanosleep does not work either. Get absolute time inside the + loop. + (pthread_cond_timedwait_relative_new): Likewise. + Patch by Kaz Kylheku <kaz@ashi.footprints.net>. + +2000-02-13 Andreas Jaeger <aj@suse.de> + + * condvar.c (pthread_cond_timedwait_relative_new): Fix last patch. + (pthread_cond_timedwait_relative_old): Likewise. + +2000-02-13 Ulrich Drepper <drepper@redhat.com> + + * condvar.c (pthread_cond_timedwait_relative_old): Undo last patch + but keep the code around. A bug in the kernel prevent us from + using the code. + (pthread_cond_timedwait_relative_new): Likewise. + (PR libc/1597 and libc/1598). + +2000-02-01 Kaz Kylheku <kaz@ashi.footprints.net> + + * condvar.c (pthread_cond_timedwait_relative_old): Do tight + loop around nanosleep calls instead of around most of the function + (pthread_cond_timedwait_relative_new): Likewise. + body. Got rid of backwards goto and one local. + +2000-01-31 Ulrich Drepper <drepper@redhat.com> + + * condvar.c (pthread_cond_timedwait_relative_old): Recompute time + before every nanosleep call to account for time spent in the rest + of the function. + (pthread_cond_timedwait_relative_new): Likewise. + Patch by khendricks@ivey.uwo.ca (PR libc/1564). + +2000-01-29 Ulrich Drepper <drepper@redhat.com> + + * condvar.c (pthread_cond_timedwait_relative_old): Get remaining time + from nanosleep call so that in case we restart we only wait for the + remaining time. + (pthread_cond_timedwait_relative_new): Likewise. + Patch by khendricks@ivey.uwo.ca (PR libc/1561). + +2000-01-18 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (pthread_allocate_stack): Compute guard page address + correctly. Patch by HJ Lu. + + * sysdeps/pthread/pthread.h: Define + PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP. + +2000-01-16 Ulrich Drepper <drepper@cygnus.com> + + * rwlock.c (pthread_rwlock_unlock): Correct one more problem with + preference handling. + (pthread_rwlockattr_setkind_np): Allow + PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP. + Patches by Kaz Kylheku <kaz@ashi.footprints.net>. + +2000-01-12 Ulrich Drepper <drepper@cygnus.com> + + * internals.h (pthread_readlock_info): New structure. + (_pthread_descr_struct): Add p_readlock_list, p_readlock_free, and + p_untracked_readlock_count. + * pthread.c (__pthread_initial_thread, pthread_manager_thread): + Add initializers for new fields. + * manager.c (pthread_free): Free read/write lock lists. + * queue.h (queue_is_empty): New function. + * rwlock.c: Implement requirements about when readers should get + locks assigned. + * sysdeps/pthread/pthread.h + (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP): New definition. + * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_rwlock_t): + Define this name as well. + Patches by Kaz Kylheku <kaz@ashi.footprints.net>. + +2000-01-05 Ulrich Drepper <drepper@cygnus.com> + + * pthread.c (__pthread_initial_thread, pthread_manager_thread): + Adjust initializers for struct _pthread_descr_struct change. + * internals.h (struct _pthread_descr_struct): Move new elements to + the end. + +2000-01-03 Kaz Kylheku <kaz@ashi.footprints.net> + + Redesigned how cancellation unblocks a thread from internal + cancellation points (sem_wait, pthread_join, + pthread_cond_{wait,timedwait}). + Cancellation won't eat a signal in any of these functions + (*required* by POSIX and Single Unix Spec!). + * condvar.c: Spontaneous wakeup on pthread_cond_timedwait won't eat a + simultaneous condition variable signal (not required by POSIX + or Single Unix Spec, but nice). + * spinlock.c: __pthread_lock queues back any received restarts + that don't belong to it instead of assuming ownership of lock + upon any restart; fastlock can no longer be acquired by two threads + simultaneously. + * restart.h: Restarts queue even on kernels that don't have + queued real time signals (2.0, early 2.1), thanks to atomic counter, + avoiding a rare race condition in pthread_cond_timedwait. + +1999-12-31 Andreas Jaeger <aj@suse.de> + + * internals.h: Remove duplicate prototype declarations. + + * weaks.c: Remove __THROW from prototypes since the file is not + compiled by a C++ compiler. + * internals.h: Likewise. + +1999-12-30 Andreas Jaeger <aj@suse.de> + + * sysdeps/pthread/pthread.h: Move internal functions to... + * sysdeps/pthread/bits/libc-lock.h: ...here. + +1999-12-29 Andreas Jaeger <aj@suse.de> + + * sysdeps/pthread/pthread.h: Fix typos, reformat comments. + +1999-12-28 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/alpha/pt-machine.h: Move stack_pointer definition to the + beginning. + + * manager.c (__pthread_start): Add one more cast to prevent + warning on 64bit machines. + +1999-12-21 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (pthread_handle_create): Set p_pid of new thread + before calling the callback function to report a new thread. + +1999-12-20 Andreas Jaeger <aj@suse.de> + + * pthread.c (pthread_initialize): Move getrlimit call after + setting of errno. + +1999-12-18 Ulrich Drepper <drepper@cygnus.com> + + * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64, + pwrite64, lseek64, open64, and __open64. + * wrapsyscall.c: Define pread, __pread64, pread64, pwrite, __pwrite64, + pwrite64, lseek64, open64, and __open64. + + * manager.c (pthread_allocate_stack): Correct computation of + new_thread_bottom. Correct handling of stack size and when the + rlimit method to guard for stack growth is used. + * pthread.c (pthread_initialize): Stack limit must be STACK_SIZE + minus one pagesize (not two). + +1999-12-03 Andreas Jaeger <aj@suse.de> + + * Versions: Add __res_state with version GLIBC_2.2. + + * errno.c (__res_state): New function to return thread specific + resolver state. + + * pthread.c (pthread_initialize): Initialize p_resp. + (__pthread_reset_main_thread): Also set p_resp. + + * manager.c (pthread_handle_create): Initialize p_resp. + + * internals.h: Add thread specific resolver state. + Based on patches by Adam D. Bradley <artdodge@cs.bu.edu>. + +1999-12-01 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/i386/pt-machine.h: Move stack_pointer definition to the + beginning. + * sysdeps/i386/i686/pt-machine.h: Likewise. + Patches by Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>. + +1999-11-23 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (pthread_start_thread_event): Initialize p_pid already + here. + +1999-11-22 Ulrich Drepper <drepper@cygnus.com> + + * internals.h: Add prototype for __pthread_manager_event. + * manager.c (__pthread_manager_event): New function. + (pthread_start_thread_event): Correct computation of self. + Use INIT_THREAD_SELF. + * pthread.c (__pthread_manager_thread): Initialize p_lock. + (__pthread_initialize_manager): Respect event flags also for creation + of the manager thread. + +1999-11-08 Ulrich Drepper <drepper@cygnus.com> + + * pthread.c (__pthread_initialize_manager): Initialize + __pthread_manager_thread.p_tid. + +1999-11-02 Ulrich Drepper <drepper@cygnus.com> + + * internals.h: Declare __pthread_last_event. + * manager.c: Define __pthread_last_event. + (pthread_handle_create): Set __pthread_last_event. + (pthread_exited): Likewise. + * join.c (pthread_exit): Likewise. + + * Makefile (libpthread-routines): Add events. + * events.c: New file. + * internals.h: Protect against multiple inclusion. + Include thread_dbP.h header. + (struct _pthread_descr_struct): Add new fields p_report_events and + p_eventbuf. + Declare event reporting functions. + * join.c (pthread_exit): Signal event if this is wanted. + * manager.c (__pthread_threads_events): New variable. + (pthread_handle_create): Take new parameters with event information. + Signal TD_CREATE event if wanted. + (__pthread_manager): Adjust pthread_handle_create call. + (pthread_start_thread_event): New function. Block until manager is + finished and then call pthread_start_thread. + (pthread_exited): Signal TD_REAP event if wanted. + +1999-10-26 Ulrich Drepper <drepper@cygnus.com> + + * restart.h (suspend_with_cancellation): Rewrite as a macro. + + * condvar.c (pthread_cond_timedwait_relative): Don't mark as inline. + +1999-10-25 Andreas Jaeger <aj@suse.de> + + * internals.h: Remove K&R compatibility. + * no-tsd.c: Likewise. + * semaphore.h: Likewise. + * signals.c: Likewise. + * sysdeps/pthread/bits/libc-tsd.h: Likewise. + * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise. + * weaks.c: Likewise. + +1999-10-21 Xavier Leroy <Xavier.Leroy@inria.fr> + + * pthread.c: For i386, wrap pthread_handle_sigrestart and + pthread_handle_sigcancel with functions that restore %gs from the + signal context. For each signal handling function, two wrappers + are required, one for a non-RT signal and one for a RT signal. + * signal.c: For i386, add code to restore %gs from the signal + context in pthread_sighandler and pthread_sighandler_rt. + +1999-10-17 Ulrich Drepper <drepper@cygnus.com> + + * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add cast. + +1999-10-14 Ulrich Drepper <drepper@cygnus.com> + + * pthread.c (__pthread_initial_thread): Pass argument to + PTHREAD_START_ARGS_INITIALIZER. + (__pthread_manager_thread): Likewise. + + * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add parameter to + initialize function. + + * manager.c (pthread_handle_create): Remove p_startfct initialization. + + * internals.h (_pthread_descr_struct): We don't need p_startfct field. + +1999-10-12 Ulrich Drepper <drepper@cygnus.com> + + * internals.h: Correct return types for __libc_read and __libc_write. + +1999-10-09 Andreas Jaeger <aj@suse.de> + + * internals.h: Add __new_sem_post to get prototype in + manager.c; include semaphore.h for needed types. + +1999-10-08 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (__pthread_manager) [REQ_POST]: Use __new_sem_post + directly instead of calling sem_post which should not be necessary + but is faster and might help in some case to work around problems. + Patch by khendricks@ivey.uwo.ca [libc/1382]. + +1999-10-08 Andreas Schwab <schwab@suse.de> + + * sysdeps/pthread/Subdirs: New file. + * Implies: Removed. + +1999-10-07 Ulrich Drepper <drepper@cygnus.com> + + * Implies: New file. + * internals.h (struct _pthread_descr_struct): Add p_startfct. + * manager.c (pthread_handle_create): Initialize p_startfct. + * pthread.c: Define __linuxthread_pthread_sizeof_descr variable. + +1999-09-25 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (__linuxthreads_pthread_threads_max): New variable. + * specific.c (__linuxthreads_pthread_keys_max): New variable. + (__linuxthreads_pthread_key_2ndlevel_size): New variable. + + * condvar.c (pthread_cond_timedwait_relative): Never return with + EINTR. Patch by Andreas Schwab. + +1999-09-19 Ulrich Drepper <drepper@cygnus.com> + + * signals.c (sigaction): Correct last patch. Don't select + pthread_sighandler_rt based on the signal number but instead of + the SA_SIGINFO flag. + +1999-09-23 Ulrich Drepper <drepper@cygnus.com> + + * specific.c: Move definitions of struct pthread_key_struct and + destr_function to ... + * internals.h: ...here. + +1999-09-18 Ulrich Drepper <drepper@cygnus.com> + + * pthread.c (pthread_handle_sigrestart_rt): New function. Use + this instead of pthread_handle_sigrestart if the signal is an RT + signal. + + * signals.c: Handle passing through of sighandler arguments also + for real-time signals. + +1999-09-03 Andreas Schwab <schwab@suse.de> + + * ptfork.c (__fork): Renamed from fork and use __libc_fork. Add + fork as weak alias. + (__vfork): New function, alias vfork. + * Versions: Export __fork, vfork, and __vfork in libpthread. + +1999-08-23 Andreas Schwab <schwab@suse.de> + + * signals.c (pthread_sighandler): Add SIGCONTEXT_EXTRA_ARGS to + call to signal handler. + +1999-08-20 Ulrich Drepper <drepper@cygnus.com> + + * pthread.c (__pthread_reset_main_thread): Undo last change. + (__pthread_kill_other_threads_np): Reset signal handlers for the + signals we used in the thread implementation here. + +1999-08-19 Ulrich Drepper <drepper@cygnus.com> + + * pthread.c (__pthread_reset_main_thread): Reset signal handlers + for the signals we used in the thread implementation [PR libc/1234]. + + * Versions: Export __pthread_kill_other_threads_np from libpthread + for GLIBC_2.1.2. + + * signals.c: Pass sigcontext through wrapper to the user function. + +1999-08-01 Ulrich Drepper <drepper@cygnus.com> + + * Versions [ld.so] (GLIBC_2.0): Export __libc_internal_tsd_get and + __libc_internal_tsd_set. + +1999-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * manager.c: Remove inclusion of <linux/tasks.h> since it's not + needed anymore. + +1999-07-16 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * internals.h: Align _pthread_descr_struct to 32 bytes. + Reported by Tim Hockin <thockin@cobaltnet.com>, close PR + libc/1206. + +1999-07-09 Ulrich Drepper <drepper@cygnus.com> + + * oldsemaphore.c (sem_compare_and_swap): Fix use of compare and + swap function. + +1999-07-09 Cristian Gafton <gafton@redhat.com> + + * Makefile (libpthread-routines): Add oldsemaphore routine. + * Versions: Add sem_destroy, sem_getvalue, sem_init, sem_post, + sem_trywait, and sem_wait to GLIBC_2.1. + * oldsemaphore.c: New file. + * semaphore.c: Add default_symbol_versions for the changed functions. + (__new_sem_init): Rename from sem_init. + (__new_sem_post): Rename from sem_post. + (__new_sem_wait): Rename from sem_wait. + (__new_sem_trywait): Rename from sem_trywait. + (__new_sem_getvalue): Rename from sem_getvalue. + (__new_sem_destroy): Rename from sem_destroy. + +1999-06-23 Robey Pointer <robey@netscape.com> + + * internals.h: Added p_nextlock entry to separate queueing for a + lock from queueing for a CV (sometimes a thread queues on a lock + to serialize removing itself from a CV queue). + * pthread.c: Added p_nextlock to initializers. + * spinlock.c: Changed to use p_nextlock instead of p_nextwaiting. + +1999-07-09 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (pthread_handle_create): Free mmap region after stack + if clone failed. Patch by Kaz Kylheku <kaz@ashi.FootPrints.net>. + +1999-05-23 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * man/pthread_cond_init.man: Correct example. + Reported by Tomas Berndtsson <tomas@nocrew.org>. + + * linuxthreads.texi (Condition Variables): Likewise. + +1999-05-18 Jakub Jelinek <jj@ultra.linux.cz> + + * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): Use + casx not cas, also successful casx returns the old value in rd + and not the new value. + +1999-05-16 Xavier Leroy <Xavier.Leroy@inria.fr> + + * manager.c: If pthread_create() is given a NULL attribute + and the thread manager runs with a realtime policy, set the + scheduling policy of the newly created thread back to SCHED_OTHER. + * manager.c: If the PTHREAD_INHERIT_SCHED attribute is given, + initialize the schedpolicy field of new_thread->p_start_args + to that of the calling thread. + +1999-04-29 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): cas + instruction does not allow memory element to use offset. + +1999-04-28 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (pthread_allocate_stack): Optimize initialization of new + thread descriptor. + + * sysdeps/pthread/bits/libc-lock.h (__libc_lock_define_initialized): + Don't use initializer since it is all zeroes. + (__libc_once_define): Likewise. + +1999-04-16 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * sysdeps/arm/Implies: Removed since cmpxchg/no-cmpxchg + doesn't exist anymore. + * sysdeps/i386/Implies: Likewise. + * sysdeps/m68k/Implies: Likewise. + * sysdeps/mips/Implies: Likewise. + * sysdeps/powerpc/Implies: Likewise. + * sysdeps/sparc/sparc32/Implies: Likewise. + * sysdeps/sparc/sparc64/Implies: Likewise. + +1999-04-15 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/alpha/bits/semaphore.h: Removed. + * sysdeps/powerpc/bits/semaphore.h: Removed. + * sysdeps/pthread/cmpxchg/bits/semaphore.h: Removed. + * sysdeps/pthread/no-cmpxchg/bits/semaphore.h: Removed. + * Makefile (headers): Remove bits/semaphore.h. + + * semaphore.h: Define _pthread_descr if necessary. + Don't include limits.h. Define SEM_VALUE_MAX directly. + Define SEM_FAILED. + (sem_t): Protect element names with leading __. + Add declarations for sem_close, sem_open, and sem_unlink. + * semaphore.c: Adjust all functions for new element names. + Define sem_close, sem_open, and sem_unlink. + * Versions (libthread): Add sem_close, sem_open, and sem_unlink for + GLIBC_2.1.1. + * sysdeps/pthread/bits/pthreadtypes.h: Define _pthread_descr only if + necessary. + +1999-03-16 H.J. Lu <hjl@gnu.org> + + * specific.c (pthread_key_delete): Check th->p_terminated to see + if the thread is running. + + * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set): + Added to GLIBC_2.0 for libc.so. + +1999-02-12 H.J. Lu <hjl@gnu.org> + + * Versions (__libc_current_sigrtmin, __libc_current_sigrtmax, + __libc_allocate_rtsig): Added to GLIBC_2.1. + + * internals.h (DEFAULT_SIG_RESTART): Removed. + (DEFAULT_SIG_CANCEL): Removed. + + * pthread.c (init_rtsigs, __libc_current_sigrtmin, + __libc_current_sigrtmax, __libc_allocate_rtsig): New functions. + (__pthread_sig_restart, __pthread_sig_cancel, + __pthread_sig_debug): Initialized. + (pthread_initialize): Call init_rtsigs () to initialize + real-time signals. + +1999-02-03 H.J. Lu <hjl@gnu.org> + + * manager.c (__pthread_manager): Do block __pthread_sig_debug. + Don't restart the thread which sent REQ_DEBUG. + (pthread_start_thread): Check if __pthread_sig_debug > 0 + before debugging. + + * pthread.c (__pthread_initialize_manager): Suspend ourself + after sending __pthread_sig_debug to gdb instead of + __pthread_sig_cancel. + +1999-01-24 H.J. Lu <hjl@gnu.org> + + * manager.c (__pthread_manager): Delete __pthread_sig_debug + from mask if __pthread_sig_debug > 0. + (pthread_handle_create): Increment __pthread_handles_num. + + * manager.c (pthread_handle_create): Don't pass CLONE_PTRACE to clone. + * pthread.c (__pthread_initialize_manager): Likewise. + + * pthread.c (pthread_initialize): Use __libc_allocate_rtsig (1) + instead of __libc_allocate_rtsig (2). + (__pthread_initialize_manager): Send __pthread_sig_debug to gdb + instead of __pthread_sig_cancel. + (pthread_handle_sigdebug): Fix comments. + +1999-01-21 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (pthread_allocate_stack): Set + __pthread_nonstandard_stacks if user-specified stack is used. + +1999-01-16 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _LFS_ASYNCHRONOUS_IO, + _LFS_LARGEFILE, _LFS64_LARGEFILE, and _LFS64_STDIO from Unix98. + +1999-01-07 Xavier Leroy <Xavier.Leroy@inria.fr> + + * pthread.c: Use a third signal __pthread_sig_debug distinct + from __pthread_sig_cancel to notify gdb when a thread is + created + * manager.c: Likewise. + * internals.h: Likewise. + * signals.c: The implementation of sigwait(s) assumed that + all signals in s have signal handlers already attached. + This is not required by the standard, so make it work + also if some of the signals have no handlers. + +1999-01-05 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * linuxthreads.texi: Remove pointers from first @node. Move old + @node spec inside comment. + +1998-12-31 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/pthread/bits/stdio-lock.h: Define _IO_lock_lock and + _IO_lock_unlock. + +1998-12-29 Ulrich Drepper <drepper@cygnus.com> + + * semaphore.c (sem_trywait): Don't forget to unlock the semaphore + lock. Patch by Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>. + +1998-12-21 Ulrich Drepper <drepper@cygnus.com> + + * manager.c: Threads now send __pthread_sig_cancel on termination. + Change clone call and signal masks. + * thread.c (pthread_handle_sigrestart): Remove special code for + manager. + (pthread_handle_sigcancel): In manager thread call + __pthread_manager_sighandler. + * sysdeps/i386/pt-machine.h (__compare_and_swap): Add memory clobber. + * sysdeps/i386/i686/pt-machine.h: Likewise. + Patches by Xavier Leroy. + +1998-12-14 Ulrich Drepper <drepper@cygnus.com> + + * spinlock.c (__pthread_unlock): Don't crash if called for an + untaken mutex. Reported by Ruslan V. Brushkoff <rus@Snif.Te.Net.UA>. + + * Examples/ex6.c: Unbuffer stdout and reduce sleep time to reduce + overall runtime. + +1998-12-13 Ulrich Drepper <drepper@cygnus.com> + + * Examples/ex3.c: Wait until all threads are started before + searching for the number to avoid race condition on very fast + systems. + +1998-12-08 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * sysdeps/pthread/pthread.h: Remove __pthread_setcanceltype + declaration since it's not needed. + + * sysdeps/pthread/pthread.h: Move internal functions to ... + * internals.h: ...here. + +1998-12-02 H.J. Lu <hjl@gnu.org> + + * pthread.c (__pthread_sig_restart): Initiliaze to 0 if + SIGRTMIN is defined. + (__pthread_sig_cancel): Likewise. + +1998-12-01 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * wrapsyscall.c: Include <sys/mman.h> for msync, + <stdlib.h> for system and <termios.h> for tcdrain prototype. + Correct msync declaration. + +1998-11-29 Roland McGrath <roland@baalperazim.frob.com> + + * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_define, __libc_tsd_get, + __libc_tsd_set): New macros for new interface. + * no-tsd.c: New file, provide uninitialized defns of + __libc_internal_tsd_get and __libc_internal_tsd_set. + * Makefile (routines): Add no-tsd. + +1998-10-12 Roland McGrath <roland@baalperazim.frob.com> + + * internals.h: Include <bits/libc-tsd.h>, not <bits/libc-lock.h>. + * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get, + __libc_internal_tsd_set): Move decls to ... + * sysdeps/pthread/bits/libc-tsd.h: New file for __libc_internal_tsd_* + declarations. + + * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get, + __libc_internal_tsd_set): Make these pointers to functions, not + functions; remove #pragma weak decls for them. + * specific.c (__libc_internal_tsd_get, __libc_internal_tsd_set): + Define static functions and initialized pointers to them. + +1998-11-18 Ulrich Drepper <drepper@cygnus.com> + + * Makefile (CFLAGS-mutex.c): Define as -D__NO_WEAK_PTHREAD_ALIASES. + (CFLAGS-specific.c): Likewise. + (CFLAGS-pthread.c): Likewise. + (CFLAGS-ptfork.c): Likewise. + (CFLAGS-cancel.c): Likewise. + * sysdeps/pthread/bits/libc-lock.h: Don't mark __pthread_* functions + as weak references if __NO_WEAK_PTHREAD_ALIASES is defined. + + * mutex.c (pthread_mutex_init): Define as strong symbol. + (pthread_mutex_destroy): Likewise. + (pthread_mutex_trylock): Likewise. + (pthread_mutex_lock): Likewise. + (pthread_mutex_unlock): Likewise. + (pthread_mutexattr_init): Likewise. + (pthread_mutexattr_destroy): Likewise. + (pthread_once): Likewise. + * ptfork.c (pthread_atfork): Likewise. + * specific.c (pthread_key_create): Likewise. + (pthread_setspecific): Likewise. + (pthread_getspecific): Likewise. + +1998-11-15 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * linuxthreads.texi: Fix punctuation after xref. + +1998-11-10 H.J. Lu <hjl@gnu.org> + + * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine NR_OPEN + if it is defined in <linux/limits.h>. + +1998-10-29 14:28 Ulrich Drepper <drepper@cygnus.com> + + * spinlock.h (__pthread_trylock): Define inline. + (__pthread_lock): Add extra parameter to declaration. Declare + using internal_function. + (__pthread_unlock): Declare using internal_function. + * spinlock.c (__pthread_lock): Add new parameter. Use it instead + of local variable self. Avoid recomputing self. Define using + internal_function. + (__pthread_trylock): Remove. + (__pthread_unlock): Define using internal_function. + * cancel.c: Adjust for __pthread_lock interface change. Use already + computed self value is possible. + * condvar.c: Likewise. + * join.c: Likewise. + * manager.c: Likewise. + * mutex.c: Likewise. + * pthread.c: Likewise. + * rwlock.c: Likewise. + * semaphore.c: Likewise. + * signals.c: Likewise. + +1998-10-27 13:46 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/pthread/pthread.h (struct _pthread_cleanup_buffer): Prepend + __ to field names of the struct. + * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_fastlock): + Likewise. + (pthread_attr_t): Likewise. + (pthread_cond_t): Likewise. + (pthread_condattr_t): Likewise. + (pthread_mutex_t): Likewise. + (pthread_mutexattr_t): Likewise. + (pthread_rwlock_t): Likewise. + (pthread_rwlockattr_t): Likewise. + * attr.c: Adjust for pthread.h and pthreadtypes.h change. + * cancel.c: Likewise. + * condvar.c: Likewise. + * manager.c: Likewise. + * mutex.c: Likewise. + * pthread.c: Likewise. + * ptlongjmp.c: Likewise. + * rwlock.c: Likewise. + * spinlock.c: Likewise. + +1998-10-09 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/i386/pt-machine.h (get_eflags, set_eflags): Mark these + also with PT_EI. + + * sysdeps/i386/i686/pt-machine.h: Remove unused inline + definitions. + + * Makefile (libpthread-routines): Add pt-machine. + * pt-machine.c: New file. + * sysdeps/alpha/pt-machine.h: Define PT_EI as extern inline is not + yet defined. Use PT_EI in extern inline definitions. + * sysdeps/arm/pt-machine.h: Likewise. + * sysdeps/i386/pt-machine.h: Likewise. + * sysdeps/i386/i686/pt-machine.h: Likewise. + * sysdeps/m68k/pt-machine.h: Likewise. + * sysdeps/mips/pt-machine.h: Likewise. + * sysdeps/powerpc/pt-machine.h: Likewise. + * sysdeps/sparc/sparc32/pt-machine.h: Likewise. + * sysdeps/sparc/sparc64/pt-machine.h: Likewise. + +1998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * semaphore.h: Include <sys/types.h> so that _pthread_descr + is declared. + +1998-09-15 David S. Miller <davem@pierdol.cobaltmicro.com> + + * sysdeps/sparc/sparc32/pt-machine.h (INIT_THREAD_SELF): Add nr + argument. + * sysdeps/sparc/sparc64/pt-machine.h (INIT_THREAD_SELF): Likewise. + +1998-09-12 14:24 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * sysdeps/unix/sysv/linux/bits/sigthread.h: Add multiple inclusion + guard. + +1998-09-02 11:08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * signals.c (sigaction): Check that sig is less than NSIG to avoid + array index overflow. + +1998-09-06 10:56 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/pthread/semaphore.h: New file. + +1998-09-06 09:08 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/pthread/bits/libc-lock.h (enum __libc_tsd_key_t): Add + _LIBC_TSD_KEY_DL_ERROR. + +1998-08-31 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/i386/i686/pt-machine.h (testandset): Add memory clobber. + * sysdeps/i386/pt-machine.h: Likewise. + Suggested by Roland McGrath. + +1998-08-28 13:58 Ulrich Drepper <drepper@cygnus.com> + + * internals.h: Also define THREAD_GETMEM_NC and THREAD_SETMEM_NC to + access thread data with non-constant offsets. + * specific.c: Use THREAD_GETMEM_NC and THREAD_SETMEM_NC where + necessary. + + * sysdeps/i386/useldt.h: Fix typo. Add THREAD_GETMEM_NC and + THREAD_SETMEM_NC definitions. + + * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM_NC and + THREAD_SETMEM_NC. + * sysdeps/sparc/sparc64/pt-machine.h: Likewise. + +1998-08-26 15:46 Ulrich Drepper <drepper@cygnus.com> + + * internals.h: Define THREAD_GETMEM and THREAD_SETMEM to default if + not already defined. + (struct _pthread_descr_struct): Add p_self and p_nr field. + * manager.c (__pthread_handles): Define second element to point + to manager thread. + (__pthread_handles_num): Initialize to 2. + (__pthread_manager): Use INIT_THREAD_SELF with two arguments. + (pthread_start_thread): Likewise. + (pthread_handle_create): Start search for free slot at entry 2. + Initialize new fields p_self and p_nr. + Call __clone with CLONE_PTRACE if available. + (pthread_free): Call FREE_THREAD_SELF if available. + * pthread.c (__pthread_initial_thread): Initialize new fields. + (__pthread_manager_thread): Likewise. + (__pthread_initialize_manager): Call __clone with CLONE_PTRACE. + + * cancel.c: Use THREAD_GETMEM and THREAD_SETMEM to access the + elements of the thread descriptor. + * condvar.c: Likewise. + * errno.c: Likewise. + * join.c: Likewise. + * manager.c: Likewise. + * pthread.c: Likewise. + * ptlongjmp.c: Likewise. + * semaphore.c: Likewise. + * signals.c: Likewise. + * specific.c: Likewise. + * spinlock.c: Likewise. + + * sysdeps/alpha/pt-machine.h (INIT_THREAD_SELF): Add extra parameter. + + * sysdeps/i386/useldt.h: New file. + * sysdeps/i386/i686/pt-machine.h: Show how to use this file. + + * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM and + THREAD_SETMEM using __thread_self. + * sysdeps/sparc/sparc64/pt-machine.h: Likewise. + +1998-08-24 Geoff Keating <geoffk@ozemail.com.au> + + * spinlock.c (__pthread_lock): Reset p_nextwaiting to NULL if it + turned out that we didn't need to queue after all. + +1998-08-22 Geoff Keating <geoffk@ozemail.com.au> + + * sysdeps/powerpc/pt-machine.h: Remove testandset, it's not used + and wastes space; correct types. + +1998-08-08 11:18 H.J. Lu <hjl@gnu.org> + + * signals.c (sigaction): Handle NULL argument. + +1998-08-04 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/unix/sysv/linux/bits/sigthread.h: Use __sigset_t instead + of sigset_t. + +1998-08-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * Makefile (linuxthreads-version): Extract correct number from + Banner. + +1998-07-29 Xavier Leroy <Xavier.Leroy@inria.fr> + + * Banner: Bump version number to 0.8 + * FAQ.html: Many updates, in particular w.r.t. debugging. + * manager.c: Support for non-default stacksize for + LinuxThreads-allocated stacks; + don't use guard pages for stacks with default size, rely on + rlimit(RLIMIT_STACK) instead (it's cheaper). + * attr.c: Likewise. + * cancel.c: Use __pthread_sig_cancel and __pthread_sig_restart + everywhere instead of PTHREAD_SIG_CANCEL and PTHREAD_SIG_RESTART. + * condvar.c: Likewise. + * internals.h: Likewise. + * restart.h: Likewise. + * signals.c: Likewise. + * pthread.c: Likewise; set rlimit(RLIMIT_STACK) as we need it. + +1998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * weaks.c: Define pthread_mutexattr_[sg]ettype instead of + __pthread_mutexattr_[sg]ettype. Add more weak aliases. + * Versions: Put __pthread_mutexattr_settype under version + GLIBC_2.0. Don't export __pthread_mutexattr_setkind_np and + __pthread_mutexattr_gettype. + +1998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * sysdeps/pthread/bits/libc-lock.h: Make + __pthread_mutexattr_settype weak. Don't make + __pthread_mutexattr_setkind_np weak. + +1998-07-16 10:52 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (pthread_handle_create): Check whether sched_setscheduler + call can succeed here. + + * mutex.c: Define __pthread_mutexattr_settype and make + __pthread_mutexattr_setkind_np an alias. + Likewise for __pthread_mutexattr_gettype. + +1998-07-15 11:00 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * attr.c (pthread_attr_setschedpolicy): Don't check whether caller + is root. + +1998-07-14 19:38 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/pthread/bits/libc-lock.h: Define __libc_cleanup_end. + +1998-07-11 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * Examples/ex6.c: Include <unistd.h> for usleep. + +1998-06-13 11:04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * Examples/ex4.c (main): Use exit, not pthread_exit. + +1998-07-09 13:39 Ulrich Drepper <drepper@cygnus.com> + + * Versions: Add __pthread_mutexattr_gettype and + __pthread_mutexattr_settype. + * lockfile.c: Use __pthread_mutexattr_settype instead of + __pthread_mutexattr_setkind_np. + * mutex.c: Define __pthread_mutexattr_gettype and + __pthread_mutexattr_settype. + * weak.c: Likewise. + * sysdeps/pthread/pthread.h: Declare __pthread_mutexattr_gettype and + __pthread_mutexattr_settype. + * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init_recursive): + Use __pthread_mutexattr_settype. + +1998-07-08 22:26 Ulrich Drepper <drepper@cygnus.com> + + * Versions: Add pthread_mutexattr_gettype, pthread_mutexattr_settype. + * mutex.c: Define weak alias pthread_mutexattr_gettype and + pthread_mutexattr_settype. + * sysdeps/pthread/pthread.h: Declare these functions. + Move pthread_sigmask and pthread_kill declaration in separate header. + * sysdeps/unix/sysv/linux/bits/sigthread.h: New file. + +1998-07-07 15:20 Ulrich Drepper <drepper@cygnus.com> + + * Makefile: Add rules to compile and run tests. + * Examples/ex1.c: Little changes to fix warnings. + * Examples/ex2.c: Likewise. + * Examples/ex3.c: Likewise. + * Examples/ex4.c: Likewise. + * Examples/ex5.c: Likewise. + * Examples/ex6.c: New file. + +1998-07-05 11:54 Ulrich Drepper <drepper@cygnus.com> + + * Versions: Add pthread_attr_init to GLIBC_2.1 version in libc. + +1998-07-01 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * attr.c: Include <string.h>. + +1998-06-30 11:47 Ulrich Drepper <drepper@cygnus.com> + + * attr.c: Include errno.h. Use memcpy to copy sched_param. + * internals.h: Include limits.h. + * manager.c: Use memcpy to copy sched_param. + * ptfork.c: Include errno.h. + * pthread.c: Likewise. + * semaphore.c: Likewise. + * specific.c: Likewise. + * spinlock.h: Likewise. + * sysdeps/pthread/pthread.h: Include only allowed headers. Move + type definition to ... + * sysdeps/pthread/bits/pthreadtypes.h: ...here. New file. + +1998-06-29 12:34 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/pthread/pthread.h: Use __PMT not __P for function pointers. + + * sysdeps/pthread/pthread.h: Define various PTHREAD_* symbols also + as macros as demanded in POSIX.1, Annex C. + +1998-06-29 12:29 Ulrich Drepper <drepper@cygnus.com> + + * internals.h (struct pthread_request): For free use pthread_t + instead of pthread_descr. + * join.c (pthread_join): Pass thread_id, not th to manager. + (pthread_detach): Likewise. + * manager.c (__pthread_manager): Except thread ID in FREE_REQ case. + (pthread_exited): Remove detached queue code. + (pthread_handle_free): Expect thread ID parameter and use it to + validate the thread decsriptor. Don't use detached queue. + Patches by Xavier Leroy. + +1998-06-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * libpthread.map: Export accept, longjmp, sigaction, siglongjmp, + _IO_flockfile, _IO_ftrylockfile, _IO_funlockfile, + __pthread_atfork, __pthread_key_create, __pthread_once. + * internals.h: Doc fix. + * pthread.c (__pthread_initialize): Define again. + +1998-06-26 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (pthread_exited): If thread is not detached put it on + special list. + (pthread_handle_free): If thread is not on list with living threads + search on list with detached threads. + + * sysdeps/pthread/pthread.h (PTHREAD_RWLOCK_INITIALIZER): Correct + for new definition of pthread_rwlock_t. + + * spinlock.c: Correct test whether to compile + __pthread_compare_and_swap or not. + +1998-06-25 19:27 Ulrich Drepper <drepper@cygnus.com> + + * attr.c: Finish user stack support. Change locking code to be safe + in situations with different priorities. + * cancel.c: Likewise. + * condvar.c: Likewise. + * internals.h: Likewise. + * join.c: Likewise. + * manager.c: Likewise. + * mutex.c: Likewise. + * pthread.c: Likewise. + * ptlongjmp.c: Likewise. + * queue.h: Likewise. + * rwlock.c: Likewise. + * semaphore.c: Likewise. + * semaphore.h: Likewise. + * signals.c: Likewise. + * spinlock.c: Likewise. + * spinlock.h: Likewise. + * sysdeps/pthread/pthread.h: Likewise. + Patches by Xavier Leroy. + + * sysdeps/i386/i686/pt-machine.h: New file. + +1998-06-25 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/pthread/pthread.h: Make [sg]et_stacksize and + [sg]et_stackaddr prototypes always available. + + * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define + _POSIX_THREAD_ATTR_STACKSIZE and _POSIX_THREAD_ATTR_STACKADDR. + +1998-06-24 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (pthread_free): Undo patch from 980430. + Reported by David Wragg <dpw@doc.ic.ac.uk>. + +1998-06-09 15:07 Ulrich Drepper <drepper@cygnus.com> + + * manager.c: Define __pthread_manager_adjust_prio and use it to + increase priority when needed. + * internals.h: Add prototype for __pthread_manager_adjust_prio. + * mutex.c: Optimize mutexes to wake up only one thread. + * pthread.c: Move PID of manager for global variable in structure + element. + Patches by Xavier Leroy. + +1998-06-07 13:47 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/pthread/bits/libc-lock.h: Optimize cleanup handlers a bit. + +1998-06-03 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * attr.c: Correct typo. + +1998-05-01 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (pthread_free): Unmap guard before the stack. + Patch by Matthias Urlichs. + +1998-04-30 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (pthread_free): Detect already free child. + Patch by Xavier Leroy, reported by Matthias Urlichs. + +1998-04-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * Makefile (linuxthreads-version): Renamed back from + libpthread-version. + +1998-04-21 Ulrich Drepper <drepper@cygnus.com> + + * ptlongjmp.c: Add prototypes for __libc_siglongjmp and + __libc_longjmp. + +1998-04-20 14:55 Ulrich Drepper <drepper@cygnus.com> + + * Makefile (libpthread-routines): Add ptlongjmp and spinlock. + * internals.h: Add definitions for new spinlock implementation. + * ptlongjmp.c: New file. + * spinlock.c: New file. + * spinlock.h (acquire): Don't reschedule using __sched_yield, use + new function __pthread_acquire to prevent deadlocks with thread + with different priorities. + Patches by Xavier Leroy <Xavier.Leroy@inria.fr>. + +1998-03-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * manager.c (__pthread_manager): Reduce first argument to select + to include just the needed file descriptor. + +1998-03-17 00:06 Ulrich Drepper <drepper@cygnus.com> + + * manager.c: Fix last patch which caused core dumps. + + * pthread.c: Correctly handle missing SIGRTMIN. + +1998-03-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * libpthread.map: Add __libc_internal_tsd_get and + __libc_internal_tsd_set. Add missing cancelable functions. Export + libc internal versions of the cancelable functions. + +1998-03-13 16:51 Ulrich Drepper <drepper@cygnus.com> + + * weaks.c: Define pthread_attr_init as GLIBC_2.0 and GLIBC_2.1. + +1998-03-13 00:46 Ulrich Drepper <drepper@cygnus.com> + + * attr.c: Implement pthread_attr_[gs]etguardsize, + pthread_attr_[gs]setstackaddr, pthread_attr_[gs]etstacksize. + Change pthread_attr_init to have two interfaces. + * internals.h (struct _pthread_descr_struct): Add new fields for + above functions. + * libpthread.map: Add names in GLIBC_2.1 section. + * manager.c (pthread_handle_create): Implement guardsize and + user stack. + (pthread_free): Likewise. + * pthread.c (pthread_create): Add new interface for changed + pthread_attr_t. + * sysdeps/pthread/pthread.h: Add prototypes for new functions. + * sysdeps/unix/sysv/linux/bits/local_lim.h: Add definition of + PTHREAD_STACK_MIN. + +1998-03-11 00:42 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de> + + * manager.c: Enable resetting of the thread scheduling policy + to SCHED_OTHER when the parent thread has a different one. + +1998-02-01 13:51 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define + _POSIX_ASYNCHRONOUS_IO. + + * sysdeps/pthread/pthread.h: Define bits for Unix98 variants of + mutexes. + * mutex.c: Implement new mutex types. + + * internals.h: Include <signal.h>. + + * libpthread.map: Add __erno_location and __h_errno_location. + + * errno.c: Return pointer to variable actually in use. This might + not be the one in the thread structure. + * internals.h (struct _pthread_descr_struct): Add new fields p_errnop + and p_h_errnop. + * manager.c (__pthread_manager): Set p_errnop and p_h_errnop member + of manager thread structure. + (pthread_handle_create): Set p_errnop and p_h_errnop members for new + thread. + * pthread.c: Adapt initializer for thread structures. + (__pthread_initial_thread): Set p_errnop and p_h_errnop member. + (__pthread_reset_main_thread): Reset p_errnop and p_h_errnop of + current thread to global variables. + +1998-01-31 17:27 Ulrich Drepper <drepper@cygnus.com> + + * rwlock.c: New file. + * Makefile (libpthread-routines): Add rwlock. + * sysdeps/pthread/pthread.h: Define data structures and declare + functions. + * libpthread.map: Add new functions. + +1997-12-18 13:50 Philip Blundell <pb@nexus.co.uk> + + * sysdeps/arm/pt-machine.h: New file; add ARM support. + * sysdeps/arm/Implies: likewise. + * README: Document it. + +1997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * signals.c: Remove unneeded initializer for sigwaited, saving a + warning. + +1997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * semaphore.c (sem_init): Set sem_spinlock only if available. + +1997-12-04 01:48 Ulrich Drepper <drepper@cygnus.com> + + * mutex.c: Implement PTHREAD_MUTEX_CHECKERROR. + * sysdeps/pthread/pthread.h: Define PTHREAD_MUTEX_CHECKERROR. + + * Makefile: Update from LinuxThreads 0.7. + * internals.h. Likewise. + * manager.c: Likewise. + * mutex.c: Likewise. + * pthread.c: Likewise. + * signals.c: Likewise. + * specific.c: Likewise. + * Examples/ex3.c: Likewise. + +1997-11-20 18:13 Ulrich Drepper <drepper@cygnus.com> + + * pthread.c (__pthread_reset_main_thread): Close pipe only if still + open. + +1997-10-29 05:38 Ulrich Drepper <drepper@cygnus.com> + + * wrapsyscall.c: Add socket functions which are also cancelation + points. + +1997-10-19 21:40 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de> + + * specific.c (__libc_internal_tsd_set, __libc_internal_tsd_get): + New functions for fast thread specific data within libc. + + * internals.h: Add new array p_libc_specific to struct + _pthread_descr_struct. + + * sysdeps/pthread/bits/libc-lock.h: Declare new functions. + +1997-10-13 05:39 Ulrich Drepper <drepper@cygnus.com> + + * semaphore.h: Add __BEGIN_DECLS/__END_DECLS. + Reported by Ralf Corsepius <corsepiu@faw.uni-ulm.de>. + +1997-08-29 03:05 Ulrich Drepper <drepper@cygnus.com> + + * internals.h (struct _pthread_descr_struct): Add definitions for + two-level specific key handling. + * manager.c (pthread_handle_create): Initialize specific memory array. + * specific.c: Implement two-level key handling. + * weaks.c: Don't provide dummy key handling. + * sysdeps/pthread/bits/libc-lock.h: Typedef __libc_lock_t (no #define). + Add definition of __libc_key_t. + * sysdeps/unix/sysv/linux/bits/local_lim.h: Define PTHREAD_KEYS_MAX + as 1024. + Add definition of _POSIX_THREAD_DESTRUCTOR_ITERATIONS and + PTHREAD_DESTRUCTOR_ITERATIONS. + + * manager.c (pthread_handle_create): Compare mmap result with + MAP_FAILED. + + * ptfork.c: Rename to __pthread_atfork and make old name a weak alias. + * sysdeps/pthread/bits/pthread.h: Add prototype for __pthread_atfork. + +1997-08-22 19:04 Richard Henderson <rth@cygnus.com> + + sysdeps/sparc -> sysdeps/sparc/sparc32 + sysdeps/sparc64 -> sysdeps/sparc/sparc64 + + * internals.h: Change definition of THREAD_SELF to be an expression, + not a statement that did a return. + * sysdeps/alpha/pt-machine.h (THREAD_SELF): Update accordingly. + * sysdeps/sparc/sparc32/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF): + Follow Solaris and use a "system reserved" register (%g6) to hold + the thread descriptor. + * sysdeps/sparc/sparc64/pt-machine.h: Likewise. + +1997-08-03 00:09 Ulrich Drepper <drepper@cygnus.com> + + * mutex.c: Correct pthread_once. Patch by Xavier Leroy. + * sysdeps/pthread/pthread.h: Add prototype for __pthread_once. + * sysdeps/pthread/bits/pthread.h: Add macros for __libc_once. + + * semaphore.c: Include spinlock.h only when needed. + + * specific.c (__pthread_setsepcific, __pthread_getspecific): Reject + keys for entries not in use. + + * weaks.c: Implement key handling functions for real. + +1997-06-29 01:04 Richard Henderson <richard@gnu.ai.mit.edu> + + Initial sparc64-linux support: + * sysdeps/sparc64/Implies: New file. + * sysdeps/sparc64/pt-machine.h: Likewise. + +1997-06-29 00:48 Ulrich Drepper <drepper@cygnus.com> + + * semaphore.c: Include spinlock.h at correct place. + Patch by HJ Lu. + +1997-06-13 10:06 Richard Henderson <rth@tamu.edu> + + The Great Bit File Move: + * sysdeps/alpha/semaphorebits.h: -> .../bits/semaphore.h. + * sysdeps/powerpc/semaphorebits.h: Likewise. + * sysdeps/pthread/cmpxchg/semaphorebits.h: Likewise. + * sysdeps/pthread/no-cmpxchg/semaphorebits.h: Likewise. + * sysdeps/pthread/libc-lock.h: -> bits/ + * sysdeps/pthread/stdio-lock.h: Likewise. + * sysdeps/unix/sysv/linux/local_lim.h: Likewise. + * sysdeps/unix/sysv/linux/posix_opt.h: Likewise. + * semaphore.h: Likewise. + * sysdeps/pthread/pthread.h: Likewise. + + * lockfile.c: <foo.h> -> <bits/foo.h>. + * semaphore.h: Likewise. + + * Makefile: (headers): foo.h -> bits/foo.h. + * sysdeps/pthread/Makefile: Likewise. + +1997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * semaphore.c (sem_init): Set sem_spinlock only if available. + + * sysdeps/m68k/pt-machine.h (testandset, __compare_and_swap): Fix + asm constraints. + +1997-04-09 03:00 Ulrich Drepper <drepper@cygnus.com> + + Update from LinuxThreads 0.6. + + * attr.c (pthread_attr_getdetachstate): Use __sched_get_priority_max + and __sched_get_priority_min instead of names without `__'. + + * manager.c: Rewrite large parts to implement opaque pthread_t. + + * cancel.c: Adapt for opaque pthread_t type. + * condvar.c: Likewise. + * errno.c: Likewise. + * join.c: Likewise. + * mutex.c: Likewise. + * pthread.c: Likewise. + * signals.c: Likewise. + * specific.c: Likewise. + * restart.h: Likewise. + * queue.h: Likewise. + * Examples/ex3.c: Likewise. + * Examples/ex4.c: Likewise. + * sysdeps/pthread/pthread.h: Likewise. + + * pthread.c: Accumulate time for all threads in thread manager. + + * semaphore.c: Implement fallback implementation for architectures + sometimes missing compare-exchange operations. + + * cancel.c (pthread_cancel): Validate handle argument. + * join.c (pthread_join): Likewise. + (pthread_detach): Likewise. + * signals.c (pthread_kill): Likewise. + + * spinlock.h (acquire): Use __sched_yield not sched_yield. + + * queue.h (enqueue): Enqueue thread according to priority. + + * internals.c (struct pthread_start_args): New struct for passing + args to cloning function. + (struct _pthread): Rename to _pthread_descr_struct and adapt for + opaque pthread_t. + + * Examples/Makefile (clean): Pass -f option to rm. + + * sysdeps/i386/pt-machine.h: Add check for compare-exchange instruction + and define TEST_FOR_COMPARE_AND_SWAP. + * sysdeps/i386/i486/pt-machine.h: Removed. + + * sysdeps/unix/sysv/linux/local_lim.h (PTHREAD_THREADS_MAX): Increase + to 1024. + +1997-04-04 16:38 Ulrich Drepper <drepper@cygnus.com> + + * restart.h (suspend): Clear p_signal before suspending. + (suspend_with_cancellation): Likewise. + Patch by Xavier Leroy <Xavier.Leroy@inria.fr>. + + * weaks.c: Make __pthread_key_create return 1. + * sysdeps/pthread/libc-lock.h: Define __libc_key_create, + __libc_getspecific, __libc_setspecific, and __libc_key_t. + * sysdeps/pthread/stdio-lock.h: Don't care for implementation not + using libio. + +1997-03-19 15:13 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * sysdeps/sparc/pt-machine (RELEASE): Fix. + +1997-03-01 07:55 Geoff Keating <geoffk@ozemail.com.au> + + * sysdeps/powerpc/Implies: Added. + * sysdeps/powerpc/pt-machine.h: Added. + * sysdeps/powerpc/semaphorebits.h: Added. + +1997-01-22 01:22 Ulrich Drepper <drepper@cygnus.com> + + * pthread.c (__pthread_initial_thread): Correct + initializer. + (__pthread_manager_thread): Likewise. + Reported by Andreas Jaeger. + +1997-01-18 22:15 Richard Henderson <rth@tamu.edu> + + Since sigset_t no longer fits in a register, we can't pass in the + thread's initial mask so easily. Take this opportunity to simplify + the clone implementation by only accepting a single void* argument. + + * manager.c (__pthread_manager): Put thread vitals in the thread + struct instead of as arguments through clone. + (pthread_start_thread): Look for them there. + * internals.h (struct _pthread): Add p_initial_fn, + p_initial_fn_arg, p_initial_mask. Fix __pthread_manager proto. + * pthread.c (pthread_initialize_manager): Revise clone invocation. |