Commit Graph

26 Commits

Author SHA1 Message Date
Ulrich Drepper fa6e3bc38a * sysdeps/powerpc/bits/atomic.h
[!MUTEX_HINT_ACQ]: Define MUTEX_HINT_ACQ.
	[!MUTEX_HINT_REL]: Define MUTEX_HINT_REL.
	(__arch_compare_and_exchange_val_32_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_compare_and_exchange_val_32_rel): Add MUTEX_HINT_REL to lwarx.
	(__arch_atomic_exchange_val_32_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_atomic_exchange_rel_32_rel): Add MUTEX_HINT_REL to lwarx.
	* sysdeps/powerpc/powerpc32/bits/atomic.h [_ARCH_PWR6 || _ARCH_PWR6X]:
	Define MUTEX_HINT_ACQ as ",1" and MUTEX_HINT_REL as ",0".
	(__arch_compare_and_exchange_bool_32_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_compare_and_exchange_bool_32_rel): Add MUTEX_HINT_REL to lwarx.
	* sysdeps/powerpc/powerpc64/bits/atomic.h [_ARCH_PWR6 || _ARCH_PWR6D]:
	Define MUTEX_HINT_ACQ as ",1" and MUTEX_HINT_REL as ",0".
	(__arch_compare_and_exchange_bool_32_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_compare_and_exchange_bool_32_rel): Add MUTEX_HINT_REL to lwarx.
	(__arch_compare_and_exchange_bool_64_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_compare_and_exchange_bool_64_rel): Add MUTEX_HINT_REL to lwarx.
	(__arch_compare_and_exchange_val_64_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_compare_and_exchange_val_64_rel): Add MUTEX_HINT_REL to lwarx.
	(__arch_atomic_exchange_val_64_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_atomic_exchange_rel_64_rel): Add MUTEX_HINT_REL to lwarx.

2007-03-20  Jakub Jelinek  <jakub@redhat.com>
2007-03-26 20:16:39 +00:00
Ulrich Drepper d5ba53f907 * sysdeps/unix/sysv/linux/kernel-features.h: Define
__ASSUME_FUTEX_LOCK_PI.
	* include/time.h: Declare __nanosleep_nocancel.
	* include/unistd.h: Declare __pause_nocancel.
2006-07-29 05:07:43 +00:00
Roland McGrath f9d35bb91e [BZ #2505]
2006-04-03  Steven Munroe  <sjmunroe@us.ibm.com>
	[BZ #2505]
	* sysdeps/powerpc/powerpc32/bits/atomic.h [_ARCH_PWR4]:
	Define atomic_read_barrier and __ARCH_REL_INSTR using lwsync.
2006-04-04 08:18:56 +00:00
Ulrich Drepper f1740bc4e3 * include/atomic.h (atomic_and, atomic_or): Define. 2006-02-17 18:52:09 +00:00
Ulrich Drepper b9b8cf0366 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define. (lll_futex_wake_unlock): Define. 2005-09-08 17:39:07 +00:00
Roland McGrath 5e58ba77c8 pasto in license text 2005-05-05 22:19:51 +00:00
Ulrich Drepper a334319f65 (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. 2004-12-22 20:10:10 +00:00
Jakub Jelinek 0ecb606cb6 2.5-18.1 2007-07-12 18:26:36 +00:00
Ulrich Drepper ce6e047fbb Update.
2004-07-05  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-init.c: Don't define and use _dl_starting_up if
	HAVE_INLINED_SYSCALLS is defined and the variable is not used.
	* elf/dl-support.c: Likewise.
	* elf/rtld.c: Likewise.
	* elf/dl-misc.c (_dl_debug_vdprintf): Use writev syscall directly
	if HAVE_INLINED_SYSCALLS is defined.
	* sysdeps/powerpc/powerpc64/dl-machine.h: Don't rest _dl_starting_up
	here.
	* sysdeps/powerpc/powerpc32/dl-start.S: Likewise.
	* sysdeps/unix/sysv/linux/configure.in: Define HAVE_INLINED_SYSCALLS.
	* config.h.in: Add entry for HAVE_INLINED_SYSCALLS.

	* sysdeps/posix/profil.c: If compiled for ld.so, omit code which
	is needed to stop profiling.
	* elf/dl-open.c (dl_open_worker): If a newly opened object is to be
	profile make sure it cannot be unloaded.

	* sysdeps/unix/sysv/linux/dl-origin.c: Inline readlink syscall.

	* sysdeps/unix/sysv/linux/fcntl.c: If compiled without cancellation
	support, make sure the helper function is inlined.
	* sysdeps/unix/sysv/linux/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c: Likewise.
2004-07-06 04:26:42 +00:00
Ulrich Drepper 75fcceded2 Update.
2004-06-03  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/i386/i486/bits/atomic.h: Optimize a bit.
2004-06-03 16:04:11 +00:00
Ulrich Drepper 4e73e1151d Update.
* string/test-ffs.c: Also test ffsl and ffsll.

	* sysdeps/powerpc/ffs.c: Don't define ffsl for ppc64.
2004-04-04 05:53:24 +00:00
Ulrich Drepper 68dc4dcbdd Update.
2004-03-24  Ulrich Drepper  <drepper@redhat.com>

	* stdio-common/vfscanf.c [!COMPILE_WSCANF] (TOLOWER): Cast first
	parameter to unsigned char.
	* sysdeps/generic/strcasestr.c [_LIBC] (TOLOWER): Likewise.
2004-03-24 23:53:39 +00:00
Ulrich Drepper 2c0b891afe Update.
* sysdeps/unix/sysv/linux/smp.h: New file.
	* sysdeps/unix/sysv/linux/sh/smp.h: New file.
	* init.c: Define __is_smp.
	(__pthread_initialize_minimal_internal): Call is_smp_system to
	initialize __is_smp.
	* pthreadP.h: Declare __is_smp.
	Define MAX_ADAPTIVE_COUNT is necessary.
	* pthread_mutex_init.c: Add comment regarding __spins field.
	* pthread_mutex_lock.c: Implement adaptive mutex type.
	* pthread_mutex_timedlock.c: Likewise.
	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
	Add __spins field.
	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
	lll_mutex_cond_trylock.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
	Define BUSY_WAIT_NOP.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.

	* tst-mutex5.c: Add support for testing adaptive mutexes.
	* tst-mutex7.c: Likewise.
	* tst-mutex5a.c: New file.
	* tst-mutex7a.c: New file.
	* Makefile (tests): Add tst-mutex5a and tst-mutex7a.
2004-03-24 06:36:06 +00:00
Ulrich Drepper 39358e8b2b Update.
2003-09-22  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
	lll_futex_timed_wait instead of lll_futex_wait.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
	* sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
	* sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
	* sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
	* sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
	* sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
	* sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
	* sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
	Completely revamp the locking macros.  No distinction between
	normal and mutex locking anymore.
	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
	__lll_lock_timedwait): Fix prototypes.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
	__lll_lock_timedwait): Likewise.
	(lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
	macros, add __builtin_expect.
	(lll_mutex_timedlock): Likewise.  Fix return value.
	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
	* sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
	* sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
	* sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
	* sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
	* sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
	* sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
	* sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
2003-09-22 21:30:25 +00:00
Ulrich Drepper bc1989aad2 Update.
* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
	* sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
2003-09-22 05:45:50 +00:00
Ulrich Drepper 13b3edfc73 Update.
2003-08-26  Steven Munroe <sjmunroe@us.ibm.com>

	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
	(lll_mutex_unlock_force): Add memory barrier between store and futex
	syscall.
2003-08-26 20:29:48 +00:00
Ulrich Drepper 9bdabb94da Update.
2003-06-19  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
	* sysdeps/unix/sysv/linux/sem_post.c: ...here.

	* sysdeps/unix/sysv/linux/sem_post.c: Move to...
	* sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here.  Pass nr + 1
	instead of nr to lll_futex_wake.  Only set errno and return -1
	if err < 0.

	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
	lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
	return actual return value from the syscall, not 0.

	compat_timer_getoverrun.
2003-06-19 19:53:12 +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
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 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 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
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 bd0fa4cefd Add __builtin_expect where appropriate. 2003-03-18 00:31:30 +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