Skip to content
Permalink
695799feb3
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
1982 lines (1541 sloc) 72.5 KB
2003-02-26 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-dlsym1.
* tst-dlsym1.c: New file.
* init.c (__pthread_initialize_minimal_internal): Set
GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
* Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
2003-02-24 Ulrich Drepper <drepper@redhat.com>
* sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
* tst-cond2.c: Fix sychronization with child.
* tst-rwlock8.c (reader_thread): Remove unused variable.
* Makefile: Add rules to build and run tst-tls3.
* tst-tls3.c: New file.
* tst-tls3mod.c: New file.
* Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
* tst-rwlock8.c: New file.
* tst-rwlock9.c: New file.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
complete broken rwlock implementation.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
* sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
* sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
* sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
* sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
* sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
2003-02-23 Roland McGrath <roland@redhat.com>
* Makefile (nptl-version): Change regexp so case sensitivity is ok.
2003-02-23 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-context1.
* tst-context1.c: New file.
* Makefile (tests): Add tst-tls1 and tst-tls2.
* tst-tls1.c: New file.
* tst-tls2.c: New file.
* libc-cancellation.c (__libc_enable_asynccancel): Correct test
for failed cmpxchg.
* pthread_create.c (start_thread): Set EXITING_BIT early.
* sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
(THREAD_GETMEM_NC): Likewise.
2003-02-22 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
off 3 more bytes by using offset-less instructions when possible.
* Makefile: Add dependency for $(objpfx)version.d.
* eintr.c (eintr_source): Add unnecessary return but the compiler
insists.
* tst-kill3.c: Include <unistd.h>.
2003-02-21 Roland McGrath <roland@redhat.com>
* pthread_create.c (start_thread): Call __libc_thread_freeres.
2003-02-21 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-eintr1.
(distribute): Add eintr.c.
* tst-eintr1.c: New file.
* eintr.c: New file.
* pthread_cancel.c (pthread_cancel): Use tkill directly.
* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
Disallow sending SIGCANCEL.
* Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
tst-kill3, tst-kill4, tst-kill5, tst-kill6.
* tst-kill1.c: New file.
* tst-kill2.c: New file.
* tst-kill3.c: New file.
* tst-kill5.c: New file.
* tst-kill6.c: New file.
* tst-basic7.c: Renamed to...
* tst-kill4.c: ...this.
2003-02-21 Roland McGrath <roland@redhat.com>
* Makefile (install-lib-ldscripts): New variable.
2003-02-21 Ulrich Drepper <drepper@redhat.com>
* pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
* pthread_cancel.c: Use INVALID_TD_P.
* pthread_detach.c: Likewise.
* pthread_getschedparam.c: Likewise.
* pthread_setschedparam.c: Likewise.
* sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
* sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
* pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
* pthread_timedjoin.c: Likewise.
* tst-basic7.c: Include <signal.h>.
* pthread_join.c (pthread_join): Limited checking for invalid
descriptors.
* pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
2003-02-20 Ulrich Drepper <drepper@redhat.com>
* pthread_create.c (deallocate_tsd): Reset found_nonzero at the
beginning of the loop. Clear the entire first block of TSD.
* Makefile (tests): Add tst-key4.
* tst-key4.c: New file.
2003-02-18 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-basic7.
* tst-basic7.c: New file.
* pthread_create.c (deallocate_tsd): Mark as internal_function.
Add some more __builtin_expect.
* pthreadP.h: Define dummy version of DEBUGGING_P.
2003-02-17 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
_POSIX_THREAD_PRIORITY_SCHEDULING.
* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
_XOPEN_REALTIME_THREADS.
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
kernel returns EINVAL for PID <= 0, work around it.
* Makefile (tests): Add tst-signal5.
* tst-signal5.c: New file.
* sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
and LOGIN_NAME_MAX.
* tst-cancel1.c (tf): Block all signals.
* Makefile (tests): Add tst-basic6.
* tst-basic6.c: New file.
* tst-basic1.c: Add test for process ID.
* Makefile (tests): Add tst-cancel10.
* tst-cancel10.c: New file.
* Makefile (tests): Add tst-signal4.
* tst-signal4.c: New file.
* sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
__sigismember instead of sigismember. Add __builtin_expect.
2003-02-16 Ulrich Drepper <drepper@redhat.com>
* tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
pthread_setcancelstate, and pthread_rwlock_setpshared.
* tst-cancel7.c (do_test): Make sure the pid file exists before
canceling the thread.
* tst-rwlock6.c: More pthread_rwlock_timedwrlock and
pthread_rwlock_timedrdlock tests.
* tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
Check for invalid tv_nsec field.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
Likewise.
* pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
recursive mutex of overflow.
* tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
* libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
going into an endless loop.
* Makefile (tests): Add tst-cancel9.
* tst-cancel9.c: New file.
* pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
2003-02-15 Ulrich Drepper <drepper@redhat.com>
* tst-mutex5.c (do_test): Add more timedlock tests.
* tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
* tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
use INLINE_SYSCALL. Error number is returned, not -1.
* pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
and __deallocate_stack with internal_function.
* pthread_create.c: Adjust definitions appropriately.
* allocatestack.c: Likewise.
* pthread_join.c: Add one more __builtin_expect.
* pthread_timedjoin.c: Likewise.
* pthread_getspecific.c (__pthread_getspecific): Clear data->data
not data of sequence number does not match.
Add one __builtin_expect.
* Makefile (tests): Add tst-clock1.
* tst-clock1.c: New file.
* pthread_setconcurrency.c (pthread_setconcurrency): Fail for
negative arguments.
* Makefile (tests): Add tst-basic5.
* tst-basic5.c: New file.
2003-02-14 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-basic4.
* tst-basic4.c: New file.
* pthreadP.h: Add declaraction for __nptl_nthreads.
* pthread_create.c: Define __nptl_nthreads
(start_thread): Increment __nptl_nthreads at beginning. Decrement
after thread is done. If then zero, call exit(0).
* sysdeps/pthread/pthread-functions.h (struct pthread_functions):
Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
* init.c (pthread_functions): Initialize ptr_nthreads.
* allocatestack.c (nptl_nthreads): Remove definition and all uses.
(__reclaim_stacks): Decrement __nptl_nthreads.
* sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
Define.
* Makefile (tests): Add tst-basic3.
* tst-basic3.c: New file.
* descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
* init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
* pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
if asynchronous canceling is enabled.
* pthread_join.c (pthread_join): When recognizing circular joins,
take into account the other thread might be already canceled.
* Makefile (tests): Add tst-join5.
* tst-join5.c: New file.
* Makefile (tests): Add tst-join4.
* tst-join4.c: New file.
2003-02-13 Ulrich Drepper <drepper@redhat.com>
* tst-cond4.c (main): Add test of pthread_attr_getpshared.
2003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
* sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
warning.
* sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
to avoid warning.
* sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
error if lll_futex_wake failed.
2003-02-13 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
handling of cancellation and failung pthread_mutex_unlock call.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
* Makefile (tests): Add tst-cond8 and tst-cond9.
* tst-cond8.c: New file.
* tst-cond9.c: New file.
* tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
* sysdeps/pthread/pthread.h: Add missing initializers. Protect
non-standard initializers with __USE_GNU.
* Makefile (tests): Add tst-cleanup3.
* tst-cleanup3.c: New file.
2003-02-12 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-attr1 and tst-attr2.
* tst-attr1.c: New file.
* tst-attr2.c: New file.
* Makefile: Add rules to build and run tst-atfork2 test.
* tst-atfork2.c: New file.
* tst-atfork2mod.c: New file.
* sysdeps/unix/sysv/linux/unregister-atfork.c
(__unregister_atfork): Free the memory allocated for the handlers
after removing them from the lists.
* sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
cleanup function.
* tst-atfork1.c (do_test): Wait for the child we forked.
Report error in child.
* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
* sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
2003-02-10 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-cancel8.
* tst-cancel8.c: New file.
* sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
clearing of control variable.
* Makefile (tests): Add tst-once3 and tst-once4.
* tst-once3.c: New file.
* tst-once4.c: New file.
2003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/sh/Makefile: New file.
* sysdeps/sh/bits/atomic.h: New file.
* sysdeps/sh/pthread_spin_init.c: New file.
* sysdeps/sh/pthread_spin_lock.c: New file.
* sysdeps/sh/pthread_spin_trylock.S: New file.
* sysdeps/sh/pthread_spin_unlock.S: New file.
* sysdeps/sh/pthreaddef.h: New file.
* sysdeps/sh/tcb-offsets.sym: New file.
* sysdeps/sh/td_ta_map_lwp2thr.c: New file.
* sysdeps/sh/tls.h: New file.
* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
* sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
* sysdeps/unix/sysv/linux/sh/createthread.c: New file.
* sysdeps/unix/sysv/linux/sh/fork.c: New file.
* sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
* sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
* sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
* sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
* sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
* sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
* sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
* sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
* sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
* sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
* sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
* sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
* sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
* sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
* sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
2003-02-08 Ulrich Drepper <drepper@redhat.com>
* tst-cond2.c: Rearrange code to not rely on behavior undefined
according to POSIX.
* tst-basic2.c (do_test): Lock mutex before creating the thread.
2003-02-07 Ulrich Drepper <drepper@redhat.com>
* sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
(TLS_GET_FS): New #define.
(TLS_SET_FS): New #define.
Correct value of __NR_set_thread_area.
* sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
2003-02-06 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-popen1.
* tst-popen1.c: New file.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
but inactive generalization.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
Minor optimization, remove one instruction.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
2003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
2003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
* init.c (__NR_set_tid_address): Add #ifdef for s390.
* sysdeps/pthread/pthread_barrier_wait.c: New file.
* sysdeps/pthread/pthread_cond_broadcast.c: New file.
* sysdeps/pthread/pthread_cond_signal.c: New file.
* sysdeps/pthread/pthread_cond_timedwait.c: New file.
* sysdeps/pthread/pthread_cond_wait.c: New file.
* sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
* sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
* sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
* sysdeps/pthread/pthread_rwlock_unlock.c: New file.
* sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
* sysdeps/s390/Makefile: New file.
* sysdeps/s390/bits/atomic.h: New file.
* sysdeps/s390/pthread_spin_init.c: New file.
* sysdeps/s390/pthread_spin_lock.c: New file.
* sysdeps/s390/pthread_spin_trylock.c: New file.
* sysdeps/s390/pthread_spin_unlock.c: New file.
* sysdeps/s390/pthreaddef.h: New file.
* sysdeps/s390/tcb-offsets.sym: New file.
* sysdeps/s390/td_ta_map_lwp2thr.c: New file.
* sysdeps/s390/tls.h: New file.
* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
* sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
* sysdeps/unix/sysv/linux/s390/createthread.c: New file.
* sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
* sysdeps/unix/sysv/linux/s390/fork.c: New file.
* sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
* sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
* sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
* sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
* sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
* sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
* sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
* sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
* sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
* sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
* sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
* sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
* sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
2003-02-04 Ulrich Drepper <drepper@redhat.com>
* atomic.h: Add a couple more default implementations.
(atomic_compare_and_exchange_acq): Use
__arch_compare_and_exchange_32_acq in return value definition. It
always exists.
(atomic_bit_set): Renamed from atomic_set_bit.
Add missing atomic_ prefixes.
* sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
thread library is available, use correct value to mark initialized
once variable.
2003-02-03 Ulrich Drepper <drepper@redhat.com>
* allocatestack.c (allocate_stack): Use __getpagesize instead of
__sysconf to determine pagesize.
* pthread_create.c: Include <atomic.h>.
* allocatestack.c (allocate_stack): Implement coloring of the
allocated stack memory. Rename pagesize to pagesize_m1. It's the
size minus one. Adjust users.
* sysdeps/i386/i686/Makefile: New file.
2003-02-02 Ulrich Drepper <drepper@redhat.com>
* allocatestack.c: Improve comment throughout the file.
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
(__lll_lock_wait): Add branch prediction.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
(__lll_lock_wait): Likewise.
(lll_unlock_wake_cb): Removed.
2003-01-31 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
_POSIX_THREAD_PRIORITY_SCHEDULING.
2003-01-30 Jakub Jelinek <jakub@redhat.com>
* sysdeps/pthread/pthread-functions.h (struct pthread_functions):
Fix return type of ptr___pthread_getspecific.
2003-01-29 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-umask1.
(tst-umask1-ARGS): Define.
* tst-umask1.c: New file.
2003-01-28 Ulrich Drepper <drepper@redhat.com>
* Makefile (libpthread-routines): Remove lowlevelrwlock. Add
pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
pthread_rwlock_unlock.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
* sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
* sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
New file.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
New file.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
New file.
* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
New file.
* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
New file.
* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
New file.
* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
* Makefile (libpthread-routines): Remove lowlevelcond and
lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
and pthread_cond_broadcast.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
* sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
* sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
* sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
* sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
* sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
* sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
* sysdeps/unix/sysv/linux/i386/createthread.c: Define
PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
of the code is moved to ...
* sysdeps/pthread/createthread.c: ...here. New file.
2003-01-27 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
(__new_sem_post): Clear %eax before returning.
Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
* Makefile (tests): Add tst-cleanup2.
* tst-cleanup2.c: New file.
* sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
Interpret first parameter correctly.
2003-01-17 Ulrich Drepper <drepper@redhat.com>
* Makefile (headers): Add bits/semaphore.h.
2003-01-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
if not SHARED.
2003-01-14 Ulrich Drepper <drepper@redhat.com>
* sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
must be used and mapping failed.
Reported by Luke Elliott <luke.elliott@activfinancial.com>.
* Makefile (CFLAGS-pthread_self.os): Define this, not
CFLAGS-pthread_self.c.
2003-01-13 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
lll_unlock_wake_cb.
* Makefile (libpthread-routines): Add version. Add rules to build
version.os and banner.h.
* version.c: New file.
2003-01-13 Jakub Jelinek <jakub@redhat.com>
* pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
the alias unconditional.
* pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
2003-01-13 Ulrich Drepper <drepper@redhat.com>
* Makefile (CFLAGS-pthread_self.c): New definition.
2003-01-06 Jakub Jelinek <jakub@redhat.com>
* sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
* sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
* init.c (__pthread_initialize_minimal_internal): Likewise.
2003-01-07 Jakub Jelinek <jakub@redhat.com>
* pthreadP.h (__pthread_cond_timedwait): Add prototype.
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h
(RTLD_CORRECT_DYNAMIC_WEAK): Remove.
(DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
(RTLD_CORRECT_DYNAMIC_WEAK): Remove.
(DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
2003-01-06 Jakub Jelinek <jakub@redhat.com>
* pthreadP.h (LIBC_CANCEL_HANDLED): Define.
* pt-system.c (LIBC_CANCEL_HANDLED): Add.
* tst-cancel-wrappers.sh: Remove all exceptions.
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>.
* sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
Use __libc_pthread_functions array if SHARED.
* pthreadP.h: Move pthread_cond_2_0_t definition to...
* sysdeps/unix/sysv/linux/internaltypes.h: ...here.
* sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
(__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
__libc_key_create, __libc_getspecific, __libc_setspecific): Use
__libc_ptf_call instead of __libc_maybe_call.
(PTF): New #define.
(__libc_cleanup_region_start): Wrap function name with PTF call.
(__libc_cleanup_region_end): Likewise.
(__libc_cleanup_end): Likewise.
* pthread_getspecific.c: Add __pthread_getspecific_internal alias.
* pthread_setspecific.c: Add __pthread_setspecific_internal alias.
* pthread_key_create.c: Add __pthread_key_create_internal alias.
* pthreadP.h: Add prototypes.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
__pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
__pthread_rwlock_unlock aliases.
* pthreadP.h: Add prototypes for new aliases.
* pthreadP.h (struct pthead_functions): Moved to...
* sysdeps/pthread/pthread-functions.h: ...here. New file.
* init.c (pthread_functions): Add initializers for new elements.
* cleanup_defer.c: Add __pthread_cleanup_push_defer and
__pthread_cleanup_pop_restore aliases.
* pthreadP.h: Add prototypes.
* cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
* sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
* pthreadP.h: Adjust prototypes and callers.
2003-01-04 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-cancel7.
(tst-cancel7-ARGS): New variable.
* tst-cancel7.c: New file.
* old_pthread_cond_broadcast.c: Optimize initialization a bit to work
around gcc defficiencies.
* old_pthread_cond_signal.c: Likewise.
* old_pthread_cond_timedwait.c: Likewise.
* old_pthread_cond_wait.c: Likewise.
* pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
2003-01-03 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-cond7.
* tst-cond7.c: New file.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
(condvar_cleanup): Get condvar address from the right place.
* atomic.h: Correct definitions of atomic_full_barrier,
atomic_read_barrier, atomic_write_barrier.
* old_pthread_cond_broadcast.c: Make memory allocate and initialization
race-free.
* old_pthread_cond_signal.c: Likewise.
* old_pthread_cond_timedwait.c: Likewise.
* old_pthread_cond_wait.c: Likewise.
2003-01-03 Jakub Jelinek <jakub@redhat.com>
* Makefile ($(objpfx)libpthread.so): Depend on ld.so.
2003-01-03 Ulrich Drepper <drepper@redhat.com>
* pthreadP.h (pthread_cond_2_0_t): New type.
(struct pthread_functions): Use new type for 2.0 condvar callbacks.
Use new type for the 2.0 condvar function prototypes.
* forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
* old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
parameter.
* old_pthread_cond_destroy.c: Likewise.
* old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
* old_pthread_cond_signal.c: Likewise.
* old_pthread_cond_timedwait.c: Likewise.
* old_pthread_cond_wait.c: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
(__pthread_cond_wait): Don't save cancellation mode and seq value
in same location.
* herrno.c (__h_errno_location): Don't define as weak.
2003-01-02 Jakub Jelinek <jakub@redhat.com>
* Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
and pthread_cond_wait.
* old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
Renamed to...
(__pthread_cond_broadcast_2_0): ... this.
* old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
Renamed to...
(__pthread_cond_destroy_2_0): ... this.
* old_pthread_cond_init.c (__old_pthread_cond_init):
Renamed to...
(__pthread_cond_init_2_0): ... this.
* old_pthread_cond_signal.c (__old_pthread_cond_signal):
Renamed to...
(__pthread_cond_signal_2_0): ... this.
* old_pthread_cond_wait.c (__old_pthread_cond_wait):
Renamed to...
(__pthread_cond_wait_2_0): ... this.
* pthread_cond_destroy.c: Include shlib-compat.h.
(pthread_cond_destroy): Change strong_alias into versioned_symbol.
* pthread_cond_init.c: Include shlib-compat.h.
(pthread_cond_init): Change strong_alias into versioned_symbol.
* pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
fields.
(__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): New prototypes.
(__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
__old_pthread_cond_init, __old_pthread_cond_signal,
__old_pthread_cond_wait): Removed.
* init.c: Include shlib-compat.h.
(pthread_functions): Guard ptr___pthread_attr_init_2_0
initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
ptr___pthread_cond_*_2_0 fields.
* forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
pthread_cond_*@GLIBC_2.0 compatibility symbols.
* sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
LIBC_SIGACTION was not yet defined.
[!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
[!defined LIBC_SIGACTION] (__sigaction): New function and
libc_hidden_weak.
[!defined LIBC_SIGACTION] (sigaction): New weak_alias.
[defined LIBC_SIGACTION]: #include_next <sigaction.c>.
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/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
New, larger type definition.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
implementation.
* Versions [libpthread]: Add definitions for new pthread_cond_*
interfaces for version GLIBC_2.3.2.
* pthread_cond_init.c: Update initialization for new type definition.
* Makefile (libpthread-routines): Remove pthread_cond_wait,
pthread_cond_timedwait, pthread_cond_signal, and
pthread_cond_broadcast. Add old_pthread_cond_init,
old_pthread_cond_destroy, old_pthread_cond_wait,
old_pthread_cond_timedwait, old_pthread_cond_signal, and
old_pthread_cond_broadcast.
* old_pthread_cond_broadcast.c: New file.
* old_pthread_cond_destroy.c: New file.
* old_pthread_cond_init.c: New file.
* old_pthread_cond_signal.c: New file.
* old_pthread_cond_timedwait.c: New file.
* old_pthread_cond_wait.c: New file.
* pthreadP.h: Add prototypes for the compatibility interfaces.
* pthread_cond_destroy.c: Don't include <errno.h>.
2003-01-01 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
unnecessary zero offset when addressing MUTEX.
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/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
instead of ASSEMBLER test macro.
* sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
__libc_current_sigrtmax): Add libc_hidden_def.
* sysdeps/pthread/list.h: Remove assert.h include.
2002-12-31 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
__pthread_initialize_minimal_internal not
__pthread_initialize_minimal.
2002-12-30 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
__pthread_initialize_minimal as hidden.
* init.c (__pthread_initialize_minimal_internal): Don't mark as
constructor.
2002-12-31 Jakub Jelinek <jakub@redhat.com>
* Makefile ($(inst_libdir)/libpthread.so): Depend on
$(common-objpfx)format.lds, include that into the output script.
Fix comment.
(extra-B-pthread.so): Change linuxthreads/ into nptl/.
2002-12-28 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
nsec resolution changes.
(xstat64_conv): Likewise.
(xstat32_conv): Likewise.
* sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
struct kernel_stat.
* sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
structs stat and stat64.
* time/time.h (__timespec_defined): Define for __USE_MISC.
* io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
2002-12-30 Jakub Jelinek <jakub@redhat.com>
* forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
argument.
(pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
(pthread_exit): Use strong_alias to avoid warnings.
* pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
ptr___pthread_attr_init_2_*.
* init.c (pthread_functions): Adjust.
2002-12-29 Ulrich Drepper <drepper@redhat.com>
* forward.c: Make all functions available by default again. It
caused too much trouble.
* pt-siglongjmp.c: Removed.
2002-12-28 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
(SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
* sysdeps/i386/Makefile: New file.
* sysdeps/i386/tcb-offsets.sym: New file.
* sysdeps/pthread/tcb-offsets.h: New file.
* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
* sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
__register_atfork...
(GLIBC_2.3.2): ...here.
2002-12-28 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
pthread_attr_setstackaddr with __attribute_deprecated__.
2002-12-27 Jakub Jelinek <jakub@redhat.com>
* pt-system.c (system): Remove cancellation handling.
* tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
cancellation routines.
2002-12-28 Ulrich Drepper <drepper@redhat.com>
* descr.h: Include <dl-sysdep.h>.
(struct pthread): Move header.data.list to the back of the struct.
* sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
(MULTIPLE_THREADS_OFFSET): Adjust offset.
(SYSINFO_OFFSEET): Likewise.
2002-12-27 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
Define.
(DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
(USE_DL_SYSINFO): Undef.
2002-12-22 Jakub Jelinek <jakub@redhat.com>
* Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
$(common-objpfx)libc.so.
* tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
it is bigger than pipe buffer size even on arches with bigger
page size.
(tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
2002-12-25 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
correct errno access for case that USE___THREAD is not defined.
2002-12-24 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
Patch by Marijn Ros <marijn@mad.scientist.com>.
2002-12-22 Roland McGrath <roland@redhat.com>
* Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
2002-12-20 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
2002-12-19 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
* sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
of int $0x80.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
sysenter.
* sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
* sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
* allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
in new TCB.
* sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
that sysinfo is properly initialized.
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
to 1 only for ld.so.
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
RTLD_CORRECT_DYNAMIC_WEAK.
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.
* pthread_equal.c: Include pthreadP.h instead of pthread.h.
2002-12-18 Ulrich Drepper <drepper@redhat.com>
* descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
* sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
(INIT_SYSINFO): New #define.
(TLS_TP_INIT): Use INIT_SYSINFO.
* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
At test to make sure SYSINFO_OFFSET value is correct.
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
2002-12-18 Jakub Jelinek <jakub@redhat.com>
* sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
* sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
* Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
[libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
__pthread_rwlock_destroy, __pthread_rwlock_rdlock,
__pthread_rwlock_wrlock, __pthread_rwlock_unlock,
__pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
2002-12-18 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
macro instead of using int $0x80 directly.
* sysdeps/pthread/bits/stdio-lock.h: New file.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
* Makefile (routines): Add libc-lowlevelmutex.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
__i686.get_pc_thunk.dx.
2002-12-17 Jakub Jelinek <jakub@redhat.com>
* Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
(tests): Depend on $(objpfx)tst-cancel-wrappers.out.
($(objpfx)tst-cancel-wrappers.out): New rule.
* tst-cancel-wrappers.sh: New test.
* tst-locale1.c: Include signal.h.
(uselocale): Test static linking of __libc_current_sigrt*.
2002-12-17 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-cancel6.
* tst-cancel6.c: New file
2002-12-17 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
Define meaningfully for assembler as well.
* pthreadP.h (struct pthread_functions): Remove
ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
and ptr_pthread_attr_init_2_1 fields.
* init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
* forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
(FORWARD3): Define using FORWARD4.
(pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
versions.
* pt-system.c: Remove duplicate stdlib.h include.
2002-12-16 Ulrich Drepper <drepper@redhat.com>
* sem_init.c: Define sem_init@GLIBC_2.0.
* sem_destroy.c: Define sem_destroy@GLIBC_2.0.
* sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
* flockfile.c: Moved to...
* sysdeps/pthread/flockfile.c: ...here. New file.
* funlockfile.c: Moved to...
* sysdeps/pthread/funlockfile.c: ...here. New file.
* ftrylockfile.c: Moved to...
* sysdeps/pthread/ftrylockfile.c: ...here. New file.
2002-12-16 Jakub Jelinek <jakub@redhat.com>
* libc-cancellation.c: Guard both function with
#if !defined NOT_IN_libc.
* Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
automatically provided pthread wrappers.
* pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
nor in libpthread.
* pt-open.c: Removed.
* pt-fcntl.c: Removed.
* pt-fsync.c: Removed.
* pt-lseek.c: Removed.
* pt-msgrcv.c: Removed.
* pt-msgsnd.c: Removed.
* pt-msync.c: Removed.
* pt-nanosleep.c: Removed.
* pt-open64.c: Removed.
* pt-pause.c: Removed.
* pt-pread.c: Removed.
* pt-pread64.c: Removed.
* pt-pwrite.c: Removed.
* pt-pwrite64.c: Removed.
* pt-read.c: Removed.
* pt-recv.c: Removed.
* pt-recvfrom.c: Removed.
* pt-recvmsg.c: Removed.
* pt-send.c: Removed.
* pt-sendto.c: Removed.
* pt-sigtimedwait.c: Removed.
* pt-sigwait.c: Removed.
* pt-wait.c: Removed.
* pt-waitpid.c: Removed.
* pt-write.c: Removed.
* pt-accept.c: Removed.
* pt-close.c: Removed.
* pt-connect.c: Removed.
* pt-lseek64.c: Removed.
* pt-sendmsg.c: Removed.
* pt-tcdrain.c: Removed.
2002-12-15 Ulrich Drepper <drepper@redhat.com>
* init.c (__pthread_initialize_minimal_internal): Renamed from
__pthread_initialize_minimal. Make old name an alias. This
converts a normal relocation into a relative relocation.
* pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
* Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
* Makefile (libpthread-routines): Remove pt-creat, pt-poll,
pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
pt-sigwaitinfo, pt-waitid, and pt-writev.
* pt-creat.c: Removed.
* pt-poll.c: Removed.
* pt-pselect.c: Removed.
* pt-readv.c: Removed.
* pt-select.c: Removed.
* pt-sigpause.c: Removed.
* pt-sigsuspend.c: Removed.
* pt-sigwaitinfo.c: Removed.
* pt-waitid.c: Removed.
* pt-writev.c: Removed.
* init.c (pthread_functions): New variable.
(__pthread_initialize_minimal): Pass pointer to pthread_functions
(or NULL) to __libc_pthread_init.
* forward.c: Rewrite to use __libc:pthread_functions array to get
function addresses.
* sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
prototype.
* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
Take new parameter. Copy content of variable pointed to by it
to __libc_pthread_init.
* pthreadP.h (struct pthread_functions): New type.
(__libc_pthread_init): Declare.
* pthread_attr_destroy.c: Add namespace protected alias.
* pthread_attr_getdetachstate.c: Likewise.
* pthread_attr_getinheritsched.c: Likewise.
* pthread_attr_getschedparam.c: Likewise.
* pthread_attr_getschedpolicy.c: Likewise.
* pthread_attr_getscope.c: Likewise.
* pthread_attr_setdetachstate.c: Likewise.
* pthread_attr_setinheritsched.c: Likewise.
* pthread_attr_setschedparam.c: Likewise.
* pthread_attr_setschedpolicy.c: Likewise.
* pthread_attr_setscope.c: Likewise.
* pthread_cond_broadcast.c: Likewise.
* pthread_cond_destroy.c: Likewise.
* pthread_cond_init.c: Likewise.
* pthread_cond_signal.c: Likewise.
* pthread_cond_wait.c: Likewise.
* pthread_condattr_destroy.c: Likewise.
* pthread_condattr_init.c: Likewise.
* pthread_equal.c: Likewise.
* pthread_exit.c: Likewise.
* pthread_getschedparam.c: Likewise.
* pthread_self.c: Likewise.
* pthread_setcancelstate.c: Likewise.
* pthread_setschedparam.c: Likewise.
* pthread_mutex_destroy.c: Likewise.
* pthread_mutex_init.c: Likewise.
* pthreadP.h: Add prototypes for the aliases.
* sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
multiple_threads member in correct TCB to 1.
* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
member of thread decriptor, otherwise return unconditionally 1.
2002-12-14 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
regular Linux version. Remove file.
* sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
* sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
* sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
* sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
* sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
* sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
* sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
* sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
* sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
2002-12-14 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
* sysdeps/unix/sysv/linux/open.c: Removed.
* sysdeps/unix/sysv/linux/fsync.c: Removed.
* sysdeps/unix/sysv/linux/lseek.c: Removed.
* sysdeps/unix/sysv/linux/msync.c: Removed.
* sysdeps/unix/sysv/linux/read.c: Removed.
* sysdeps/unix/sysv/linux/close.c: Removed.
* sysdeps/unix/sysv/linux/creat.c: Removed.
* sysdeps/unix/sysv/linux/nanosleep.c: Removed.
* sysdeps/unix/sysv/linux/pause.c: Removed.
* sysdeps/unix/sysv/linux/select.c: Removed.
* sysdeps/unix/sysv/linux/write.c: Removed.
2002-12-14 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
element in TCB to see whether locking is needed.
* sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
MULTIPLE_THREADS_OFFSET value is correct.
* sysdeps/unix/sysv/linux/close.c: New file.
* sysdeps/unix/sysv/linux/connect.S: New file.
* sysdeps/unix/sysv/linux/creat.c: New file.
* sysdeps/unix/sysv/linux/fsync.c: New file.
* sysdeps/unix/sysv/linux/llseek.c: New file.
* sysdeps/unix/sysv/linux/lseek.c: New file.
* sysdeps/unix/sysv/linux/msgrcv.c: New file.
* sysdeps/unix/sysv/linux/msgsnd.c: New file.
* sysdeps/unix/sysv/linux/msync.c: New file.
* sysdeps/unix/sysv/linux/nanosleep.c: New file.
* sysdeps/unix/sysv/linux/open.c: New file.
* sysdeps/unix/sysv/linux/open64.c: New file.
* sysdeps/unix/sysv/linux/pause.c: New file.
* sysdeps/unix/sysv/linux/poll.c: New file.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pselect.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/readv.c: New file.
* sysdeps/unix/sysv/linux/recv.S: New file.
* sysdeps/unix/sysv/linux/recvfrom.S: New file.
* sysdeps/unix/sysv/linux/recvmsg.S: New file.
* sysdeps/unix/sysv/linux/select.c: New file.
* sysdeps/unix/sysv/linux/send.S: New file.
* sysdeps/unix/sysv/linux/sendmsg.S: New file.
* sysdeps/unix/sysv/linux/sendto.S: New file.
* sysdeps/unix/sysv/linux/sigpause.c: New file.
* sysdeps/unix/sysv/linux/sigsuspend.c: New file.
* sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
* sysdeps/unix/sysv/linux/sigwait.c: New file.
* sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
* sysdeps/unix/sysv/linux/system.c: New file.
* sysdeps/unix/sysv/linux/tcdrain.c: New file.
* sysdeps/unix/sysv/linux/wait.c: New file.
* sysdeps/unix/sysv/linux/waitid.c: New file.
* sysdeps/unix/sysv/linux/waitpid.c: New file.
* sysdeps/unix/sysv/linux/writev.c: New file.
* sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
* pt-readv.c: Fix comment.
2002-12-14 Jakub Jelinek <jakub@redhat.com>
* tst-cleanup1.c: Include stdlib.h.
* tst-cancel5.c: New test.
* Makefile (tests): Add tst-cancel5.
(tst-cancel5): Link against libc.so libpthread.so in that order.
2002-12-13 Ulrich Drepper <drepper@redhat.com>
* forward.c (test_loaded): Prevent recursive calls.
* Makefile (routines): Add libc-cancellation.
* libc-cancellation.c: New file.
* descr.h (struct pthread): Add multiple_threads field.
* allocatestack.c (allocate_stack): Initialize multiple_header field of
new thread descriptor to 1.
* sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
Initialize multiple_thread field after successful thread creation.
* cancellation.c (__do_cancel): Move to pthreadP.h.
(__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
(__pthread_disable_asynccancel): Add internal_function attribute.
* init.c (sigcancel_handler): Remove parameter from __do_cancel call.
* pthread_setcancelstate.c: Likewise.
* pthread_setcanceltype.c: Likewise.
* pthread_exit.c: Likewise.
* pthreadP.h (CANCELLATION_P): Likewise.
(__do_cancel): Define as static inline.
(LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
(__libc_enable_asynccancel, __libc_disable_asynccancel): New
declarations.
* sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
fields. Define MULTIPLE_THREADS_OFFSET.
* sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
declaration.
* sysdeps/unix/sysv/linux/accept.S: New file.
* sysdeps/unix/sysv/linux/read.c: New file.
* sysdeps/unix/sysv/linux/write.c: New file.
* sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
* sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
initialization of __libc_locking_needed.
* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
__libc_locking_needed, use multiple_threads field in TCB.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
2002-12-12 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
version.
* sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
access to __libc_locking_needed for PIC.
2002-12-12 Jakub Jelinek <jakub@redhat.com>
* sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
declare for libc.so.
(__libc_lock_init, __libc_lock_init_recursive): Change into comma
expression.
(__libc_lock_lock): Put into statement expression.
(__libc_lock_unlock): Remove trailing semicolon.
* sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
2002-12-12 Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
"m" constraint to refer to __libc_locking_needed. Declare it here.
2002-12-12 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
* sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
Initialize __libc_locking_needed.
* init.c (__pthread_initialize_minimal): Call __libc_pthread_init
instead of __register_pthread_fork_handler.
* sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
* sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
fork-gen with libc_pthread_init.
* sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
of __register_pthread_fork_handler.
* sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
of __register_pthread_fork_handler.
* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
__libc_locking_needed to determine whether lock prefix can be avoided.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
2002-12-11 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-cleanup1.
* tst-cleanup1.c: New file.
* cancellation.c (__cleanup_thread): Removed.
(__do_cancel): Remove call to __cleanup_thread.
* pthreadP.h: Remove __cleanup_thread prorotype.
* sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
Remember function and argument even if cancellation handler
function is not available.
(__libc_cleanup_region_end): Execute registered function directly if
pthread functions are not available.
(__libc_cleanup_end): Likewise.
* init.c (__pthread_initialize_minimal): Fix initialization in
static lib by preventing gcc from being too clever.
2002-12-10 Ulrich Drepper <drepper@redhat.com>
* init.c (__pthread_initialize_minimal): Remove unneccesary
sigaddset call.
* Makefile (tests): We can run tst-locale2 now.
2002-12-09 Ulrich Drepper <drepper@redhat.com>
* Versions: Remove duplicated sigwait entry.
2002-12-08 Ulrich Drepper <drepper@redhat.com>
* pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
inside libpthread.
* pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
* pthreadP.h: Declare __pthread_enable_asynccancel and
__pthread_disable_asynccancel.
(CANCEL_ASYNC): Use __pthread_enable_asynccancel.
(CANCEL_RESET): Use __pthread_disable_asynccancel.
* cancellation.c (__pthread_enable_asynccancel): New function.
(__pthread_disable_asynccancel): New function.
* pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
* pt-close.c: Likewise.
* pt-connect.c: Likewise.
* pt-creat.c: Likewise.
* pt-fcntl.c: Likewise.
* pt-fsync.c: Likewise.
* pt-lseek.c: Likewise.
* pt-lseek64.c: Likewise.
* pt-msgrcv.c: Likewise.
* pt-msgsnd.c: Likewise.
* pt-msync.c: Likewise.
* pt-nanosleep.c: Likewise.
* pt-open.c: Likewise.
* pt-open64.c: Likewise.
* pt-pause.c: Likewise.
* pt-poll.c: Likewise.
* pt-pread.c: Likewise.
* pt-pread64.c: Likewise.
* pt-pselect.c: Likewise.
* pt-pwrite.c: Likewise.
* pt-pwrite64.c: Likewise.
* pt-read.c: Likewise.
* pt-readv.c: Likewise.
* pt-recv.c: Likewise.
* pt-recvfrom.c: Likewise.
* pt-recvmsg.c: Likewise.
* pt-select.c: Likewise.
* pt-send.c: Likewise.
* pt-sendmsg.c: Likewise.
* pt-sendto.c: Likewise.
* pt-sigpause.c: Likewise.
* pt-sigsuspend.c: Likewise.
* pt-sigtimedwait.c: Likewise.
* pt-sigwait.c: Likewise.
* pt-sigwaitinfo.c: Likewise.
* pt-system.c: Likewise.
* pt-tcdrain.c: Likewise.
* pt-wait.c: Likewise.
* pt-waitid.c: Likewise.
* pt-waitpid.c: Likewise.
* pt-write.c: Likewise.
* pt-writev.c: Likewise.
* pthread_join.c: Likewise.
* pthread_timedjoin.c: Likewise.
* pt-sigpause.c (sigsuspend): Call __sigsuspend.
(__xpg_sigpause): New function.
* Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
2002-12-07 Ulrich Drepper <drepper@redhat.com>
* Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
* cleanup.c: Move declarations of _GI_pthread_cleanup_push and
_GI_pthread_cleanup_pop to pthreadP.h.
* ftrylockfile.c: Use _IO_lock_trylock instead of
pthread_mutex_trylock.
* pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
(CANCEL_RESET): Likewise.
(__pthread_setcanceltype_): Declare.
(__pthread_mutex_lock_internal): Declare.
(__pthread_mutex_unlock_internal): Declare.
(__pthread_once_internal): Declare.
(pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
(pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
* pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
and pthread_mutex_unlock.
* pthread_cond_wait.c: Likewise.
* pthread_mutex_lock.c: Use INTDEF to define alias if needed.
* pthread_mutex_unlock.c: Likewise.
* pthread_setcanceltype.c: Add additional alias
__pthread_setcanceltype.
* sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
* sem_open.c (sem_open): Likewise.
Use __libc_open, __libc_write, and __libc_close instead of
open, write, and close respectively.
* sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
Rewrite as statement expression since it must return a value.
* pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
* sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
__pthread_kill.
* sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
alias __pthread_once_internal.
* sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
2002-12-06 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-stdio1 and tst-stdio2.
* tst-stdio1.c: New file.
* tst-stdio2.c: New file.
* init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
* Makefile (tests): Comment out tst-locale2 for now.
(CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
* sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
-D_IO_MTSAFE_IO.
* sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
Use _IO_lock_init instead of explicit assignment.
* sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
Define __libc_lock_* and __libc_lock_recursive macros with
lowlevellock macros, not pthread mutexes.
* flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
of pthread_mutex_lock.
* funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
instead of pthread_mutex_unlock.
2002-12-06 Roland McGrath <roland@redhat.com>
* allocatestack.c (__stack_user): Use uninitialized defn.
* init.c (__pthread_initialize_minimal): Initialize it here.
2002-12-05 Roland McGrath <roland@redhat.com>
* sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
string.
* sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
* sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
missing & here too.
2002-12-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
lowlevellock.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
* sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
for __libc_lock_* macros.
* Makefile (routines): Add libc-lowlevellock.
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): Use it.
2002-12-04 Roland McGrath <roland@redhat.com>
* forward.c (pthread_self): Use FORWARD3 macro to correct return type.
* sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
* sysdeps/generic/td_ta_map_lwp2thr.c: New file.
* pthread_create.c (start_thread): Add missing & on __nptl_last_event.
2002-12-04 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
a completely opaque, non-integer type.
* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2002-12-05 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/tls.h: Include stdlib.h.
* sysdeps/x86_64/tls.h: Likewise.
2002-12-04 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-locale2.
(tests-static): Likewise.
* tst-locale2.c: New file.
* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
volatile and add memory clobbers to lock operations.
2002-12-03 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/i686/bits/atomic.h: Use i486 version.
* sysdeps/i386/i486/bits/atomic.h: New file.
* sysdeps/i386/i586/bits/atomic.h: New file.
* sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
include i486 version.
* sysdeps/i386/i486/pthread_spin_trylock.S: New file.
* sysdeps/i386/i586/pthread_spin_trylock.S: New file.
Patch by Marijn Ros <marijn@mad.scientist.com>.
* allocatestack.c (get_cached_stack): Don't crash if we first
found a stack with a larger size then needed.
Reported by Hui Huang <hui.huang@sun.com>.
* Makefile (tests): Add tst-sysconf.
* tst-sysconf.c: New file.
* sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
PTHREAD_THREADS_MAX.
2002-12-02 Roland McGrath <roland@redhat.com>
* pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
Declare using hidden_proto instead of attribute_hidden, so there are
non-.hidden static symbols for gdb to find.
(__pthread_keys): Likewise.
* events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
* allocatestack.c (__stack_user): Likewise.
* pthread_create.c (__pthread_keys): Likewise.
(__nptl_threads_events, __nptl_last_event): Make these static instead
of hidden.
* pthread_key_create.c (__pthread_pthread_keys_max,
__pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
2002-12-02 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-locale1. If buid-static is yes link
statically.
* tst-locale1.c: New file.
* pthread_cond_timedwait.c: Include <stdlib.h>.
* Makefile (tests): Add tst-fork2 and tst-fork3.
* tst-fork2.c: New file.
* tst-fork3.c: New file.
2002-11-28 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
require it to 200112L.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
instruction only if HAVE_CMOV is defined.
* sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
* sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
* sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
2002-11-27 Ulrich Drepper <drepper@redhat.com>
* sysdeps/x86_64/bits/atomic.h: New file.
* sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
16-bit operations.
* sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
possible since gettid cannot fail.
* sysdeps/x86_64/pthreaddef.h: New file.
* sysdeps/i386/pthreaddef.h (gettid): Removed.
* sysdeps/x86_64/pthread_spin_init.c: New file.
* sysdeps/x86_64/pthread_spin_lock.c: New file.
* sysdeps/x86_64/pthread_spin_trylock.c: New file.
* sysdeps/x86_64/pthread_spin_unlock.c: New file.
* sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
Add missing lock prefix. Minute optimization.
* tst-spin2.c (main): Also check successful trylock call.
* sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
syscall. Fix typo in case INTERNAL_SYSCALL is not used.
* sysdeps/i386/pthread_spin_destroy.c: Moved to...
* sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
* sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
* sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
value in case of an error. Add support for INTERNAL_SYSCALL.
* sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
value in case of an error.
* sysdeps/x86_64/tls.h: New file.
2002-11-26 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
takes the array member name and the index as parameters.
(THREAD_SETMEM_NC): Likewise.
* pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
* pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
interfaces.
* sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
to decide which code to use.
(THREAD_SETMEM_NC): Likewise.
* allocatestack.c (queue_stack): Don't remove stack from list here.
Do it in the caller. Correct condition to prematurely terminate
loop to free stacks.
(__deallocate_stack): Remove stack from list here.
2002-11-26 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-stack1.
* tst-stack1.c: New file.
* allocatestack.c (allocate_stack): Initialize the TCB on a user
provided stack.
* pthread_attr_getstack.c: Return bottom of the thread area.
2002-11-25 Ulrich Drepper <drepper@redhat.com>
* Makefile (libpthread-routines): Add pt-allocrtsig and
pthread_kill_other_threads.
* pt-allocrtsig.c: New file.
* pthread_kill_other_threads.c: New file.
* sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
all three functions.
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
allocrtsig.
* sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
__libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
and __libc_allocate_rtsig_private.
* Versions (libpthread): Export pthread_kill_other_threads_np,
__libc_current_sigrtmin, and __libc_current_sigrtmax.
2002-11-24 Ulrich Drepper <drepper@redhat.com>
* allocatestack.c (allocate_stack): stackaddr in attribute points to
the end of the stack. Adjust computations.
When mprotect call fails dequeue stack and free it.
* pthread_attr_setstack.c: Store top of the stack in stackaddr
attribute.
* pthread_getattr_np.c: Likewise.
* descr.h (IS_DETACHED): Add some more parenthesis to prevent
surprises.
2002-11-23 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
2002-11-22 Ulrich Drepper <drepper@redhat.com>
* pthread_getspecific.c: Optimize access to first 2nd-level array.
* pthread_setspecific.c: Likewise.
2002-11-21 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
definitions. Get them from the official place.
* sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
* sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
Use new CLONE_ flags in clone() calls.
* sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
* sysdeps/unix/sysv/linux/i386/fork.c: New file.
* Versions: Add pthread_* functions for libc.
* forward.c: New file.
* sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
errno-loc.
* herrno.c: New file.
* res.c: New file.
* Makefile (libpthread-routines): Remove sem_post, sem_wait,
sem_trywait, and sem_timedwait. Add herrno and res.
* sem_init.c: Don't initialize lock and waiters members.
* sem_open.c: Likewise.
* sem_post.c: Removed.
* sem_wait.c: Removed.
* sem_trywait.c: Removed.
* sem_timedwait.c: Removed.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
Includes full implementations of sem_post, sem_wait, sem_trywait,
and sem_timedwait.
* sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
for new implementation.
* sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
and waiters fields.
* tst-sem3.c: Improve error message.
* tst-signal3.c: Likewise.
* init.c (__pthread_initialize_minimal): Use set_tid_address syscall
to tell the kernel about the termination futex and to initialize tid
member. Don't initialize main_thread.
* descr.h (struct pthread): Remove main_thread member.
* cancelllation.c (__do_cancel): Remove code handling main thread.
The main thread is not special anymore.
* allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
size of the stacks to stack_cache_actsize.
* pt-readv.c: Add missing "defined".
* pt-sigwait.c: Likewise.
* pt-writev.c: Likewise.
2002-11-09 Ulrich Drepper <drepper@redhat.com>
* Versions: Export __connect from libpthread.
Patch by Luca Barbieri <ldb@ldb.ods.org>.
* Makefile (libpthread-routines): Add pt-raise.
* sysdeps/unix/sysv/linux/raise.c: New file.
* sysdeps/unix/sysv/linux/pt-raise.c: New file.
* sysdeps/generic/pt-raise.c: New file.
* pthread_cond_init.c: Initialize all data elements of the condvar
structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
* pthread_attr_init.c: Actually implement 2.0 compatibility version.
* pthread_create.c: Likewise.
* Makefile (tests): Add tst-key1, tst-key2, tst-key3.
* tst-key1.c: New file.
* tst-key2.c: New file.
* tst-key3.c: New file.
* Versions: Export pthread_detach for version GLIBC_2.0.
Reported by Saurabh Desai <sdesai@austin.ibm.com>.
2002-11-08 Ulrich Drepper <drepper@redhat.com>
* pthread_key_create.c: Terminate search after an unused key was found.
Patch by Luca Barbieri <ldb@ldb.ods.org>.
* sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
Patch by Luca Barbieri <ldb@ldb.ods.org>.
2002-10-10 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
dynamic lookup for errno in PIC.
* allocatestack.c (get_cached_stack): Rearrange code slightly to
release the stack lock as soon as possible.
Call _dl_allocate_tls_init for TCB from the cache to re-initialize
the static TLS block.
(allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
* cancellation.c: Renamed from cancelation.c.
* Makefile: Adjust accordingly.
* pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
* cleanup_defer.c: Use CANCELLATION_P.
* pthread_testcancel.c: Likewise.
* descr.h: Fix spelling in comments.
* init.c: Likewise.
* pthread_getattr_np.c: Likewise.
* pthread_getschedparam.c: Likewise.
* pthread_setschedparam.c: Likewise.
* Versions: Likewise.
* pt-pselect.c: New file.
* Makefile (libpthread-routines): Add pt-pselect.
* Versions: Add pselect.
* tst-cancel4.c: New file.
* Makefile (tests): Add tst-cancel4.
2002-10-09 Ulrich Drepper <drepper@redhat.com>
* pthread_mutex_lock.c: Always record lock ownership.
* pthread_mutex_timedlock.c: Likewise.
* pthread_mutex_trylock.c: Likewise.
* pt-readv.c: New file.
* pt-writev.c: New file.
* pt-creat.c: New file.
* pt-msgrcv.c: New file.
* pt-msgsnd.c: New file.
* pt-poll.c: New file.
* pt-select.c: New file.
* pt-sigpause.c: New file.
* pt-sigsuspend.c: New file.
* pt-sigwait.c: New file.
* pt-sigwaitinfo.c: New file.
* pt-waitid.c: New file.
* Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
pt-sigwait, pt-sigwaitinfo, and pt-waitid.
* Versions: Add all the new functions.
* tst-exit1.c: New file.
* Makefile (tests): Add tst-exit1.
* sem_timedwait.c: Minor optimization for more optimal fastpath.
2002-10-08 Ulrich Drepper <drepper@redhat.com>
* pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
* pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
call. pthread_join is an official cancellation point.
* pthread_timedjoin.c: Likewise.
* pthread_cond_wait.c: Revert order in which internal lock are dropped
and the condvar's mutex are retrieved.
* pthread_cond_timedwait.c: Likewise.
Reported by dice@saros.East.Sun.COM.
2002-10-07 Ulrich Drepper <drepper@redhat.com>
* pthreadP.h: Cut out all type definitions and move them...
* sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
* pthreadP.h: Include <internaltypes.h>.
* sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
performance tweaks.
* sem_trywait.c: Shuffle #includes around to get right order.
* sem_timedwait.c: Likewise.
* sem_post.c: Likewise.
* sem_wait.c: Likewise.
* nptl 0.3 released.
* Makefile (tests): Add tst-signal3.
* tst-signal3.c: New file.
2002-10-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
the asms modify the sem object.
(__lll_sem_timedwait): Now takes struct sem* as first parameter.
* sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
the actual members.
* pthreadP.h (struct sem): New type. Actual semaphore type.
* semaphoreP.h: Include pthreadP.h.
* sem_getvalue.c: Adjust to sem_t change.
* sem_init.c: Likewise.
* sem_open.c: Likewise.
* sem_post.c: Likewise.
* sem_timedwait.c: Likewise.
* sem_trywait.c: Likewise.
* sem_wait.c: Likewise.
2002-10-04 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
* tst-basic2.c: New file.
* tst-exec1.c: New file.
* tst-exec2.c: New file.
* tst-exec3.c: New file.
* tst-fork1.c: Remove extra */.
* nptl 0.2 released. The API for IA-32 is complete.