Commit Graph

275 Commits

Author SHA1 Message Date
Ulrich Drepper
a14c918ddd (__lll_mutex_lock_wait): Replace one memory operation with one register operation. 2003-05-30 17:49:37 +00:00
Ulrich Drepper
50794a453b Update.
2003-05-30  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
	(__lll_mutex_cond_lock): Add one to value parameter of
	__lll_lock_wait to reflect reality in the futex syscall.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
	(lll_mutex_cond_lock): Likewise.
2003-05-30 16:36:18 +00:00
Ulrich Drepper
4761520e93 (lll_mutex_cond_lock): Add one to value parameter of __lll_lock_wait to reflect reality in the futex syscall. 2003-05-30 16:32:35 +00:00
Jakub Jelinek
ef276e6472 (__lll_mutex_cond_lock): New function. (lll_mutex_cond_lock): Define. 2003-05-30 13:46:04 +00:00
Ulrich Drepper
b8ba4a2741 Update.
* sysdeps/unix/sysv/linux/s390/lowlevellock.h
	(__lll_mutex_unlock_force): New function
	(lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
2003-05-30 04:53:50 +00:00
Ulrich Drepper
65d46efed2 Update.
* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
	(__lll_mutex_unlock_force): New function.
	(lll_mutex_unlock_force): Use __lll_mutex_unlock_force.

	* tst-rwlock7.c (do_test): Use correct format specifier.
2003-05-30 03:47:32 +00:00
Ulrich Drepper
284bdc42e8 Update.
2003-05-30  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/powerpc/powerpc32/elf/start.S: Make code compilable with
	SHARED.
2003-05-30 03:20:29 +00:00
Ulrich Drepper
e7c5ac68ed Update.
2003-05-29  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
	Find break parameter in correct asm argument.

2003-05-30  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
	(pthread_cond_t): Add __mutex.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
	lll_futex_requeue, lll_mutex_unlock_force): Define.
2003-05-30 03:04:29 +00:00
Ulrich Drepper
ea2630c632 Update.
2003-05-28  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
        Add __mutex field.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
	Define.
	(lll_futex_wait, lll_futex_wake): Define.
	* sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
	FUTEX_REQUEUE instead of FUTEX_WAIT.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
	mutex which was used in condvar structure.  Call
	__pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.

	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
	include tcb-offsets.h.  Read wakeup value in locked region.
	Use the value of gbr register as THREAD_ID.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.

	* sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
	macros.
2003-05-29 05:38:43 +00:00
Ulrich Drepper
7661d9f783 Update.
2003-05-26  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
	typo in register name.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
	correctly.  Actually use requeue.  Little optimization.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
	mutex address early.  Handle cancellation state as 32-bit value.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
	Remove unnecessary label.
2003-05-27 04:24:31 +00:00
Ulrich Drepper
91ceedb37f Fix typo in register name. 2003-05-27 04:19:58 +00:00
Ulrich Drepper
69431c9a21 Update.
2003-05-25  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/kernel-features.h: Define
	__ASSUME_FUTEX_REQUEUE for >= 2.5.70.

	* math/test-fenv.c (feexcp_nomask_test): Fix comment.
2003-05-26 02:47:39 +00:00
Roland McGrath
3e335bbc32 2003-05-16 Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
	uninitialized variable braino.
2003-05-17 00:59:09 +00:00
Ulrich Drepper
23ae645174 Update.
* include/features.h (__USE_XOPEN2K): Define also for
	_POSIX_C_SOURCE>=200112L.
2003-05-17 00:38:41 +00:00
Ulrich Drepper
7158eae4a8 Update.
2003-05-12  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/powerpc/bits/atomic.h
	(__arch_compare_and_exchange_bool_8_rel): Define.
	(__arch_compare_and_exchange_bool_16_rel): Define.
	(__ARCH_REL_INSTR): Define if not already defined.
	(__arch_atomic_exchange_and_add_32): Add "memory" to clobber list.
	(__arch_atomic_decrement_if_positive_32):
	Add "memory" to clobber list.
	(__arch_compare_and_exchange_val_32_acq): Remove release sync.
	(__arch_compare_and_exchange_val_32_rel): Define.
	(__arch_atomic_exchange_32): Remove.
	(__arch_atomic_exchange_32_acq): Define.
	(__arch_atomic_exchange_32_rel): Define.
	(atomic_compare_and_exchange_val_rel): Define.
	(atomic_exchange_acq): Use __arch_atomic_exchange_*_acq forms.
	(atomic_exchange_rel): Define.
	* sysdeps/powerpc/powerpc32/bits/atomic.h
	(__arch_compare_and_exchange_bool_32_acq): Remove release sync.
	(__arch_compare_and_exchange_bool_32_rel): Define.
	(__arch_compare_and_exchange_bool_64_rel): Define.
	(__arch_compare_and_exchange_val_64_rel): Define.
	(__arch_atomic_exchange_64): Remove.
	(__arch_atomic_exchange_64_acq): Define.
	(__arch_atomic_exchange_64_rel): Define.
	* sysdeps/powerpc/powerpc64/bits/atomic.h
	(__arch_compare_and_exchange_bool_32_rel): Define.
	(__arch_compare_and_exchange_bool_64_acq): Remove release sync.
	(__arch_compare_and_exchange_bool_64_rel): Define.
	(__arch_compare_and_exchange_val_64_acq): Remove release sync.
	(__arch_compare_and_exchange_val_64_rel): Define.
	(__arch_atomic_exchange_64): Remove.
	(__arch_atomic_exchange_64_acq): Define.
	(__arch_atomic_exchange_64_rel): Define.
	(__arch_atomic_exchange_and_add_64): Add "memory" to clobber list.
	(__arch_atomic_decrement_if_positive_64):
	Add "memory" to clobber list.
	[!UP](__ARCH_REL_INSTR): Define as lwsync.

	the space-padded-by-default conversion specifiers, %e, %k, %l.
2003-05-13 21:14:28 +00:00
Ulrich Drepper
a3f979a79e Update.
2003-05-10  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
	related macros.
	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
2003-05-10 20:38:31 +00:00
Ulrich Drepper
949ec76407 Update.
* posix/sched.h: Change prototypes of sched_getaffinity and
	sched_setaffinity.  Define CPU_SET, CPU_CLR, CPU_ISSET, and CPU_ZERO.
	* sysdeps/generic/sched_getaffinity.c: Adjust definition.
	* sysdeps/generic/sched_setaffinity.c: Likewise.
	* sysdeps/generic/bits/sched.h: Define __CPU_SETSIZE, __NCPUBITS,
	__CPUELT, __CPUMASK, cpu_set_t, __cpu_mask, __CPU_ZERO, __CPU_SET,
	__CPU_CLR, and __CPU_ISSET.
	* sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
	* sysdeps/unix/sysv/linux/sched_getaffinity.c: New file.
	* sysdeps/unix/sysv/linux/sched_setaffinity.c: New file.

	* include/atomic.h (atomic_exchange_acq): Renamed from atomic_exchange.
	(atomic_exchange_rel): New #define.
	* sysdeps/ia64/bits/atomic.h: Likewise.
	* sysdeps/i386/i486/bits/atomic.h (atomic_exchange_acq): Renamed from
	atomic_exchange.
	* sysdeps/m68k/m68020/bits/atomic.h: Likewise.
	* sysdeps/powerpc/bits/atomic.h: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/bits/atomic.h: Likewise.
	* sysdeps/sparc/sparc64/bits/atomic.h: Likewise.
	* sysdeps/x86_64/bits/atomic.h: Likewise.
	* csu/tst-atomic.c: Use atomic_exchange_acq instead of atomic_exchange.
2003-05-10 05:36:37 +00:00
Ulrich Drepper
880867a475 Update.
2003-05-09  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c: New file.
2003-05-09 07:53:33 +00:00
Ulrich Drepper
92d83c725e Update.
2003-05-08  Ulrich Drepper  <drepper@redhat.com>

	* malloc/thread-m.h: Remove special handling of thread_atfork if
	HAVE_register_atfork_malloc is defined.
2003-05-09 03:17:42 +00:00
Ulrich Drepper
7da168bf21 Update.
2003-05-02  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
	(pthread_condattr_t): Size is only an int, don't use long for
	alignment.
	(pthread_mutexattr_t): Likewise.
	(pthread_barrierattr_t): Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2003-05-03 05:05:57 +00:00
Ulrich Drepper
a234e27dba Update.
2003-05-01  Ulrich Drepper  <drepper@redhat.com>

	* malloc/malloc.c (mSTATs): Call ptmalloc_init if necessary.

2003-04-29  Andreas Schwab  <schwab@suse.de>

	* string/test-strcat.c (do_one_test): Fix attribute name.
2003-05-01 07:38:32 +00:00
Ulrich Drepper
69278ade4a (__SIZEOF_PTHREAD_COND_T): Define to 48. (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags. 2003-05-01 07:12:52 +00:00
Ulrich Drepper
468777e1d0 Update.
* pthread.c (__pthread_initialize_manager): Subtract
	TLS_PRE_TCB_SIZE bytes from tcbp to get to descr.
	* manager.c (pthread_handle_create): Subtract or add TLS_PRE_TCB_SIZE
	instead of sizeof (pthread_descr).
	(pthread_free): Add TLS_PRE_TCB_SIZE instead of sizeof (pthread_descr).
	* sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define to 0.
2003-04-25 22:28:13 +00:00
Ulrich Drepper
299601a1ef Update.
2003-04-22  Jakub Jelinek  <jakub@redhat.com>

	* include/link.h (NO_TLS_OFFSET): Define to 0 if not defined.
	* elf/dl-close.c (_dl_close): Use NO_TLS_OFFSET.
	* elf/dl-object.c (_dl_new_object): Initialize l_tls_offset to
	NO_TLS_OFFSET.
	* elf/rtld.c (_dl_start_final, _dl_start): Likewise.
	* elf/dl-reloc.c (CHECK_STATIC_TLS): Use NO_TLS_OFFSET.
	* sysdeps/generic/dl-tls.c (_dl_allocate_tls_init): Likewise.
	* sysdeps/powerpc/dl-tls.h (TLS_TPREL_VALUE): Don't subtract
	TLS_TCB_SIZE.
2003-04-25 09:12:43 +00:00
Ulrich Drepper
e7608d7789 Update.
2003-04-21  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/sigprocmask.c: Prevent changing mask for
	SIGCANCEL.
	* sysdeps/unix/sysv/linux/alpha/bits/siginfo.h: Define SI_TKILL.
	* sysdeps/unix/sysv/linux/bits/siginfo.h: Define SI_TKILL.
	* sysdeps/unix/sysv/linux/ia64/bits/siginfo.h: Define SI_TKILL.
	* sysdeps/unix/sysv/linux/s390/bits/siginfo.h: Define SI_TKILL.
	* sysdeps/unix/sysv/linux/sparc/bits/siginfo.h: Define SI_TKILL.

	first syscall parameter to const char*.
2003-04-21 07:39:20 +00:00
Ulrich Drepper
58a7a3257f Update.
* configure.in: Add AC_PROG_CXX.
	* config.make.in (CXX): Define.
2003-04-19 20:15:36 +00:00
Ulrich Drepper
4e648ea3ad Update.
* stdlib/cxa_finalize.c (__cxa_finalize): Don't call
	UNREGISTER_ATFORK if d == NULL.
2003-04-19 18:26:10 +00:00
Ulrich Drepper
18ddd3aa66 Update.
* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
2003-04-14 21:55:10 +00:00
Ulrich Drepper
359091616d Update.
2003-04-14  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Don't
	overflow CFA advance instructions.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
2003-04-14 21:38:45 +00:00
Ulrich Drepper
18a8e730da Update.
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-14 16:43:20 +00:00
Ulrich Drepper
11cb564e58 Use DW_CFA_advance_loc2 for .Laddl-.Lsubl. 2003-04-14 16:42:09 +00:00
Ulrich Drepper
39a46c42f5 Update.
2003-04-14  Ulrich Drepper  <drepper@redhat.com>

	* string/strxfrm.c (STRXFRM): Terminate rulearr at correct
	position.  Reported by jreiser@BitWagon.com.
2003-04-14 07:03:40 +00:00
Ulrich Drepper
4ae7142df2 Add missing unwind info. Add comments. 2003-04-14 02:52:46 +00:00
Ulrich Drepper
ad2be8527a Update.
* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2003-04-13 08:36:19 +00:00
Ulrich Drepper
08c765fa6e Update.
2003-04-13  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Add
	unwind info.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.

	* Makefile: Make sure all cancellation points are compiled with
	exception and asynchronous unwind tables.
2003-04-13 08:04:46 +00:00
Ulrich Drepper
177d1ad3ac Update.
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-12 20:32:01 +00:00
Ulrich Drepper
68107ec092 Update.
* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
2003-04-12 08:38:14 +00:00
Ulrich Drepper
09d65ff393 Update.
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-12 00:58:26 +00:00
Ulrich Drepper
88ff4759ac Update.
2003-04-10  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
	in child.
2003-04-10 16:46:27 +00:00
Ulrich Drepper
54e0138f7f Update.
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.
2003-04-05 09:36:56 +00:00
Ulrich Drepper
211d90c524 Update.
* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
	Use atomic_exchange_and_add instead of __lll_add.
	(__lll_mutex_timedlock): Likewise.
	Patch by Ian Wienand.

2003-03-24  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
	(SINGLE_THREAD_P): Fix typo.
	* tst-cancel-wrappers.sh: Handle '.'ed symbols.

2003-03-31  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Add tst-align.
	* tst-align.c: New file.
	* sysdeps/i386/Makefile: Define CFLAGS-tst-align.
	* sysdeps/x86_64/Makefile: Likewise.

	* tst-tsd2.c: Add casts to avoid warnings.
2003-04-01 01:24:00 +00:00
Ulrich Drepper
dd731d53dc Update.
2003-03-28  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/sh/bits/atomic.h (__arch_compare_and_exchange_val_8_acq):
	Return old value. Make asm output reg constraint earlyclobber.
	Renamed from...
	(__arch_compare_and_exchange_8_acq): ... this.
	(__arch_compare_and_exchange_val_16_acq):
	Return old value. Make asm output reg constraint earlyclobber.
	Renamed from...
	(__arch_compare_and_exchange_16_acq): ... this.
	(__arch_compare_and_exchange_val_32_acq):
	Return old value. Make asm output reg constraint earlyclobber.
	Renamed from...
	(__arch_compare_and_exchange_32_acq): ... this.
	(__arch_compare_and_exchange_val_64_acq):
	Renamed from...
	(__arch_compare_and_exchange_64_acq): ... this.
	(atomic_exchange_and_add): Use local variables and
	__arch_compare_and_exchange_val_64_acq.
	(atomic_add): Likewise.
	(atomic_add_negative, atomic_add_zero): Use local variables.

	* Makefile: Remove libmd5crypt goal.
2003-03-29 01:24:20 +00:00
Ulrich Drepper
5f5004df21 Update.
* 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-28 06:27:21 +00:00
Ulrich Drepper
f07d234541 Don't declare __timer_helper_thread. Declare __start_helper_thread, __helper_once, and __helper_tid. (struct timer): Remove th and bar field. 2003-03-28 06:22:13 +00:00
Ulrich Drepper
28cf305854 Update.
2003-03-27  David Mosberger  <davidm@hpl.hp.com>

	* sysdeps/unix/sysv/linux/ia64/getcontext.S: Restore caller's
	ar.unat before returning.  Add missing .mem.offset directives
	to ensure file gets assembled without warnings.
	* sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise.
2003-03-27 19:51:26 +00:00
Ulrich Drepper
c75d02f056 Update.
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-27 19:10:51 +00:00
Jakub Jelinek
2ec5130254 Fix offset of cleanupbuf.__prev. 2003-03-27 12:43:08 +00:00
Jakub Jelinek
0f6918e293 Fix typo in name of included file. 2003-03-26 15:33:14 +00:00
Ulrich Drepper
f064e4c5d7 Update.
2003-03-26  Ulrich Drepper  <drepper@redhat.com>

	* abilist/librt.abilist: Add new timer interfaces for 64-bit archs.
2003-03-26 09:41:23 +00:00
Ulrich Drepper
09402f5bc1 Update.
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.
2003-03-25 20:41:26 +00:00
Roland McGrath
4baa087aff * sysdeps/i386/i486/bits/atomic.h (atomic_bit_set): Use "ir"
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.
2003-03-22 00:07:21 +00:00
Ulrich Drepper
9f07eae298 Update.
2003-03-20  Ulrich Drepper  <drepper@redhat.com>

	* include/atomic.h: Define atomic_compare_and_exchange_val_acq,
	atomic_compare_and_exchange_val_rel,
	atomic_compare_and_exchange_bool_acq, and
	atomic_compare_and_exchange_bool_rel instead of
	atomic_compare_and_exchange_acq and atomic_compare_and_exchange_rel.
	* sysdeps/i386/i486/bits/atomic.h: Define
	__arch_compare_and_exchange_val_*_acq instead of
	__arch_compare_and_exchange_*_acq.
	* sysdeps/x86_64/bits/atomic.h: Likewise.
	* sysdeps/ia64/bits/atomic.h: Define
	__arch_compare_and_exchange_bool_*_acq instead of
	__arch_compare_and_exchange_*_acq.
	* sysdeps/powerpc/bits/atomic.h: Likewise.
	* sysdeps/s390/bits/atomic.h: Likewise.
	* gmon/mcount.c: Adjust for new form of compare&exchange macros.
	* malloc/set-freeres.c: Likewise.
	* nscd/cache.c: Likewise.
	* stdlib/cxa_finalize.c: Likewise.
	* sysdeps/unix/sysv/linux/getsysstats.c: Likewise.
2003-03-21 08:13:51 +00:00
Ulrich Drepper
b1aea0989d Update.
2003-03-20  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
	Remove __lll_add, __lll_dev_if_positive, and __lll_test_and_set
	definitions.  Replace uses with calls to atomic_* functions.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
	__lll_test_and_set calls with atomic_exchange_and_add and
	atomic_exchange calls respectively.
	* sysdeps/unix/sysv/linux/sem_post.c: Likewise.
	* sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
	* sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
	* sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.

	* allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
	returns the old value.
2003-03-20 10:29:20 +00:00
Ulrich Drepper
9daba4f4b9 Replace __lll_add calls with atomic_exchange_and_add calls respectively. 2003-03-20 10:28:06 +00:00
Ulrich Drepper
7793bf7fd7 Replace __lll_add and __lll_test_and_set calls with atomic_exchange_and_add and atomic_exchange call respectively. 2003-03-20 10:23:47 +00:00
Roland McGrath
100a7100a7 * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
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.
2003-03-20 09:51:17 +00:00
Ulrich Drepper
560a784f03 Update.
2003-03-19  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/Makefile: Fix cut&paste error.
2003-03-19 19:15:36 +00:00
Roland McGrath
ca341eb2bd (__lll_test_and_set): Fix typos. 2003-03-19 09:08:47 +00:00
Roland McGrath
9465949559 * abilist: New directory of libfoo.abilist files maintained using
scripts/merge-abilist.awk and "make update-abi" rules.
	* Makefile (distribute): Add abilist/*.abilist.
	* Makerules [$(build-shared) = yes] [$(subdir)] (tests):
	Depend on check-abi.
2003-03-19 08:27:55 +00:00
Roland McGrath
043ad426e7 * Versions (libpthread: GLIBC_2.2): Remove
pthread_barrierattr_getpshared, never really existed.
	(libpthread: GLIBC_2.0): Move __pthread_initialize to ...
	(libpthread: GLIBC_PRIVATE): ... here.
2003-03-19 03:34:48 +00:00
Ulrich Drepper
00bd9cc9ab Remove unnecessary instruction in case clock_gettime isn't available. 2003-03-19 02:27:27 +00:00
Ulrich Drepper
ee2af3e835 Reorder struct passed to cleanup handler to eliminate one more instruction. 2003-03-18 22:20:54 +00:00
Ulrich Drepper
24a49f38ad Update.
* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
	(pthrad_cond_t): Replace __unused field with __clock.

	* sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
	waken all waiters in cleanup handler.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2003-03-18 18:56:16 +00:00
Ulrich Drepper
86a9ee5e87 Update.
2003-03-18  Ulrich Drepper  <drepper@redhat.com>

	* pthread_condattr_getclock.c: New file.
	* pthread_condattr_setclock.c: New file.
	* sysdeps/pthread/pthread.h: Declare these new functions.
	* Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
	* Makefile (libpthread-routines): Add the new functions.
	* sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
	Renamed field to value.  Document use of the bits.
	* pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
	change.
	* pthread_condattr_setpshared.c: Likewise.
	* sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
	Add __clock field.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
	Implement clock selection.
	* sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
	* pthread-errnos.sym: Add ENOSYS.
	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
	_POSIX_CLOCK_SELECTION.
	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
	invalid .size directive.
2003-03-18 11:17:57 +00:00
Ulrich Drepper
4773086e04 Update.
* 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.
2003-03-18 05:31:53 +00:00
Ulrich Drepper
970269474a Update.
2003-03-17  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/generic/libc-start.c [!SHARED &&
	!LIBC_START_MAIN_AUXVEC_ARG]: Compute beginning of auxvec correctly.
2003-03-18 01:56:11 +00:00
Ulrich Drepper
09044a7360 pthread_spin_unlock implementation for Linux/i386. 2003-03-18 01:52:02 +00:00
Roland McGrath
5bfd37b634 2003-03-17 Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
	Formatting tweaks.
2003-03-18 01:21:42 +00:00
Ulrich Drepper
f911cc4a74 (lll_unlock_wake_cb): Correct last patch. (__lll_timedwait_tid): Don't check abstime for NULL pointer. 2003-03-18 00:50:30 +00:00
Ulrich Drepper
bd0fa4cefd Add __builtin_expect where appropriate. 2003-03-18 00:31:30 +00:00
Roland McGrath
de4471dd55 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/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.
2003-03-17 11:25:18 +00:00
Roland McGrath
f3c13160fe 2003-03-17 Roland McGrath <roland@redhat.com>
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 11:22:52 +00:00
Ulrich Drepper
46a32546c9 Update.
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-17 10:11:31 +00:00
Ulrich Drepper
fb2ee178fa Load correct registers. 2003-03-17 04:49:21 +00:00
Ulrich Drepper
25d025ce77 (__lll_lock_wait): Remove jump prediction suffix. 2003-03-17 01:53:39 +00:00
Ulrich Drepper
b6e2f87a61 Update.
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.
2003-03-16 10:16:43 +00:00
Ulrich Drepper
51d0678c29 Update.
2003-03-16  Ulrich Drepper  <drepper@redhat.com>

	* tst-rwlock6.c: Add some more status output.
2003-03-16 08:09:26 +00:00
Ulrich Drepper
ad032aee17 Really use R12 and r13. 2003-03-16 03:49:51 +00:00
Ulrich Drepper
7abed17041 More random patches. 2003-03-15 21:46:30 +00:00
Jakub Jelinek
eec0ca9f25 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
(SINGLE_THREAD): Use `header' prefix instead of `header.data'.
	* sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
	* sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
	Use `header.' prefix.
	* sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
2003-03-15 11:44:47 +00:00
Jakub Jelinek
1419a9581c (SINGLE_THREAD): Use header' prefix instead of header.data'. 2003-03-15 11:43:02 +00:00
Ulrich Drepper
979f5c31de Use 64-bit loading. 2003-03-15 09:59:21 +00:00
Ulrich Drepper
a87731e262 Update.
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.
2003-03-15 09:51:22 +00:00
Ulrich Drepper
92ed3daf01 Update.
* tst-basic1.c (do_test): Add cast to avoid warning.
	* tst-basic2.c (do_test): Likewise.
2003-03-15 07:54:39 +00:00
Ulrich Drepper
8b4a0b2f78 Use correct amount of stack correction. 2003-03-14 23:46:29 +00:00
Roland McGrath
55c11fbdb0 2003-03-14 Roland McGrath <roland@redhat.com>
* 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-14 22:34:02 +00:00
Roland McGrath
6461e57784 * elf/Makefile ($(objpfx)librtld.mk): Tweak regexp so that one-line
entries in the map file match too.
2003-03-13 21:51:07 +00:00
Roland McGrath
0579fabbe8 2003-03-13 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
	PPID if [! NDEBUG].
2003-03-13 21:00:18 +00:00
Ulrich Drepper
b5ec56172d Update.
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.
2003-03-13 04:41:39 +00:00
Ulrich Drepper
7588880f50 Update.
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
	libc_multiple_threads.
	* sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
	__libc_multiple_threads to...
	* sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here.  New file.

	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
	versioning.
	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.

	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S
	(__pthread_once_internal): Define.

	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
	macros instead of .symver directly.
	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
2003-03-13 01:51:12 +00:00
Ulrich Drepper
959c5bbfee Use shlib-compat.h macros instead of .symver directly. 2003-03-13 01:06:30 +00:00
Ulrich Drepper
d0369fb8a9 Update.
2003-03-12  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
	* sysdeps/x86_64/tcb-offsets.sym: New file.
	* sysdeps/x86_64/Makefile: New file.

	* sysdeps/i386/tcb-offsets.sym: Add SELF.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
	to access own pthread_t in TCB.
	* 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_wrlock.S: Likewise.

	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
	file.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
	file.

	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
	(pthread_cond_t): Add padding.
2003-03-12 20:03:07 +00:00
Ulrich Drepper
6aebe7340d (pthread_cond_t): Add padding. 2003-03-12 18:44:29 +00:00
Roland McGrath
0bb2ac85a6 * pthread-errnos.sym: New file.
* Makefile (gen-as-const-headers): New variable, list that file.
	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
	header <pthread-errnos.h> instead of defining errno values here.
	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
	* sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
	* sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
	* sysdeps/sh/pthread_spin_trylock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.

	* sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
	CLONE_CHILD_SETTID worked.
2003-03-12 10:30:26 +00:00
Roland McGrath
326132dbdb 2003-03-12 Roland McGrath <roland@redhat.com>
* pthread-errnos.sym: New file.
	* Makefile (gen-as-const-headers): New variable, list that file.
	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
	header <pthread-errnos.h> instead of defining errno values here.
	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
	* sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
	* sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
	* sysdeps/sh/pthread_spin_trylock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
2003-03-12 10:28:07 +00:00
Ulrich Drepper
da49194d2d Update.
* 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-12 09:53:44 +00:00
Ulrich Drepper
35e148cb96 Update.
2003-03-12  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
	(__pthread_rwlock_timedwrlock): Add missing opcode suffix.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
	(__pthread_rwlock_timedrdlock): Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
	(__pthread_rwlock_wrlock): Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
	(__pthread_rwlock_rdlock): Likewise.

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.

	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
	result of lock re-get if it fails.
2003-03-12 08:57:35 +00:00
Ulrich Drepper
a3cd7da30f Return result of lock re-get if it fails. 2003-03-12 08:41:10 +00:00
Ulrich Drepper
5a03acfe37 Update.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.

	* sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
	THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.

	* allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
	Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
	* sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
	(create_thread): Likewise.
	Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
	* init.c (__pthread_initialize_minimal_internal): Initialize
	__libc_multiple_threads_ptr if necessary.
	* pthreadP.h: Adjust prototype for __libc_pthread_init.  Declare
	__pthread_multiple_threads and __libc_multiple_threads_ptr.
	* sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
	__libc_multiple_threads.
	(__libc_pthread_init): Return pointer to __libc_pthread_init if
	necessary.

	* sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
	(THREAD_SETMEM_NC): Likewise.

	* sysdeps/x86_64/pthread_spin_trylock.c: Removed.
	* sysdeps/x86_64/pthread_spin_trylock.S: New file.
	* sysdeps/x86_64/pthread_spin_unlock.c: Removed.
	* sysdeps/x86_64/pthread_spin_unlock.S: New file.

	* sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
	Eliminate one entire instruction.
2003-03-12 05:45:00 +00:00
Ulrich Drepper
32a589b1ea Update.
* cancellation.c (__pthread_enable_asynccancel_2): New function.
	* pthreadP.h: Declare __pthread_enable_asynccancel_2.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
	(__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
	instead of __pthread_enable_asynccancel.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
	(__pthread_cond_wait): Likewise.
	* sysdeps/pthread/pthread_cond_timedwait.c
	(__pthread_cond_timedwait): Likewise.
	* sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
2003-03-11 23:26:35 +00:00