2003-04-14 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
DW_CFA_advance_loc2 for .Laddl-.Lsubl.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
DW_CFA_advance_loc for .Laddl-.Lsubl.
* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
position-independent unwind data for static libraries.
Add missing unwind info. Add comments.
2003-04-12 Ulrich Drepper <drepper@redhat.com>
* sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
which mishandles loading of global object addresses in PIC.
(THREAD_SETMEM_NC): Likewise.
2003-04-11 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/libc-start.c: Cleanup MAIN_AUXVEC_ARG handling.
Remove HAVE_CANCELBUF code. Replace with code using the new
initializers for unwind-based cleanup handling.
* sysdeps/generic/unwind.h: Update from latest gcc version.
* sysdeps/unix/sysv/linux/i386/sysdep.h: Define labels in a few
places to allow unwind data generation.
* sysdeps/i386/bits/setjmp.h: Allow file to be included multiple times.
* sysdeps/x86_64/bits/setjmp.h: Likewise.
* sysdeps/sh/bits/setjmp.h: Likewise.
* sysdeps/powerpc/bits/setjmp.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/setjmp.h: Likewise.
* sysdeps/alpha/bits/setjmp.h: Likewise.
2003-04-05 Ulrich Drepper <drepper@redhat.com>
* malloc/thread-m.h [PTHREAD_MUTEX_INITIALIZER]: If
HAVE_register_atfork_malloc is defined use __register_atfork_malloc
instead of __register_atfork.
* sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
__timer_helper_thread. Declare __start_helper_thread, __helper_once,
and __helper_tid.
(struct timer): Remove th and bar field.
* sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
debugging code. Create only one helper thread.
* sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
helper thread.
* sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
Renamed. Define statically. Use thread info from siginfo.
(__helper_once): New variable.
(__helper_tid): New variable.
(__reset_helper_control): New function.
(__start_helper_thread): New function.
2003-03-27 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
timer_delete syscall fails, but not with ENOSYS, set
__no_posix_timers.
* sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
(timer_settime): Fix typo.
2003-03-25 Ulrich Drepper <drepper@redhat.com>
* csu/tst-atomic.c: Adjust tests to what atomic_add_negative and
atomic_add_zero were supposed to do.
* include/atomic.h: Adjust atomic_add_negative and atomic_add_zero
to x86 behavior.
* sysdeps/generic/bits/typesizes.h (__TIMER_T_TYPE): Define as void*.
This matches the new timer implementation.
* sysdeps/unix/sysv/linux/bits/siginfo.h (struct siginfo): Adjust
timer info for what the kernel provides these days.
(struct sigevent): Add _tid field.
Define SIGEV_THREAD_ID.
* Versions.def (librt): Add GLIBC_2.3.3.
* abilist/libpthread.abilist: Update for nptl.
constraint to permit non-constant BIT argument.
(atomic_bit_test_set): Likewise.
* sysdeps/x86_64/bits/atomic.h (atomic_bit_test_set): Likewise.
(atomic_bit_set): Likewise. Use 1UL in case that BIT might be >= 32.
For quadword case, use "i" constraint if __builtin_constant_p and < 32
or "r" constraint otherwise.
* configure.in: Move AC_PROG_CC and other program-finding before all
the version checks.
* configure: Regenerated.
int for variable OLDVAL and correct inline assembler contraint.
* sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
type int for variable OLD.
* sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
only for s390-32.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
(SINGLE_THREAD_P): Use global variable __local_multiple_threads
instead of multiple_threads field in the TCB.
* sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
Use __lll_add instead of spelling it out. Use protected symbol names.
* sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
Use __lll_add.
* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
Renamed from lll_compare_and_swap. Use new name where necessary.
(__lll_add): Defined.
(__lll_dec_if_positive): Defined.
(__lll_test_and_set): Defined.
* sysdeps/ia64/pthread_spin_init.c: Removed.
* sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
* sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
* sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
* sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
* sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
* sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
* sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
* sysdeps/pthread/pthread_spin_init.c: New file.
* sysdeps/pthread/pthread_spin_unlock.c: New file.
* sysdeps/powerpc/Makefile: New file.
* sysdeps/powerpc/pthread_spin_lock.c: New file.
* sysdeps/powerpc/pthread_spin_trylock.c: New file.
* sysdeps/powerpc/pthreaddef.h: New file.
* sysdeps/powerpc/tcb-offsets.sym: New file.
* sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
* sysdeps/powerpc/tls.h: New file.
* sysdeps/powerpc/bits/atomic.h: New file.
* sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
* sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
* sysdeps/unix/sysv/linux/lowlevellock.c: New file.
* sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
* sysdeps/unix/sysv/linux/sem_post.c: New file.
* sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
* sysdeps/unix/sysv/linux/sem_trywait.c: New file.
* sysdeps/unix/sysv/linux/sem_wait.c: New file.
* sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
* sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
* sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
* sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
* sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
* sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
* sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
not gettimeofday.
* sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
* sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
* sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
* sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
* sysdeps/pthread/pthread_spin_init.c: New file.
* sysdeps/pthread/pthread_spin_unlock.c: New file.
* sysdeps/powerpc/Makefile: New file.
* sysdeps/powerpc/pthread_spin_lock.c: New file.
* sysdeps/powerpc/pthread_spin_trylock.c: New file.
* sysdeps/powerpc/pthreaddef.h: New file.
* sysdeps/powerpc/tcb-offsets.sym: New file.
* sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
* sysdeps/powerpc/tls.h: New file.
* sysdeps/powerpc/bits/atomic.h: New file.
* sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
* sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
* sysdeps/unix/sysv/linux/lowlevellock.c: New file.
* sysdeps/unix/sysv/linux/sem_post.c: New file.
* sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
* sysdeps/unix/sysv/linux/sem_trywait.c: New file.
* sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
* sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
* sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
* sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
* sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
* sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
2003-03-17 Ulrich Drepper <drepper@redhat.com>
* localedata/en_ZA: hanged %x for LC_TIME to use dd/mm/ccyy.
Added ^ to LC_MESSAGES regex "^[yY].*".
Confirmed LC_PAPER adn LC_MEASUREMENT settings.
Added country and language names to LC_ADDRESS.
Added missing info for LC_TELEPHONE.
Patch by Dwayne Bailey <dwayne@obsidian.co.za>.
2003-03-16 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/clock_settime.c (HANDLE_REALTIME): Define tv here,
not at function level.
* sysdeps/unix/clock_gettime.c (HANDLE_REALTIME): Likewise.
* nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise.
* gmon/gmon.c (write_call_graph): Use u_long for FROM_LEN.
* nscd/nscd_getgr_r.c (nscd_getgr_r): Use nscd_ssize_t for CNT.
2003-03-15 Ulrich Drepper <drepper@redhat.com>
* sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
__builtin_frame_address, use stack pointer.
* sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
instead of __builtin_frame_pointer.
we always define the padding space.
[!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
stopped supporting its own extensions fully.
[TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
struct also called `header', so `header.multiple_threads' is the field
name to use on all machines.
* allocatestack.c (allocate_stack): Use `header.' prefix.
* sysdeps/pthread/createthread.c (create_thread): Likewise.
* pthread_create.c (__pthread_create_2_1): Likewise.
* sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
(THREAD_SELF): Likewise.
* sysdeps/x86_64/tls.h: Likewise.
* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
(SINGLE_THREAD_P): Likewise.
* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
(SINGLE_THREAD_P): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
(SINGLE_THREAD_P): Likewise.
* sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
value directly.
* descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
we always define the padding space.
[!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
stopped supporting its own extensions fully.
[TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
struct also called `header', so `header.multiple_threads' is the field
name to use on all machines.
* allocatestack.c (allocate_stack): Use `header.' prefix.
* sysdeps/pthread/createthread.c (create_thread): Likewise.
* pthread_create.c (__pthread_create_2_1): Likewise.
* sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
(THREAD_SELF): Likewise.
* sysdeps/x86_64/tls.h: Likewise.
* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
(SINGLE_THREAD_P): Likewise.
* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
(SINGLE_THREAD_P): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
(SINGLE_THREAD_P): Likewise.
2003-03-13 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/sysdep.h (BREAK_INSN_1, BREAK_INSN,
ASM_OUTARGS_0, ASM_OUTARGS_1, ASM_OUTARGS_2, ASM_OUTARGS_3,
ASM_OUTARGS_4, ASM_OUTARGS_5, ASM_OUTARGS_6): Define.
(INTERNAL_SYSCALL, INLINE_SYSCALL): Use it. Make syscall arguments
clobbered by the syscall.
(ASM_ARGS_1, ASM_ARGS_2, ASM_ARGS_3, ASM_ARGS_4, ASM_ARGS_5,
ASM_ARGS_6): Change constraints from r to index of corresponding
output register.
* sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Swap
ptid and ctid to match kernel.
* sysdeps/unix/sysv/linux/ia64/system.c (FORK): Likewise.
* sysdeps/powerpc/powerpc64/elf/configure.in: Remove
* sysdeps/powerpc/powerpc64/elf/configure: Regenerated.
* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
2003-03-11 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
(__condvar_cleanup): Wake up all waiters in case we got signaled
after being woken up but before disabling asynchronous
cancellation.
* sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
(__condvar_cleanup): Likewise.
* init.c (__NR_set_tid_address): If already defined, don't redefine.
Make it an error if architecture has no #if case. Add x86-64.
* sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
pt-initfini.s generation.
* sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
(TLS_INIT_TP): Fix typo.
2003-03-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (__NR_pread64): Define
to __NR_pread if not defined.
(__NR_pwrite64): Define to __NR_pwrite if not defined.
* sysdeps/unix/sysv/linux/ia64/system.c: New file.
* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_CLONE_THREAD_FLAGS): Define for IA-64 and s390* with
kernel >= 2.5.64.
2003-03-11 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Don't clobber R7.
allocate space even for the trailing '/'.
Reported by John Reiser <jreiser@BitWagon.com>.
* sysdeps/unix/sysv/linux/ia64/sysdep.h (LOAD_ARGS_6, ASM_ARGS_6,
ASM_CLOBBERS_6): Define.
(ASM_CLOBBERS_5): Use ASM_CLOBBERS_6.
* sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Reorder arguments
to match IA-32 order.
* sysdeps/unix/sysv/linux/i386/clone.S: Fix comment.
* sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
(create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
Use ARCH_CLONE.
* allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
[NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
ALLOCATE_STACK): New macros.
(TLS_TPADJ): New macro.
(get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
(allocate_stack): Handle TLS_DTV_AT_TP and
NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
* pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
Don't set PD->self.
* init.c [__ia64__] (__NR_set_tid_address): Define.
* sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
unused code.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
(__lll_mutex_lock_wait): Reverse order of first two parameters.
(__lll_mutex_timedlock_wait): Likewise.
(lll_mutex_lock): Adjust asm for that.
(lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
(lll_lock): Adjust asm for operand order change.
* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
* sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
Reverse order of parameters.
(__lll_timedwait_tid): Remove regparms attribute.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
* sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
* sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
__lll_mutex_timedlock_wait only for NOT_IN_libc.
* sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
lowlevelmutex.S.
* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
for NOT_IN_libc.
* sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
lowlevellock.S.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
LOCK is already defined. Don't define __lll_mutex_timedlock_wait
for libc.so.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
define LOCK here (if UP is not defined). The actual code is in
lowlevelmutex.S.
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
LOCK is already defined. Don't define lll_unlock_wake_cb and
__lll_timedwait_tid for libc.so.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
define LOCK here (if UP is not defined). The actual code is in
lowlevellock.S.
* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
leftovers from the ia32 code.
* sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
memory load.
(clear_once_control): Don't load %esi.
* sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
handling.
* sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
* sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
lll_wake_tid. This was used only to work around kernel limits in
the early days.
* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
* sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
* pthread_attr_setstack.c: Moved to...
* sysdeps/pthread/pthread_attr_setstack.c: ...here. New file.
* pthread_attr_setstackaddr.c: Moved to...
* sysdeps/pthread/pthread_attr_setstackaddr.c: ...here. New file.
* 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.
2003-02-17 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/sysconf.c (__sysconf): Test for LOGIN_NAME_MAX and
TTY_NAME_MAX and not the _POSIX_* minimal value macros.
* sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
and LOGIN_NAME_MAX.
2003-02-14 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/libc-start.c [HAVE_PTR_NTHREADS]: Decrement thread
counter and only call __exit_thread if this is not the last thread.
* 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: 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/generic/bits/confname.h: Define _CS_GNU_LIBC_VERSION and
_CS_GNU_LIBPTHREAD_VERSION.
* posix/conststr.c: Handle these new values.
* posix/getconf.c: Likewise.
* io/ftw.c (ftw_startup): When using FTW_CHDIR, always remember
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.
* 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.
2002-11-24 Robert Love <rml@tech9.net>
* posix/sched.h: Second parameter of sched_setaffinity and
sched_getaffinity is `unsigned int', not `unsigned long'.
* sysdeps/generic/sched_setaffinity.c: Likewise.
* sysdeps/generic/sched_getaffinity.c: Likewise.
Reported by John Levon <levon@movementarian.org>.
2003-02-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/bits/libc-lock.h (__libc_once): Set control
variable for non-libpthread case to the same value the
pthread_once function would use.
* 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.
* stdio-common/vfprintf.c [USE_IN_LIBIO]: Use _IO_cleanup_region_start
instead of __libc_cleanup_region_start and _IO_cleanup_region_end
instead of __libc_cleanup_region_end.
* sysdeps/unix/sysv/linux/i386/system.c (CLEANUP_HANDLER): Pass 1
as first parameter to __libc_cleanup_region_start.
2003-01-04 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: New file.
2003-01-02 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/bits/pthreadtypes.h (pthread_cond_t): Add padding.
* condvar.c: Add symbol versioning. The compatibility versions
are the same as the change in the interface does not effect this
implementation.
* Versions [libpthread]: Add definitions for new pthread_cond_*
interfaces for version GLIBC_2.3.2.
2002-12-28 Ulrich Drepper <drepper@redhat.com>
* descr.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-19 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/sysdep.h: Add support to use AT_SYSINFO
information for system calls.
* sysdeps/generic/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO to 1 only
for ld.so.
* elf/rtld.c (_dl_start) [USE___THREAD]: Define initdtv.
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-16 Ulrich Drepper <drepper@redhat.com>
* stdio-common/Makefile (routines): Remove lockfile. Add
flockfile, ftrylockfile, and funlockfile.
* sysdeps/generic/lockfile.c: Removed. Each function has its own file.
* sysdeps/generic/flockfile.c: New file.
* sysdeps/generic/ftrylockfile.c: New file.
* sysdeps/generic/funlockfile.c: New file.
2002-12-13 Ulrich Drepper <drepper@redhat.com>
* misc/syslog.c (log_cleanup): Don't use parameter in
__libc_lock_unlock call, use syslog_lock directly. Adjust callers to
pass NULL instead of a pointer to syslog_lock.
* 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.
* malloc/hooks.c [_LIBC && (USE___THREAD || (USE_TLS && !SHARED))]
(malloc_starter, memalign_starter, free_starter): Don't define these.
* malloc/malloc.c [_LIBC && (USE___THREAD || (USE_TLS && !SHARED))]:
Don't declare them either.
* malloc/arena.c (ptmalloc_init) [_LIBC && USE_TLS]: Don't call
__pthread_initialize, so no need to set hooks to *_starter.
(ptmalloc_init_minimal): New function, broken out of ptmalloc_init.
[_LIBC && SHARED && USE_TLS && !USE___THREAD]
(__libc_malloc_pthread_startup): New function.
* malloc/Versions (libc: GLIBC_PRIVATE): New set, add that function.
* malloc/hooks.c (memalign_starter): New function.
* malloc/malloc.c: Declare it.
* malloc/arena.c (save_memalign_hook): New variable.
(ptmalloc_init): Set __memalign_hook to memalign_starter.
* elf/dl-minimal.c (free): Clear the memory.
(calloc): Just call malloc, knowing all memory it returns is cleared.
* sysdeps/generic/dl-tls.c (allocate_dtv): Use calloc instead of
malloc and memset; calloc can avoid the zeroing when redundant.
(_dl_tls_setup): Likewise.
* elf/dl-load.c (decompose_rpath): Likewise.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Comment out memset
call, since memory from sbrk at startup is already zero.
* elf/rtld.c (_dl_start, dl_main): TLS_INIT_TP macro now returns an
error string for failure, null for success. Update callers.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Likewise.
* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
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.
* 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/lowlevellock.h: Mark asms as
volatile and add memory clobbers to lock operations.
* 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 Marjin Ros <marjin@mad.scientist.com>.