2005-08-23 Ulrich Drepper * sysdeps/unix/sysv/linux/timer_routines.c: Don't block SIGSETXID ever. 2005-07-11 Jakub Jelinek [BZ #1102] * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER, PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP, PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP, PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER, PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, PTHREAD_COND_INITIALIZER): Supply zeros for all fields in the structure. * Makefile (tests): Add tst-initializers1. (CFLAGS-tst-initializers1.c): Set. * tst-initializers1.c: New test. 2005-07-11 Jakub Jelinek * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t): Make sure __flags are located at offset 48 from the start of the structure. 2005-07-02 Roland McGrath * Makeconfig: Comment fix. 2005-07-05 Jakub Jelinek * descr.h (PTHREAD_STRUCT_END_PADDING): Define. * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes. (THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume TLS_PRE_TCB_SIZE is sizeof (struct pthread). (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define. * sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET): Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread). * sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't assume TLS_PRE_TCB_SIZE is sizeof (struct pthread). 2005-06-25 Jakub Jelinek * sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field. (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define. * sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard fields. (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define. * sysdeps/s390/tls.h (tcbhead_t): Add stack_guard field. Put in sysinfo field unconditionally. (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define. * sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field. (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define. * sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard fields. (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define. * pthread_create.c (__pthread_create_2_1): Use THREAD_COPY_STACK_GUARD macro. * Makefile: Add rules to build and run tst-stackguard1{,-static} tests. * tst-stackguard1.c: New file. * tst-stackguard1-static.c: New file. 2005-06-14 Alan Modra * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO): Invoke CGOTSETUP and CGOTRESTORE. (CGOTSETUP, CGOTRESTORE): Define. 2005-05-29 Richard Henderson * tst-cancel4.c (WRITE_BUFFER_SIZE): New. (tf_write, tf_writev): Use it. (do_test): Use socketpair instead of pipe. Set SO_SNDBUF to the system minimum. 2005-05-23 Jakub Jelinek * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h [IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of __librt_*_asynccancel@local. 2005-05-17 Alan Modra * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete all occurrences of JUMPTARGET. Instead append @local to labels. 2005-05-20 Jakub Jelinek * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to size/alignment of struct pthread rather than tcbhead_t. * sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Likewise. * sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Likewise. * sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Likewise. 2005-05-19 Richard Henderson * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use __sync_val_compare_and_swap, not explicit _si variant. * sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise. 2005-05-03 Ulrich Drepper [BZ #915] * sysdeps/pthread/pthread.h: Avoid empty initializers. 2005-05-03 Jakub Jelinek * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit .eh_frame section, use cfi_* directives. 2005-04-27 Jakub Jelinek * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead of "" includes. 2005-04-27 Ulrich Drepper [BZ #1075] * tst-cancel17.c (do_test): Add arbitrary factor to make sure aio_write blocks. 2005-04-27 Roland McGrath * Makefile (tests): Remove tst-clock2. * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially, translating to the kernel clockid_t for our own process/thread clock. * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file. 2005-04-15 Jakub Jelinek * old_pthread_cond_init.c: Include . (__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is process shared or uses clock other than CLOCK_REALTIME. * pthread_cond_init.c (__pthread_cond_init): Remove bogus comment. 2005-04-13 David S. Miller * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file. * sysdeps/sparc/sparc64/clone.S: New file. 2005-04-05 Jakub Jelinek [BZ #1102] * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use __inline instead of inline. * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise. 2005-03-31 Jakub Jelinek * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use functionally equivalent, but shorter instructions. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise. 2005-03-28 Daniel Jacobowitz * sysdeps/mips/Makefile: New file. * sysdeps/mips/nptl-sysdep.S: New file. * sysdeps/mips/tcb-offsets.sym: New file. * sysdeps/mips/pthread_spin_lock.S: New file. * sysdeps/mips/pthread_spin_trylock.S: New file. * sysdeps/mips/pthreaddef.h: New file. * sysdeps/mips/tls.h: New file. * sysdeps/mips/jmpbuf-unwind.h: New file. * sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file. * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file. * sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file. * sysdeps/unix/sysv/linux/mips/pthread_once.c: New file. * sysdeps/unix/sysv/linux/mips/fork.c: New file. * sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file. * sysdeps/unix/sysv/linux/mips/vfork.S: New file. * sysdeps/unix/sysv/linux/mips/clone.S: New file. * sysdeps/unix/sysv/linux/mips/createthread.c: New file. * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file. 2005-03-23 Ulrich Drepper [BZ #1112] * pthread_create.c (__pthread_create_2_1): Rename syscall error variable to scerr. 2005-03-10 Jakub Jelinek * tst-getpid1.c (do_test): Align stack passed to clone{2,}. 2005-02-25 Roland McGrath * alloca_cutoff.c: Correct license text. * tst-unload.c: Likewise. * sysdeps/pthread/allocalim.h: Likewise. * sysdeps/pthread/pt-initfini.c: Likewise. * sysdeps/pthread/bits/libc-lock.h: Likewise. * sysdeps/pthread/bits/sigthread.h: Likewise. * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise. * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise. 2005-02-16 Roland McGrath * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Use unsigned int * for ptr_nthreads. 2005-02-14 Alan Modra * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit gcc4. 2005-02-07 Richard Henderson [BZ #787] * sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first argument. 2004-11-03 Marcus Brinkmann * sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix order of arguments in invocation of atomic_add_zero. 2005-01-26 Jakub Jelinek [BZ #737] * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait): Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS, at least gotntpoff relocation and addition. * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait): Likewise. * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post): Likewise. * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait): Likewise. 2005-01-06 Ulrich Drepper * allocatestack.c (init_one_static_tls): Adjust initialization of DTV entry for static tls deallocation fix. * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which also contains information whether the memory pointed to is static TLS or not. * sysdeps/i386/tls.h: Likewise. * sysdeps/ia64/tls.h: Likewise. * sysdeps/powerpc/tls.h: Likewise. * sysdeps/s390/tls.h: Likewise. * sysdeps/sh/tls.h: Likewise. * sysdeps/sparc/tls.h: Likewise. * sysdeps/x86_64/tls.h: Likewise. 2004-12-27 Ulrich Drepper * init.c (__pthread_initialize_minimal_internal): Use __sigemptyset. 2004-12-21 Jakub Jelinek * sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of %esp. * Makefile (tests): Add tst-align2. * tst-align2.c: New test. * sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add -mpreferred-stack-boundary=4. 2004-12-18 Roland McGrath * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file removed withdrawn for the moment. 2004-12-17 Richard Henderson * sysdeps/unix/sysv/linux/alpha/clone.S: New file. * sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New. 2004-12-16 Ulrich Drepper * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file. Increased PTHREAD_STACK_MIN. * tst-context1.c (stacks): Use bigger stack size. 2004-12-16 Jakub Jelinek * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file. * sysdeps/sparc/tcb-offsets.sym: Add TID. 2004-12-15 Jakub Jelinek * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file. * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file. * sysdeps/s390/tcb-offsets.sym (TID): Add. 2004-12-15 Ulrich Drepper * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file. 2004-12-14 Ulrich Drepper * sysdeps/powerpc/tcb-offsets.sym: Add TID. * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file. * tst-getpid1.c: If child crashes, report this first. Print which signal. 2004-12-09 Ulrich Drepper * init.c (__pthread_initialize_minimal_internal): Also unblock SIGSETXID. 2004-12-01 Jakub Jelinek * 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. 2004-12-07 Jakub Jelinek * sysdeps/ia64/tcb-offsets.sym (TID): Add. * sysdeps/unix/sysv/linux/ia64/clone2.S: New file. * Makefile (tests): Add tst-getpid2. * tst-getpid1.c (TEST_CLONE_FLAGS): Define. (do_test): Use it. Use __clone2 instead of clone on ia64. * tst-getpid2.c: New test. 2004-12-07 Kaz Kojima * sysdeps/unix/sysv/linux/sh/clone.S: New file. 2004-12-04 Ulrich Drepper * Makefile (tests): Add tst-getpid1. * tst-getpid1.c: New file. * sysdeps/unix/sysv/linux/i386/clone.S: New file. * sysdeps/unix/sysv/linux/x86_64/clone.S: New file. 2004-12-02 Roland McGrath * 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 * 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 * 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, _POSIX_IPV6, _POSIX_RAW_SOCKETS): 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-24 Ulrich Drepper * sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c. * Makefile (libpthread-routines): Add pthread_setschedprio. * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio. * sysdeps/pthread/pthread.h: Declare pthread_setschedprio. * pthread_setschedprio.c: New file. 2004-11-20 Jakub Jelinek * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE. * pthread_cancel.c (pthread_create): Likewise. * Makefile (libpthread-routines): Add vars. * sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove. * init.c (__default_stacksize, __is_smp): Remove. * vars.c: New file. * pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function and define a wrapper macro. (PTHREAD_STATIC_FN_REQUIRE): Define. * allocatestack.c (__find_thread_by_id): Undefine. * pthread_create (__pthread_keys): Remove. (pthread_mutex_lock, pthread_mutex_unlock, pthread_once, pthread_key_create, pthread_setspecific, pthread_getspecific): Add PTHREAD_STATIC_FN_REQUIRE. 2004-11-18 Kaz Kojima * sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias parameter to REGISTER macro. 2004-11-17 Roland McGrath * sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread): Make sure SIGCANCEL is blocked as well. 2004-11-10 Jakub Jelinek * sysdeps/pthread/setxid.h: New file. * sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove. (struct xid_command): Add forward decl. (struct pthread_functions): Change return type of __nptl_setxid hook to int. * pthreadP.h (__nptl_setxid): Change return type to int. * allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the calling thread, return its return value and set errno on failure. * descr.h (struct xid_command): Change id type to long array. * Makefile: Add rules to build and test tst-setuid1 and tst-setuid1-static. * tst-setuid1.c: New test. * tst-setuid1-static.c: New test. 2004-11-10 Jakub Jelinek * Makefile (tests): Add tst-exit3. * tst-exit3.c: New test. 2004-11-09 Ulrich Drepper * Makefile (tests): Add tst-exit2. * tst-exit2.c: New file. 2004-11-09 Roland McGrath [BZ #530] * sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads here, before calling clone. * pthread_create.c (start_thread): Don't do it here. 2004-11-02 Jakub Jelinek * sysdeps/unix/sysv/linux/smp.h: Include . 2004-10-29 Kaz Kojima * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait): Set ETIMEDOUT to errno when time is up. Tweak to avoid assembler warning. 2004-10-28 Jakub Jelinek * pthread_create.c (__pthread_create_2_1): Avoid leaking stacks if sched_priority is not between minprio and maxprio. 2004-10-25 Kaz Kojima * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S (__pthread_cond_timedwait): Use clock_gettime syscall if exists. * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_timedlock_wait): Fix a bad branch condition. 2004-10-24 Ulrich Drepper * sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use not-cancelable I/O functions. 2004-10-21 Kaz Kojima * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_timedlock_wait): If woken but cannot get the lock, make sure 2 is stored in the futex and we looked at the old value. Fix a few other problems to return the correct value. 2004-10-14 Richard Henderson * sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to make gcc4 happy. 2004-10-06 Jakub Jelinek * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead of pthread-functions.h and pthreaddef.h. * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise. * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t): Change __data.__nwaiters from int to unsigned int. * tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and sysconf (_SC_THREAD_CPUTIME) returns negative value. * allocatestack.c (__find_thread_by_id): Move attribute_hidden before return type. * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h. (JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA. 2004-10-06 Ulrich Drepper * tst-cancel4.c (tf_msgrcv): Check for failure in msgget. If the test fails, remove message queue. (tf_msgsnd): Likewise. 2004-10-05 Jakub Jelinek * tst-clock1.c: Change #ifdef to #if defined. * tst-clock2.c: Likewise. * tst-cond11.c: Likewise. * sysdeps/pthread/timer_create.c (timer_create): Use defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for THREAD_CPUTIME. 2004-10-05 Jakub Jelinek * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME, _POSIX_THREAD_CPUTIME): Define to 0. 2004-10-04 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME and _POSIX_THREAD_CPUTIME to zero. * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise. * tst-barrier2.c: Fix testing for POSIX feature. * tst-clock1.c: Likewise. * tst-clock2.c: Likewise. * tst-cond11.c: Likewise. * tst-cond4.c: Likewise. * tst-cond6.c: Likewise. * tst-flock2.c: Likewise. * tst-mutex4.c: Likewise. * tst-mutex9.c: Likewise. * tst-rwlock12.c: Likewise. * tst-rwlock4.c: Likewise. * tst-signal1.c: Likewise. * tst-spin2.c: Likewise. * sysdeps/pthread/posix-timer.h: Likewise. * sysdeps/pthread/timer_create.c: Likewise. * sysdeps/pthread/timer_routines.c: Likewise. 2004-10-01 Ulrich Drepper * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_mutex_timedlock_wait): Address futex correctly. * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S (__lll_mutex_timedlock_wait): If woken but cannot get the lock, make sure 2 is stored in the futex and we looked at the old value. * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_mutex_timedlock_wait): Likewise. Fix a few other problems which might very well made the code not working at all before. [BZ #417] 2004-09-28 Ulrich Drepper * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't allow SIGSETXID to be sent. * sysdeps/pthread/sigaction.c (__sigaction): Don't allow action for SIGSETXID to be defined. * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure SIGSETXID cannot be blocked. * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t): Add __extension__ to long long types. * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise. 2004-09-25 Ulrich Drepper * descr.h (struct pthread): Add stopped_start field. * sysdeps/pthread/createthread.c (create_thread): Set start_stopped flag in descriptor for new thread appropriately. * pthread_create.c (start_thread): Only take lock to be stopped on startup if stopped_start flag says so. 2004-09-24 Ulrich Drepper * pthread_create.c (__pthread_create_2_1): Remember whether thread is created detached and if yes, do not try to free the stack in case the thread creation failed. * sysdeps/pthread/createthread.c (do_clone): Free stack here if clone call fails. Don't depend on INTERNAL_SYSCALL_ERRNO return zero in case there has been no error. [BZ #405] * pthread_create.c (start_thread): Don't wait for scheduler data etc to be set at the beginning of the function. The cancellation infrastructure must have been set up. And enable async cancellation before potentially going to sleep. [BZ #401] 2004-09-20 Ulrich Drepper * 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 * sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for internal use. * allocatestack.c (__nptl_setxid): New function. * descr.h (struct xid_command): Define type. * init.c (pthread_functions): Add ptr__nptl_setxid initialization. (sighandler_setxid): New function. (__pthread_initialize_minimal): Register sighandler_setxid for SIGCANCEL. * pt-allocrtsig.c: Update comment. * pthreadP.h: Define SIGSETXID. Declare __xidcmd variable. Declare __nptl_setxid. * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid. * 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-18 Ulrich Drepper * allocatestack.c (allocate_stack): Return EAGAIN instead of ENOMEM when out of memory. 2004-09-10 Roland McGrath [BZ #379] * allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED] code, since we don't try to use the broken CLONE_STOPPED any more. * pthread_create.c (start_thread): Likewise. 2004-09-15 Richard Henderson * sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def. 2004-09-01 David Mosberger * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h (__libc_unwind_longjmp): Delete macro and declare as function. * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention __ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for nptl directory. * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file. * sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file. * sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file. 2004-09-12 Ulrich Drepper * sysdeps/pthread/pthread.h: Make rwlock prototypes available also for __USE_XOPEN2K. * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock types also for __USE_XOPEN2K. * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise. [BZ #320] 2004-09-08 Ulrich Drepper * sysdeps/pthread/pthread.h (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++. (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise. (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise. (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise. [BZ #375] 2004-09-07 Ulrich Drepper * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow PSEUDO to be used with . prefix. * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once): Use atomic_increment instead of atomic_exchange_and_add. * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once): Likewise. * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once): Likewise. * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once): Likewise. * allocatestack.c (allocate_stack): Use atomic_increment_val instead of atomic_exchange_and_add. * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise. * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post): Likewise. * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait): Likewise. * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since the initialization function might throw. 2005-09-05 Richard Henderson * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P): Move definition inside libpthread, libc, librt check. Provide definition for rtld. 2004-09-02 Ulrich Drepper * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp. * sysdeps/i386/jmpbuf-unwind.h: Likewise * sysdeps/powerpc/jmpbuf-unwind.h: Likewise. * sysdeps/s390/jmpbuf-unwind.h: Likewise. * sysdeps/sh/jmpbuf-unwind.h: Likewise. * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise. * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise. * sysdeps/x86_64/jmpbuf-unwind.h: Likewise. * unwind.c: Use it. * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make it unsigned int. * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t): Likewise. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Decrement __nwaiters. If pthread_cond_destroy has been called and this is the last waiter, signal pthread_cond_destroy caller and avoid using the pthread_cond_t structure after unlock. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise. Read clock type from the least significant bits of __nwaiters instead of __clock. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise. * sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS. 2004-08-31 Jakub Jelinek [BZ #342] * Makefile (tests): Add tst-cond20 and tst-cond21. * tst-cond20.c: New test. * tst-cond21.c: New test. * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make it unsigned int. * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t): Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h (pthread_cond_t): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t): Likewise. * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t): Likewise. * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove. (cond_nwaiters): New. (clock_bits): New. * pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY if there are waiters not signalled yet. Wait until all already signalled waiters wake up. * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement __nwaiters. If pthread_cond_destroy has been called and this is the last waiter, signal pthread_cond_destroy caller and avoid using the pthread_cond_t structure after unlock. (__pthread_cond_wait): Increment __nwaiters in the beginning, decrement it when leaving. If pthread_cond_destroy has been called and this is the last waiter, signal pthread_cond_destroy caller. * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise. Read clock type from the least significant bits of __nwaiters instead of __clock. * pthread_condattr_setclock.c (pthread_condattr_setclock): Check whether clock ID can be encoded in COND_CLOCK_BITS bits. * pthread_condattr_getclock.c (pthread_condattr_getclock): Decode clock type just from the last COND_CLOCK_BITS bits of value. * pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters instead of __clock, just from second bit of condattr's value. 2004-08-30 Jakub Jelinek * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include bits/wordsize.h. Make the header match i386 header when __WORDSIZE != 64. * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise. 2004-08-15 Roland McGrath * 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 * DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to pthread_rwlock_rdlock. * sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock): Decrease __nr_readers_queued after reacquiring lock. * sysdeps/pthread/pthread_rwlock_timedrdlock (pthread_rwlock_timedrdlock): Likewise. Reported by Bob Cook . 2004-08-11 Jakub Jelinek * tst-rwlock14.c (tf): Read main thread handle from *ARG before pthread_barrier_wait. 2004-08-07 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Remove unnecessary exception handling data. 2004-07-23 Jakub Jelinek [BZ #284] * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t instead of clockid_t. 2004-07-21 Roland McGrath * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory). 2004-07-19 Roland McGrath * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available. 2004-07-02 Roland McGrath * configure: Don't exit. 2004-07-14 Kaz Kojima * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S (__pthread_cond_timedwait): Check for invalid nanosecond in timeout value. 2004-07-07 Ulrich Drepper * Makefile: Add rules to build and run tst-fini1. * tst-fini1.c: New file. * tst-fini1mod.c: New file. 2004-07-05 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION if no cancellation support is needed. * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise. * sysdeps/unix/sysv/linux/sh/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/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/powerpc/lowlevellock.h: Define __NR_futex only if not already defined. 2004-07-05 Jakub Jelinek * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use constraint "m" instead of "0" for futex. * shlib-versions: Add powerpc64-.*-linux.*. 2004-07-04 Jakub Jelinek * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check for valid tv_nsec. * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to 1 billion and 64-bit tv_nsec which is valid when truncated to 32 bits. 2004-06-29 Roland McGrath * Banner: NPTL no longer has its own version number. * Makefile (nptl-version): Variable removed. * sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION using $(version), the glibc version number. 2004-06-29 Kaz Kojima * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once): Fix branch offset for a PLT entry. * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post): Likewise. * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait): Likewise. * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait): Likewise. * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise. 2004-06-28 Jakub Jelinek * sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define unconditionally. 2004-06-28 Jakub Jelinek * sysdeps/pthread/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative, instead of tv_sec. * sysdeps/pthread/pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock): Likewise. 2004-06-22 Jakub Jelinek * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue): Set __r7 to val, not mutex. 2004-06-27 Ulrich Drepper * Makefile: Add rules to build tst-rwlock14. * tst-rwlock14.c: New file. 2004-06-24 Boris Hu * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation check. * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise. 2004-06-19 Andreas Jaeger * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix assembler in last patch. 2004-06-17 Ulrich Drepper * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait): Also check for negativ nanoseconds. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S (__pthread_cond_timedwait): Check for invalid nanosecond in timeout value. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise. * tst-cond19.c: New file. * Makefile: Add rules to build and run tst-cond19. 2004-06-15 Steven Munroe * tst-context1.c (GUARD_PATTERN): Defined. (tst_context_t): Define struct containing ucontext_t & guard words. (ctx): Declare as an array of tst_context_t. (fct): Verify uc_link & guard words are still valid. (tf): Initialize guard words in ctx. Adjust ctx refs for new struct. 2004-06-13 Kaz Kojima * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock. * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S (__pthread_cond_signal): Increment __futex at the same time as __wakeup_seq or __total_seq. Pass address of __futex instead of address of low 32-bits of __wakeup_seq to futex syscall. * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S (__pthread_cond_wait): Likewise. Pass __futex value from before releasing internal lock to FUTEX_WAIT. * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S (__pthread_cond_timedwait): Likewise. * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S (FUTEX_CMP_REQUEUE): Define. (__pthread_cond_broadcast): Set __futex to 2 * __total_seq. Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE. Pass __futex value from before the unlock and __futex address instead of address of low 32-bits of __wakeup_seq to futex syscall. Fallback to FUTEX_WAKE all on any errors. 2004-06-08 Jakub Jelinek * pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix comment typo. * pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise. * pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise. * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise. * pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared): Likewise. Reported by Bob Cook . 2004-06-11 Martin Schwidefsky * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap): Add memory clobber to inline assembly. (__lll_mutex_trylock): Likewise. (__lll_mutex_cond_trylock): Likewise. 2004-06-07 Martin Schwidefsky * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue): Pass val argument as 6th system call argument in %r7. 2004-05-21 Jakub Jelinek * Makefile (tests): Add tst-cond16. * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add. * pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex. * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock. * sysdeps/unix/sysv/linux/i386/pthread_cond_signal.S (__pthread_cond_signal): Increment __futex at the same time as __wakeup_seq or __total_seq. Pass address of __futex instead of address of low 32-bits of __wakeup_seq to futex syscall. * sysdeps/unix/sysv/linux/i386/pthread_cond_wait.S (__pthread_cond_wait): Likewise. Pass __futex value from before releasing internal lock to FUTEX_WAIT. * sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.S (__pthread_cond_timedwait): Likewise. * sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.S (FUTEX_CMP_REQUEUE): Define. (__pthread_cond_broadcast): Set __futex to 2 * __total_seq. Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE. Pass __futex value from before the unlock and __futex address instead of address of low 32-bits of __wakeup_seq to futex syscall. Fallback to FUTEX_WAKE all on any errors. * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE): Define. (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE internally. Return non-zero if error, zero if success. * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock. * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE): Define. (lll_futex_requeue): Add val argument, return 1 unconditionally for the time being. * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock. * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE): Define. (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE internally. Return non-zero if error, zero if success. * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock. * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE): Define. (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE internally. Return non-zero if error, zero if success. * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock. * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE): Define. (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE internally. Return non-zero if error, zero if success. * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock. * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock. * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Increment __futex at the same time as __wakeup_seq or __total_seq. Pass address of __futex instead of address of low 32-bits of __wakeup_seq to futex syscall. * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise. Pass __futex value from before releasing internal lock to FUTEX_WAIT. * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise. Avoid unnecessary shadowing of variables. * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast): Set __futex to 2 * __total_seq. Pass __futex value from before the unlock and __futex address instead of address of low 32-bits of __wakeup_seq to futex_requeue macro, adjust for new return value meaning. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S (__pthread_cond_signal): Increment __futex at the same time as __wakeup_seq or __total_seq. Pass address of __futex instead of address of low 32-bits of __wakeup_seq to futex syscall. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (__pthread_cond_wait): Likewise. Pass __futex value from before releasing internal lock to FUTEX_WAIT. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S (__pthread_cond_timedwait): Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S (FUTEX_CMP_REQUEUE): Define. (__pthread_cond_broadcast): Set __futex to 2 * __total_seq. Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE. Pass __futex value from before the unlock and __futex address instead of address of low 32-bits of __wakeup_seq to futex syscall. Fallback to FUTEX_WAKE all on any errors. 2004-06-03 Kaz Kojima * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock): Add nop to align the end of critical section. (lll_mutex_cond_lock, lll_mutex_timedlock): Likewise. 2004-06-01 Kaz Kojima * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t): Add __broadcast_seq field. * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark all waiters as woken with woken_seq and bump broadcast counter. * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new __broadcast_seq. Increment __woken_seq correctly when cleanuped. * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise. Comment typo fixes. Avoid returning -ETIMEDOUT. 2004-06-01 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S (__condvar_tw_cleanup): Fix access to saved broadcast_seq value. Reported by Kaz Kojima. 2004-05-25 Jakub Jelinek * sysdeps/unix/sysv/linux/aio_misc.h: New file. 2004-05-21 Jakub Jelinek * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare __broadcast_seq with bc_seq after acquiring internal lock instead of before it. 2004-05-18 Jakub Jelinek * Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not compilation. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S (__pthread_cond_timedwait): Avoid returning -ETIMEDOUT. * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t): Add __data.__broadcast_seq field. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S (FRAME_SIZE): Define. (__pthread_cond_timedwait): Use it. Store/check broadcast_seq. Comment typo fixes. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE): Define. (__pthread_cond_wait): Use it. Store/check broadcast_seq. Comment typo fixes. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S (__pthread_cond_broadcast): Increment broadcast_seq. Comment typo fixes. 2004-05-18 Ulrich Drepper * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry. * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t): Add __broadcast_seq field. * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark all waiters as woken with woken_seq and bump broadcast counter. * sysdeps/pthread/pthread_cond_broadcast.c: Likewise. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new __broadcast_seq field. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise. * sysdeps/pthread/pthread_cond_wait.c: Likewise. * sysdeps/pthread/pthread_cond_timedwait.c: Likewise. * pthread_cond_init.c: Initialize __broadcast_seq field. * Makefile (tests): Add tst-cond17 and tst-cond18. Add .NOTPARALLEL goal. * tst-cond16.c: New file. From Jakub. * tst-cond17.c: New file. From Jakub. * tst-cond18.c: New file. From Jakub. 2004-05-16 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some unwind info. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Parametrize frame size. Correct some unwind info. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise. 2004-05-04 Jakub Jelinek * tst-stack3.c: Note testing functionality beyond POSIX. 2004-05-04 Jakub Jelinek * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD): Change conditional from ifdef to if. 2004-04-23 Jakub Jelinek * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO, SYSDEP_CANCEL_ERROR): Define. (PSEUDO): Use it. 2004-05-01 Jakub Jelinek * Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE. 2004-04-20 Jakub Jelinek * sem_unlink.c (sem_unlink): Change EPERM into EACCES. 2004-04-19 Kaz Kojima * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info. Use HIDDEN_JUMPTARGET to jump to __pthread_unwind. * sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame info. Use HIDDEN_JUMPTARGET to jump to __pthread_unwind. 2004-04-19 Ulrich Drepper * sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper thread has all signals blocked. 2004-04-18 Andreas Jaeger * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h (SEM_VALUE_MAX): Add missing brace. 2004-04-17 Jakub Jelinek * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x in rt subdir. (CFLAGS-tst-mqueue8x.c): Add -fexceptions. * sysdeps/pthread/tst-mqueue8x.c: New test. * tst-cancel4.c: Update comment about message queues. * 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. 2004-04-17 Jakub Jelinek * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h. 2004-04-17 Ulrich Drepper * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX): Just use a plain number. * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise. 2004-04-16 Kaz Kojima * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded frame info. * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise. 2004-04-15 Jakub Jelinek * sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h. (timer_helper_thread): Use inline rt_sigtimedwait syscall instead of calling sigwaitinfo. 2004-04-16 Ulrich Drepper * allocatestack.c (allocate_stack): Set reported_guardsize unconditionally. * pthread_getattr_np.c (pthread_getattr_np): Use reported_guardsize instead of guardsize. * descr.h (struct pthread): Add reported_guardsize field. 2004-04-13 Jakub Jelinek * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning. 2004-04-12 Ulrich Drepper * sysdeps/unix/sysv/linux/mq-notify.c: New file. 2004-04-08 Jakub Jelinek * 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. * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h (_POSIX_MESSAGE_PASSING): Define. * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_MESSAGE_PASSING): Define. 2004-04-04 Ulrich Drepper * tst-context1.c (fct): Check whether correct stack is used. 2004-04-03 Ulrich Drepper * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use matching constraints for asm mem parameters. * tst-clock2.c (tf): Don't define unless needed. 2004-03-30 H.J. Lu * Makefile (link-libc-static): Use $(static-gnulib) instead of $(gnulib). 2004-03-30 Ulrich Drepper * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd. * init.c (pthread_functions): Add ptr__nptl_deallocate_tsd. * pthreadP.h: Declare __nptl_deallocate_tsd. * pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd. Adjust caller. * Makefile (tests): Add tst-tsd5. * tst-tsd5.c: New file. 2004-03-29 Ulrich Drepper * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c (__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names is SHLIB_COMPAT check. * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c (__pthread_attr_getaffinity_old): Likewise. * sysdeps/unix/sysv/linux/pthread_getaffinity.c (__pthread_getaffinity_old): Likewise. * sysdeps/unix/sysv/linux/pthread_setaffinity.c (__pthread_setaffinity_old): Likewise. 2004-03-26 Ulrich Drepper * allocatestack.c (_make_stacks_executable): Call _dl_make_stack_executable first. 2004-03-24 Roland McGrath * sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m" constraint instead of "0". 2004-03-24 Ulrich Drepper * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock. * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize code to avoid warning. 2004-03-24 Andreas Jaeger * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c (__pthread_attr_setaffinity_old): Remove const. 2004-03-23 Ulrich Drepper * sysdeps/unix/sysv/linux/smp.h: New file. * sysdeps/unix/sysv/linux/sh/smp.h: New file. * init.c: Define __is_smp. (__pthread_initialize_minimal_internal): Call is_smp_system to initialize __is_smp. * pthreadP.h: Declare __is_smp. Define MAX_ADAPTIVE_COUNT is necessary. * pthread_mutex_init.c: Add comment regarding __spins field. * pthread_mutex_lock.c: Implement adaptive mutex type. * pthread_mutex_timedlock.c: Likewise. * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t): Add __spins field. * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define lll_mutex_cond_trylock. * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise. Define BUSY_WAIT_NOP. * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise. * tst-mutex5.c: Add support for testing adaptive mutexes. * tst-mutex7.c: Likewise. * tst-mutex5a.c: New file. * tst-mutex7a.c: New file. * Makefile (tests): Add tst-mutex5a and tst-mutex7a. * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the vgettimeofday call might destroy the content. * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint @pause in the loop. * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock): No need to restrict type of ret. Make it int. Add comment. * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock): Remove unnecessary setne instruction. 2004-03-22 Jakub Jelinek * sysdeps/unix/sysv/linux/pthread_getaffinity.c (__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX. * pthread_getattr_np.c (pthread_getattr_np): Double size every cycle. If realloc fails, break out of the loop. 2004-03-20 Andreas Jaeger * sysdeps/unix/sysv/linux/pthread_setaffinity.c (__pthread_setaffinity_old): Fix interface. * sysdeps/unix/sysv/linux/pthread_getaffinity.c (__pthread_getaffinity_old): Likewise. * sysdeps/unix/sysv/linux/pthread_setaffinity.c (__pthread_setaffinity_new): Remove duplicate declaration. 2004-03-20 Kaz Kojima * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save the return value to a safe register. (CDISABLE): Set the function argument correctly. 2004-03-17 Kaz Kojima * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define. * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait): Rewrite so that only one locked memory operation per round is needed. * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S (pthread_barrier_wait): After wakeup, release lock only when the last thread stopped using the barrier object. * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S (__pthread_cond_wait): Don't store mutex address if the current value is ~0l. Add correct cleanup support and unwind info. * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise. * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S (__pthread_cond_broadcast): Don't use requeue for pshared condvars. * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment. * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once): Add correct cleanup support and unwind info. * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise. * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind information for syscall wrappers. 2004-03-18 Ulrich Drepper * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add cpusetsize field, remove next. * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second parameter for size of the CPU set. (pthread_setaffinity_np): Likewise. (pthread_attr_getaffinity_np): Likewise. (pthread_attr_setaffinity_np): Likewise. * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement interface change, keep compatibility code. * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise. * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise. * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise. * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np. Declare __pthread_getaffinity_np. * Versions: Add version for changed interfaces. * tst-attr3.c: Adjust test for interface change. * pthread_getattr_np.c: Query the kernel about the affinity mask with increasing buffer sizes. * pthread_attr_destroy.c: Remove unused list handling. * pthread_attr_init.c: Likewise. 2004-03-17 Roland McGrath * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing first argument to clock_getres so we ever enable kernel timers. 2004-03-15 Ulrich Weigand * init.c (nptl_version): Add __attribute_used__ to nptl_version. 2004-03-12 Richard Henderson * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate oldvalue from CENABLE to CDISABLE. 2004-03-12 Ulrich Drepper * sysdeps/unix/sysv/linux/bits/local_lim.h: Define 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-11 Richard Henderson * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New. * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID. * sysdeps/unix/sysv/linux/alpha/vfork.S: New file. 2004-03-11 Jakub Jelinek * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl instead of jnl instruction to jump to SYSCALL_ERROR_LABEL. * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise. 2004-03-11 Jakub Jelinek * forward.c (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0, __pthread_cond_init_2_0, __pthread_cond_signal_2_0, __pthread_cond_wait_2_0, __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0. 2004-03-11 Kaz Kojima * sysdeps/sh/tcb-offsets.sym: Add PID. * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache. * sysdeps/unix/sysv/linux/sh/vfork.S: New file. 2004-03-10 Ulrich Drepper * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to include , vfork is no cancellation point. * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise. 2004-03-10 Jakub Jelinek * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add libc_hidden_def. * 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/powerpc/powerpc64/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/ia64/pt-vfork.S: Include tcb-offsets.h. * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead of DO_CALL_VIA_BREAK. Work around a gas problem. * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove. * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file. * sysdeps/powerpc/tcb-offsets.sym: Add PID. * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use a local register for saving old PID. Negate PID in parent upon exit. * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include tcb-offsets.h. (__vfork): Negate PID if non-zero and set to INT_MIN if zero before syscall, set to the old value in the parent afterwards. * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file. * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include tcb-offsets.h. (__vfork): Negate PID if non-zero and set to INT_MIN if zero before syscall, set to the old value in the parent afterwards. * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file. * sysdeps/s390/tcb-offsets.sym: Add PID. * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove. * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file. * sysdeps/sparc/tcb-offsets.sym: Add PID. 2004-03-10 Andreas Schwab * sysdeps/ia64/tcb-offsets.sym: Add PID. * sysdeps/unix/sysv/linux/ia64/vfork.S: New file. * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache. 2004-03-09 Jakub Jelinek * tst-cancel20.c (do_one_test): Clear in_sh_body first. * tst-cancel21.c (do_one_test): Likewise. Reported by Gordon Jin . 2004-02-09 Jakub Jelinek * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID if non-zero and set to INT_MIN if zero. * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise. * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h. (SAVE_PID, RESTORE_PID): Define. (__vfork): Use it. * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h. Use relative path to avoid including NPTL i386/vfork.S. (SAVE_PID, RESTORE_PID): Define. * sysdeps/unix/sysv/linux/raise.c: Include limits.h. (raise): Handle THREAD_SELF->pid INT_MIN the same as 0. * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and tst-vfork2x. (tests-reverse): Add tst-vfork1x and tst-vfork2x. * tst-vfork1.c: New test. * tst-vfork2.c: New test. * tst-vfork1x.c: New test. * tst-vfork2x.c: New test. 2004-03-08 Ulrich Drepper * sysdeps/i386/tcb-offsets.sym: Add PID. * sysdeps/x86_64/tcb-offsets.sym: Likewise. * sysdeps/unix/sysv/linux/i386/vfork.S: New file. * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file. 2004-03-08 Steven Munroe * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs. 2004-03-08 H.J. Lu * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in _rtld_global_ro. 2004-03-07 Ulrich Drepper * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in _rtld_global_ro. * tst-once4.c: Remove unnecessary macro definition. * tst-mutex7.c (do_test): Limit thread stack size. * tst-once2.c (do_test): Likewise. * tst-tls3.c (do_test): Likewise. * tst-tls1.c (do_test): Likewise. * tst-signal3.c (do_test): Likewise. * tst-kill6.c (do_test): Likewise. * tst-key4.c (do_test): Likewise. * tst-join4.c (do_test): Likewise. * tst-fork1.c (do_test): Likewise. * tst-context1.c (do_test): Likewise. * tst-cond2.c (do_test): Likewise. * tst-cond10.c (do_test): Likewise. * tst-clock2.c (do_test): Likewise. * tst-cancel10.c (do_test): Likewise. * tst-basic2.c (do_test): Likewise. * tst-barrier4.c (do_test): Likewise. 2004-03-05 Ulrich Drepper * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate. 2004-03-01 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S (__pthread_cond_timedwait): Optimize wakeup test. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S (__pthread_cond_wait): Likewise. * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise. * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):