2010-01-15  Ulrich Drepper  <drepper@redhat.com>

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

2010-01-15  Michal Schmidt  <mschmidt@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
	Fix pthread_cond_timedwait with requeue-PI.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
	Fix pthread_cond_wait with requeue-PI.

2010-01-14  Ulrich Drepper  <drepper@redhat.com>

	* Versions: Add pthread_mutex_consistent, pthread_mutexattr_getrobust,
	and pthread_mutexattr_setrobust for GLIBC_2.12.
	* pthread_mutex_consistent.c: Define alias pthread_mutex_consistent.
	* pthread_mutexattr_getrobust.c: Define alias
	pthread_mutexattr_getrobust.
	* pthread_mutexattr_setrobust.c: Define alias
	pthread_mutexattr_setrobust.

2010-01-12  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/pthread.h: Cleanup.  Fix up for XPG7.

2010-01-08  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/pthread.h: Fix pthread_mutex_consistent declaration.

2009-12-18  Thomas Schwinge  <thomas@codesourcery.com>

	* sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c (_init): Don't
	call __gmon_start__.
	* sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c (_init): Likewise.

2009-12-17  Ulrich Drepper  <drepper@redhat.com>

	* pthread_rwlock_init.c (__pthread_rwlock_init): Simplify code by
	using memset.

2009-12-01  Dinakar Guniguntala  <dino@in.ibm.com>

	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.h: Define
	FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: If mutex
	is a non robust PI mutex, then use FUTEX_CMP_REQUEUE_PI.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: If mutex
	is a non robust PI mutex, then use FUTEX_WAIT_REQUEUE_PI.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.

2009-12-12  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
	Don't update nwaiters after invalid timeout is recognized.

2009-11-27  Thomas Schwinge  <thomas@codesourcery.com>

	* sysdeps/unix/sysv/linux/sh/pt-initfini.c (_init): Don't call
	__gmon_start__.

2009-11-27  Andreas Schwab  <schwab@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/cancellation.S: Reload
	THREAD_SELF->cancelhandling after returning from futex call.

2009-11-24  Ulrich Drepper  <drepper@redhat.com>

	* tst-sem13.c: New file.
	* Makefile (tests): Add tst-sem13.

2009-11-22  Roland McGrath  <roland@redhat.com>

	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: # include "i686/dl-sysdep.h"
	instead of recapitulating its contents.

2009-11-18  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Minor
	optimizations and cleanups.

2009-11-18  Dinakar Guniguntala  <dino@in.ibm.com>

	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
	Remove redundant code. Fix cfi offsets.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
	Fix cfi offsets.

2009-11-17  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Minimally
	reduce size of unwind info.

	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Convert to use
	cfi directives.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
	Based on a patch by Dinakar Guniguntala <dino@in.ibm.com>.

2009-11-03  Andreas Schwab  <schwab@linux-m68k.org>

	[BZ #4457]
	* sysdeps/pthread/unwind-resume.c: Include <libgcc_s.h> and use
	LIBGCC_S_SO.
	* sysdeps/pthread/unwind-forcedunwind.c: Likewise.

2009-10-30  Ulrich Drepper  <drepper@redhat.com>

	* tst-sem11.c (main): Rewrite to avoid aliasing problems.

	[BZ #3270]
	* allocatestack.c (__nptl_setxid): Perform the operation in multiple
	steps to avoid races with creation and terminations.
	* nptl-init.c (sighandler_setxid): Adjust.
	Patch by Daniel Jacobowitz.

2009-09-07  Andreas Schwab  <schwab@redhat.com>

	* sysdeps/pthread/bits/libc-lock.h (BP_SYM): Remove space before paren.

2009-09-02  Suzuki K P  <suzuki@in.ibm.com>
	    Joseph Myers  <joseph@codesourcery.com>

	[BZ #7094]
	* sysdeps/unix/sysv/linux/timer_create.c (timer_create):
	Initialize the sigev_notify field for newly created timer to make sure
	the timer gets deleted from the active timer's list upon timer_delete.

2009-08-27  Andrew Stubbs  <ams@codesourcery.com>

	* sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
	Correct a logic error.

2009-08-25  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/x86_64/tls.h (RTLD_ENABLE_FOREIGN_CALL): Store old value
	of the field in local variables.
	(RTLD_FINALIZE_FOREIGN_CALL): Restore rtld_must_xmm_save from local
	variable and don't unconditionally clear it.

2009-08-24  Ulrich Drepper  <drepper@redhat.com>

	* pthread_create.c (start_thread): Hint to the kernel that memory for
	the stack can be reused.  We do not mark all the memory.  The part
	still in use and some reserve are kept.

2009-08-23  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Clean up namespace.

2009-08-11  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Add CFI
	directives.

2009-08-10  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Add CFI
	directives.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.

2009-08-10  Andreas Schwab  <schwab@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
	(__pthread_cond_signal): Don't clobber register used for syscall
	number.

2009-08-08  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
	Optimize code path used when FUTEX_CLOCK_REALTIME is supported.

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
	(__pthread_cond_wait): Optimize by avoiding use of callee-safe
	register.

2009-08-07  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Little optimizations
	enabled by the special *_asynccancel functions.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.

	* sysdeps/unix/sysv/linux/x86_64/cancellation.S: Include lowlevellock.h.

2009-08-04  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/cancellation.S: New file.
	* sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S: New file.
	* sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S: New file.
	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Optimize
	since we can assume the special __*_{en,dis}able_asynccancel
	functions.
	(PUSHARGS_*, POPARGS_*, SAVESTK_*, RESTSTK_*): Removed.
	* sysdeps/x86_64/tcb-offsets.sym: Add cancellation-related bits
	and PTHREAD_CANCELED.

2009-07-31  Ulrich Drepper  <drepper@redhat.com>

	* descr.h: Better definition of *_BITMASK macros for cancellation.

2009-07-29  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Define explicitly to 32.

	* sysdeps/x86_64/tls.h (tcbhead_t): Add room for SSE registers the
	dynamic linker might have to save.
	Define RTLD_CHECK_FOREIGN_CALL, RTLD_ENABLE_FOREIGN_CALL,
	RTLD_PREPARE_FOREIGN_CALL, and RTLD_FINALIZE_FOREIGN_CALL.  Pretty
	printing.

	* sysdeps/x86_64/tcb-offsets.sym: Add RTLD_SAVESPACE_SSE.

2009-07-28  Ulrich Drepper  <drepper@redhat.com>

	* pthread_mutex_lock.c [NO_INCR] (__pthread_mutex_cond_lock_adjust):
	New function.
	* pthreadP.h: Declare __pthread_mutex_cond_lock_adjust.
	* sysdeps/unix/sysv/linux/pthread-pi-defines.sym: Add ROBUST_BIT.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Don't use
	requeue_pi for robust mutexes.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
	Don't only skip __pthread_mutex_cond_lock.  Call instead
	__pthread_mutex_cond_lock_adjust.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.

	* pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Minor
	optimization of PI mutex handling.

2009-07-27  Ulrich Drepper  <drepper@redhat.com>

	[BZ #10418]
	* pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Use _rel
	instead of of _acq variants of cmpxchg.

2009-07-23  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/x86_64/configure.in: New file.

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix error
	path when not using absolute timeout futex.

2009-07-20  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Minor
	optimizations of last changes.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.

2009-07-19  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
	FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: If mutex
	is a PI mutex, then use FUTEX_CMP_REQUEUE_PI.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: If mutex
	is a PI mutex, then use FUTEX_WAIT_REQUEUE_PI.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
	(__pthread_cond_timedwait): Make more robust.

2009-07-18  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
	(__lll_robust_timedlock_wait): If possible use FUTEX_WAIT_BITSET to
	directly use absolute timeout.

	* tst-sem5.c (do_test): Add test for premature timeout.
	* Makefile: Linu tst-sem5 with librt.

	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
	(pthread_rwlock_timedwrlock): If possible use FUTEX_WAIT_BITSET to
	directly use absolute timeout.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
	(pthread_rwlock_timedrdlock): Likewise.

	* tst-cond11.c (run_test): Add test to check that the timeout is
	long enough.

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
	(__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to
	directly use absolute timeout.

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
	(__pthread_cond_wait): Convert to using exception handler instead of
	registered unwind buffer.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
	(__pthread_cond_timedwait): Likewise.

2009-07-17  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
	If possible use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME to directly
	use absolute timeout.

	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Optimize
	handling of uncontested semaphore.

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
	(__condvar_cleanup): Rewrite to use cfi directives instead of
	hand-coded unwind tables.
	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S (__pthread_once):
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
	Likewise.

2009-06-12  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (libpthread-routines): Add pthread_sigqueue.
	* Versions: Add pthread_sigqueue for GLIBC_2.11.
	* sysdeps/pthread/bits/sigthread.h: Declare pthread_sigqueue.
	* sysdeps/unix/sysv/linux/pthread_sigqueue.c: New file.

2009-06-11  Ulrich Drepper  <drepper@redhat.com>

	[BZ #10262]
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
	(LOAD_FUTEX_WAIT_ABS): Fix futex parameter in case private futexes
	cannot be assumed.
	Patch by Bryan Kadzban <bz-glibc@kdzbn.homelinux.net>.

2009-05-16  Ulrich Drepper  <drepper@redhat.com>

	* libc-cancellation.c: Move __libc_cleanup_routine to...
	* libc-cleanup.c: ...here.  New file.
	* Makefile (routines): Add libc-cleanup.

	* cancellation.c (__pthread_disable_asynccancel): Remove unnecessary
	test.
	* libc-cancellation.c: Use <nptl/cancellation.c: to define the code.
	* sysdeps/pthread/librt-cancellation.c: Likewise.

	[BZ #9924]
	* nptl-init.c: Renamed from init.c.
	* Makefile: Change all occurences of init.c to nptl-init.c.

2009-05-15  Ulrich Drepper  <drepper@redhat.com>

	* cancellation.c (__pthread_disable_asynccancel): Correct the bits
	to test when deciding on the delay.
	* libc-cancellation.c (__libc_disable_asynccancel): Likewise.
	* pthread_cancel.c: Close race between deciding on sending a signal
	and setting the CANCELING_BIT bit.

	* cancellation.c (__pthread_disable_asynccancel): Don't return if
	thread is canceled.
	* libc-cancellation.c (__libc_disable_asynccancel): Likewise.

2009-04-27  Ulrich Drepper  <drepper@redhat.com>

	* cancellation.c (__pthread_disable_asynccancel): Use THREAD_ATOMIC_AND
	is available.
	* libc-cancellation.c (__libc_disable_asynccancel): Likewise.
	* sysdeps/x86_64/tls.h: Define THREAD_ATOMIC_AND.
	* sysdeps/i386/tls.h: Likewise.
	(tcbhead_t): Add __private_tm member.

2009-04-26  Ulrich Drepper  <drepper@redhat.com>

	* sem_open.c (sem_open): Rewrite initialization of initsem to
	avoid warnings.

	* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
	Avoid warning by using may_alias attribute on ptrhack.

2009-04-22  Ulrich Drepper  <drepper@redhat.com>

	[BZ #10090]
	* pthread_attr_setschedparam.c (__pthread_attr_setschedparam):
	Check policy and priority for validity.
	Patch mostly by Zhang Xiliang <zhangxiliang@cn.fujitsu.com>.

2009-03-15  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
	(__pthread_cond_timedwait): Change to use cfi directives instead of
	hand-coded unwind sections.

2009-03-10  Ulrich Drepper  <drepper@redhat.com>

	* init.c (nptl_freeres): Compile only for SHARED.

2009-03-09  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Define
	FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET, FUTEX_CLOCK_REALTIME and
	FUTEX_BITSET_MATCH_ANY.

2009-02-27  Roland McGrath  <roland@redhat.com>

	* init.c (__nptl_initial_report_events): Mark __attribute_used__.
	* pthread_create.c (__nptl_threads_events, __nptl_last_event): Likewise.

2009-02-26  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
	_POSIX_THREAD_ROBUST_PRIO_INHERIT and
	_POSIX_THREAD_ROBUST_PRIO_PROTECT.  Reset value of macros from
	200112L to 200809L.

2009-02-25  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/pthread.h: The robust mutex functions are in
	POSIX 2008.

2009-02-24  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/bits/posix_opt.h (_BITS_POSIX_OPT_H):
	Unify name of include protector macro.

2009-02-14  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>

	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
	LOAD_FUTEX_WAIT_ABS even if (FUTEX_WAIT == 0).

2009-01-29  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/unwind-forcedunwind.c: Encrypt all function
	pointer variables.

	* allocatestack.c (__free_stacks): Renamed from free_stacks.
	(__free_stack_cache): Removed.  Change callers to call __free_stacks.
	* init.c (nptl_freeres): New function.
	(pthread_functions): Initialize ptr_freeres to nptl_freeres.
	* pthreadP.h: Don't declare __free_stack_cache.  Declare __free_stacks.
	* sysdeps/pthread/unwind-forcedunwind.c (libgcc_s_handle): New
	variable.
	(pthread_cancel_init): Depend in libgcc_s_handle for decision to
	load DSO.  Assign last.
	(__unwind_freeres): New function.

	* allocatestack.c (__reclaim_stacks): Reset in_flight_stack later
	for better debugging.  No need to use stack_list_add here.

2009-01-14  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/lowlevellock.S
	(__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
	instead of computing relative timeout.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
	FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.

2009-01-25  Ulrich Drepper  <drepper@redhat.com>

	* pthread_mutex_lock.c (__pthread_mutex_lock): Remove unused label out.

2009-01-08  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/list.h (list_add): Initialize new element first.
	(list_add_tail): Removed.

2009-01-07  Ulrich Drepper  <drepper@redhat.com>

	* (in_flight_stack): New variable.
	(stack_list_del): New function.  Use instead of list_del.
	(stack_list_add): New function.  Use instead of list_add when adding to
	stack_cache and stack_used lists.
	(__reclaim_stacks): Complete operations on stack_cache and stack_used lists
	when the fork call interrupted another thread.

2009-01-04  Ulrich Drepper  <drepper@redhat.com>

	* init.c (__pthread_initialize_minimal_internal): Optimize test
	FUTEX_CLOCK_REALTIME a bit.

2009-01-03  Ulrich Drepper  <drepper@redhat.com>

	* init.c (__pthread_initialize_minimal_internal): Cheat a bit by
	only passing five parameters to FUTEX_WAIT_BITSET call.

	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
	(__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
	instead of computing relative timeout.

2009-01-02  Ulrich Drepper  <drepper@redhat.com>

	* init.c (__pthread_initialize_minimal_internal): Check for
	FUTEX_CLOCK_REALTIME flag.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
	Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME instead of computing
	relative timeout.

	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
	FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.

2008-12-09  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/pthread.h (pthread_cleanup_pop): Use { } as empty
	loop body instead of ; to avoid gcc warnings.
	(pthread_cleanup_pop_restore_np): Likewise.
	Patch by Caolán McNamara <caolanm@redhat.com>.

2008-12-09  Jakub Jelinek  <jakub@redhat.com>

	* pthread_mutex_lock.c (__pthread_mutex_lock): Handle only the
	fast path here, for robust/PI/PP mutexes call
	__pthread_mutex_lock_full.  Don't use switch, instead use a series
	of ifs according to their probability.
	(__pthread_mutex_lock_full): New function.
	* pthread_mutex_unlock.c: Include assert.h.
	(__pthread_mutex_unlock_usercnt): Handle only the
	fast path here, for robust/PI/PP mutexes call
	__pthread_mutex_unlock_full.  Don't use switch, instead use a series
	of ifs according to their probability.
	(__pthread_mutex_unlock_full): New function.
	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
	(__pthread_mutex_lock_full): Define.

2008-12-08  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/x86_64/tls.h (tcbhead_t): Add fields reserved for TM
	implementation.  Add necessary padding and.
	* descr.h (struct pthread): Increase padding for tcbhead_t to 24
	words.

2008-12-04  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define FUTEX_WAIT_BITSET
	and FUTEX_WAKE_BITSET.

2008-12-02  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_WAIT_BITSET
	and FUTEX_WAKE_BITSET.
	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.

2008-11-25  Roland McGrath  <roland@redhat.com>

	* sysdeps/alpha, sysdeps/unix/sysv/linux/alpha:
	Subdirectories moved to ports repository as
	sysdeps/.../nptl subdirectories.

2008-11-12  Jakub Jelinek  <jakub@redhat.com>

	[BZ #7008]
	* pthread_condattr_setclock.c (pthread_condattr_setclock): Fix masking
	of old value.
	* pthread_cond_init.c (__pthread_cond_init): Fix
	cond->__data.__nwaiters initialization.
	* Makefile (tests): Add tst-cond23.
	* tst-cond23.c: New test.

2008-11-07  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/pthread/malloc-machine.h (MALLOC): Adjust __libc_tsd_define
	arguments.
	(tsd_setspecific, tsd_getspecific): Adjust __libc_tsd_{set,get}
	arguments.

2008-11-01  Ulrich Drepper  <drepper@redhat.com>

	[BZ #6955]
	* pthread_mutex_lock.c: Add support for private PI mutexes.
	* pthread_mutex_timedlock.c: Likewise.
	* pthread_mutex_trylock.c: Likewise.
	* pthread_mutex_unlock.c: Likewise.
	Patch mostly by Ben Jackson <ben@ben.com>.

2008-10-31  Ulrich Drepper  <drepper@redhat.com>

	[BZ #6843]
	* sysdeps/pthread/gai_misc.h (__gai_create_helper_thread):
	Increase stack size for helper thread.

2008-10-06  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* sysdeps/s390/tls.h (THREAD_SET_STACK_GUARD): Add empty inline
	assembly with a clobber list for access registers a0 and a1.

2008-09-11  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Add memory barrier
	to force runp->refcntr to be read from memory.

2008-09-08  Richard Guenther  <rguenther@suse.de>

	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
	lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
	lll_timedlock, lll_robust_timedlock, lll_unlock,
	lll_robust_unlock): Promote private to int.

2008-08-15  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
	ARCH_RETRY_MMAP definitions.
	* allocatestack.c: Remove definition of ARCH_MAP_FLAGS.
	Define MAP_STACK when not defined.
	(allocate_stack): Use MAP_STACK instead of ARCH_MAP_FLAGS.  Remove
	handling of ARCH_RETRY_MMAP.

2008-07-30  Ulrich Drepper  <drepper@redhat.com>

	* tst-align2.c (f): Print message that f is reached.

2008-04-28  Hiroki Kaminaga  <kaminaga@sm.sony.co.jp>

	[BZ #6740]
	* sysdeps/powerpc/tcb-offsets.sym (PRIVATE_FUTEX_OFFSET): Guard symbol
	definition with #ifndef __ASSUME_PRIVATE_FUTEX.

2008-07-25  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Use
	SOCK_CLOEXEC if possible.

2008-05-29  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Add tst-rwlock2a.
	* tst-rwlock2.c: Use TYPE macro to decide what rwlock type to use.
	* tst-rwlock2a.c: New file.

2008-06-12  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/pthread.h: Remove inadvertant checkin.

2008-05-17  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* sysdeps/pthread/pthread.h: Fix typo in comment.

2008-05-28  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/createthread.c (do_clone): Pass accurate length
	of CPU set to the kernel.

2008-05-23  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Add
	cfi directives.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.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/unix/sysv/linux/i386/i486/sem_post.S: Likewise.

2008-05-22  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S: Add
	cfi directives.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
	Likewise.

2008-05-26  Ulrich Drepper  <drepper@redhat.com>

	* tst-typesizes.c: Explicitly check __SIZEOF_PTHREAD_* constants.

2008-05-20  Jakub Jelinek  <jakub@redhat.com>

	David S. Miller  <davem@davemloft.net>

	* sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.

2008-05-10  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Access
	__pshared correctly.
	* 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.
	Reported by Clemens Kolbitsch <clemens.kol@gmx.at>.

2008-04-14  David S. Miller  <davem@davemloft.net>

	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
	(__old_sem_wait): Fix argument to lll_futex_wait().

2007-11-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* pthread_create.c: Require pthread_mutex_trylock and
	pthread_key_delete for libgcc.

2008-04-08  Jakub Jelinek  <jakub@redhat.com>

	[BZ #6020]
	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h
	(lll_futex_wake_unlock): Add private argument to the pre-v9 macro.
	Patch by Sunil Amitkumar Janki <devel.sjanki@gmail.com>.

2008-03-27  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine ARG_MAX if
	<linux/limits.h> has defined it.
	* sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.

2008-03-18  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Use __ASSEMBLER__ instead
	of ASSEMBLER.
	* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Likewise.

2008-03-14  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
	HAVE_DL_DISCOVER_OSVERSION.
	* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Likewise.

2008-03-07  Ulrich Drepper  <drepper@redhat.com>

	[BZ #5778]
	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Change
	_POSIX_CHOWN_RESTRICTED value to zero.

2008-01-31  Roland McGrath  <roland@redhat.com>

	* Makefile (omit-deps): Variable removed.

2008-01-30  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/sem_post.S (sem_post): Avoid
	unnecessary addr32 prefix.

2008-01-29  Roland McGrath  <roland@redhat.com>

	* Makeconfig (ptw-CPPFLAGS, sysd-rules-patterns): New variables.

2008-01-22  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/sem_post.S: Don't overflow value field.

2008-01-21  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XADD): Use
	a scratch register.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.S
	(__lll_lock_wait_private): Fix typo.
	* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
	(pthread_barrier_wait): Likewise.  Adjust XADD use.
	* sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
	Adjust XADD use.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
	(pthread_rwlock_timedrdlock): Return correct return value.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
	(pthread_rwlock_timedwrlock): Likewise.

2008-01-15  Ulrich Drepper  <drepper@redhat.com>

	* tst-eintr2.c (do_test): make sure that if mutex_lock in main
	thread returns the program exits with an error code.

2008-01-10  Ulrich Drepper  <drepper@redhat.com>

	* pthread-errnos.sym: Add EOVERFLOW.
	* sysdeps/unix/sysv/linux/structsem.sym: Add SEM_VALUE_MAX.
	* sysdeps/unix/sysv/linux/sem_post.c: Don't overflow value field.
	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.

2007-12-14  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/x86_64/pthreaddef.h (ARCH_RETRY_MMAP): Take additional
	parameter.  Passed it as permission to mmap.
	* allocatestack.c (allocate_stack): Pass prot as second parameter
	to ARCH_RETRY_MMAP.

2007-12-12  Ulrich Drepper  <drepper@redhat.com>

	* tst-basic7.c: Allocate memory for the stack.

	[BZ #5465]
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S [!SHARED]
	(__pthread_cond_timedwait): Don't use VDSO.
	Patch by Michal Januszewski.

2007-12-07  Ulrich Drepper  <drepper@redhat.com>

	[BZ #5455]
	* sysdeps/pthread/pthread.h [!__EXCEPTIONS] (pthread_cleanup_pop):
	Allow label before pthread_cleanup_pop.
	(pthread_cleanup_pop_restore_np): Likewise.

2007-12-04  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
	Store 2 before returning ETIMEDOUT.

2007-11-23  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
	Store 2 before returning ETIMEDOUT.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise
	* sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
	(__lll_lock_wait_private): Optimize.
	(__lll_lock_wait): Likewise.

2007-11-20  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/pthread/pthread.h (pthread_cleanup_push,
	pthread_cleanup_push_defer_np): Add extra (void *) cast to shut up
	g++ 4.1 and 4.2 -Wstrict-aliasing warnings.

2007-11-08  Ulrich Drepper  <drepper@redhat.com>

	[BZ #5240]
	* sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
	If we time out, try one last time to lock the futex to avoid
	losing a wakeup signal.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.

	[BZ #5245]
	* sysdeps/pthread/createthread.c (do_clone): Translate clone error
	if necessary.

2007-11-07  Ulrich Drepper  <drepper@redhat.com>

	[BZ #5245]
	* allocatestack.c (allocate_stack): Change ENOMEM error in case
	mmap failed to EAGAIN.
	* Makefile (tests): Add tst-basic7.
	* tst-basic7.c: New file.

2007-11-05  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
	Use __linkin_atfork.

2007-11-03  Mike Frysinger  <vapier@gentoo.org>

	* sysdeps/unix/sysv/linux/sh/lowlevellock.S (LOAD_FUTEX_WAIT): Add
	missing line continuations.
	* sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S (LOAD_FUTEX_WAIT,
	LOAD_FUTEX_WAKE): Likewise.  Also add missing 3rd parameter.

2007-10-28  Ulrich Drepper  <drepper@redhat.com>

	[BZ #5220]
	* sysdeps/unix/sysv/linux/kernel-posix-timers.h: Declare
	__active_timer_sigev_thread and __active_timer_sigev_thread_lock.
	(struct timer): Add next element.
	* sysdeps/unix/sysv/linux/timer_create.c: For SIGEV_THREAD timers,
	enqueue timer structure into __active_timer_sigev_thread list.
	* sysdeps/unix/sysv/linux/timer_delete.c: For SIGEV_THREAD timers,
	remove timer struct from __active_timer_sigev_thread.
	* sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
	Before using timer structure make sure it is still on the
	__active_timer_sigev_thread list.  Keep lock until done.
	Define __active_timer_sigev_thread and
	__active_timer_sigev_thread_lock.

2007-10-27  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/malloc-machine.h: Define ATFORK_MEM.
	Redefine thread_atfork for use of ATFORK_MEM.
	* sysdeps/unix/sysv/linux/fork.h: Define __linkin_atfork.
	* sysdeps/unix/sysv/linux/register-atfork.c (__linkin_atfork): New
	function.
	* sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
	Use atomic operation when removing first element of list.

2007-10-17  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
	routine instead of an alias to __new_sem_post.

2007-10-15  Jakub Jelinek  <jakub@redhat.com>

	* init.c (__pthread_initialize_minimal): Initialize word to appease
	valgrind.

2007-10-10  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_init): Inside of
	libc.so just clear NAME.
	(__libc_rwlock_fini): Nop inside of libc.so.
	* tst-initializers1.c (main): Test if PTHREAD_RWLOCK_INITIALIZER is
	all zeros.

2007-09-02  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
	(__pthread_cond_wait): Fix unlocking of internal lock after mutex
	unlocking failed.
	Patch by Luca Barbieri <luca.barbieri@gmail.com>.

2007-08-21  Ulrich Drepper  <drepper@redhat.com>

	[BZ #4938]
	* allocatestack.c (__reclaim_stacks): Clear the TSD in the
	reclaimed stack if necessary.
	* Makefile (tests): Add tst-tsd6.
	* tst-tsd6.c: New file.

2007-08-21  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_dead):
	Add private argument.

2007-08-20  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
	(__pthread_cond_timedwait): Use clock_gettime from VDSO if possible.

2007-08-16  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h
	(__lll_robust_timedlock): Pass private as last argument to
	__lll_robust_timedlock_wait.
	(__lll_unlock): Fix a pasto.

2007-08-15  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/internaltypes.h (sparc_new_sem,
	sparc_old_sem): New structs.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
	(__sem_wait_cleanup): New function.
	(__new_sem_wait): Use sparc_new_sem structure.  Bump and afterwards
	decrease nwaiters.  Register __sem_wait_cleanup as cleanup handler.
	Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
	lll_futex_wait.
	(__old_sem_wait): New function.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: Include
	nptl/sysdeps/unix/sysv/linux/sparc version.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c:
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
	(__new_sem_trywait): Use sparc_old_sem structure.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
	(sem_timedwait): Use sparc_new_sem structure.  Bump and afterwards
	decrease nwaiters.  Register __sem_wait_cleanup as cleanup handler.
	Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
	lll_futex_timed_wait.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c (__new_sem_post):
	Use sparc_new_sem structure.  Only wake if nwaiters > 0.  Pass
	isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
	lll_futex_wake.
	(__old_sem_post): New function.
	* sysdeps/unix/sysv/linux/sparc/sem_wait.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sem_init.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sem_post.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: Remove.

2007-08-14  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
	(__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
	Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
	* sysdeps/unix/sysv/linux/shpthread_cond_signal.S
	(__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
	Use FUTEX_WAKE_OP.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
	kernel-features.h and tcb-offsets.h.
	(__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
	lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
	process private.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
	tcb-offsets.h.
	(__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE
	to lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
	process private.
	* sysdeps/unix/sysv/linux/sh/pthread_once.S: Use #ifdef
	__ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.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/pthread_rwlock_unlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.

2007-08-14  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/lowlevellock.c: Comment fix.
	* sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
	(__lll_timedwait_tid): Pass LLL_SHARED as 4th argument to
	lll_futex_timed_wait.

	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock,
	__lll_robust_unlock): Rewrite as macros instead of inline functions.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock,
	__lll_robust_unlock, __lll_wait_tid): Likewise.

2007-08-13  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
	Fix a pasto.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
	(__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
	Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
	(__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Include
	kernel-features.h.
	(__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
	lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
	process private.  Switch DW_CFA_advance_loc1 and some
	DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
	(__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE to
	lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
	process private.  Switch DW_CFA_advance_loc{1,2} and some
	DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use
	#ifdef __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
	* 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/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
	(__pthread_cond_broadcast): Compare %r8 instead of
	dep_mutex-cond_*(%rdi) with $-1.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
	(__pthread_cond_signal): Xor FUTEX_WAKE_OP with FUTEX_WAKE instead
	of oring.

2007-08-13  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i786/Implies: New file.

2007-08-13  Jakub Jelinek  <jakub@redhat.com>

	* allocatestack.c: Include kernel-features.h.
	* pthread_create.c: Likewise.
	* pthread_mutex_init.c: Likewise.
	* init.c: Likewise.
	* pthread_cond_timedwait.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.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/s390/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.

2007-08-12  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
	[__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
	byte elements.  One of them is the new __shared element.
	[__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
	adjust names of other padding elements.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
	[__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
	byte elements.  One of them is the new __shared element.
	[__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
	adjust names of other padding elements.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_rwlock_t):
	Renamed __pad1 element to __shared, adjust names of other padding
	elements.
	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
	(pthread_rwlock_t): Likewise.
	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock): Fix a
	typo.

2007-08-09  Anton Blanchard  <anton@samba.org>

	* sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c: New file.

2007-08-12  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Include
	<kernel-features.h>.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.

2007-08-11  Ulrich Drepper  <drepper@redhat.com>

	* pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define.
	* pthread_mutex_lock.c: Use it instead of PTHREAD_MUTEX_PSHARED when
	dealing with robust mutexes.
	* pthread_mutex_timedlock.c: Likewise.
	* pthread_mutex_trylock.c: Likewise.
	* pthread_mutex_unlock.c: Likewise.
	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.

2007-08-06  Jakub Jelinek  <jakub@redhat.com>

	* pthreadP.h (PTHREAD_MUTEX_PSHARED_BIT): Define.
	(PTHREAD_MUTEX_TYPE): Mask __kind with 127.
	(PTHREAD_MUTEX_PSHARED): Define.
	* pthread_mutex_init.c (__pthread_mutex_init): Set
	PTHREAD_MUTEX_PSHARED_BIT for pshared or robust
	mutexes.
	* pthread_mutex_lock.c (LLL_MUTEX_LOCK): Take mutex as argument
	instead of its __data.__lock field, pass PTHREAD_MUTEX_PSHARED
	as second argument to lll_lock.
	(LLL_MUTEX_TRYLOCK): Take mutex as argument
	instead of its __data.__lock field.
	(LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
	__data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
	to lll_robust_lock.
	(__pthread_mutex_lock): Update LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
	LLL_ROBUST_MUTEX_LOCK users, use PTHREAD_MUTEX_TYPE (mutex)
	instead of mutex->__data.__kind directly, pass
	PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock and lll_futex_wait.
	* pthread_mutex_trylock.c (__pthread_mutex_trylock): Use
	PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
	directly, pass PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock.
	(pthread_mutex_timedlock): Pass PTHREAD_MUTEX_PSHARED (mutex)
	to lll_timedlock, lll_robust_timedlock, lll_unlock and
	lll_futex_timed_wait.  Use PTHREAD_MUTEX_TYPE (mutex) instead
	of mutex->__data.__kind directly.
	* pthread_mutex_timedlock.c (pthread_mutex_timedlock): Pass
	PTHREAD_MUTEX_PSHARED (mutex) to lll_timedlock,
	lll_robust_timedlock, lll_unlock and lll_futex_timed_wait.  Use
	PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind directly.
	* pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Pass
	PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock, lll_robust_unlock
	and lll_futex_wake.
	* pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling): Pass
	PTHREAD_MUTEX_PSHARED (mutex) to lll_futex_wait and lll_futex_wake.
	Use PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
	directly.
	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK):
	Take mutex as argument instead of its __data.__lock field, pass
	PTHREAD_MUTEX_PSHARED as second argument to lll_cond_lock.
	(LLL_MUTEX_TRYLOCK): Take mutex as argument instead of its
	__data.__lock field.
	(LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
	__data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
	to lll_robust_cond_lock.
	* pthread_cond_broadcast.c (__pthread_cond_broadcast): Add pshared
	variable, pass it to lll_lock, lll_unlock, lll_futex_requeue and
	lll_futex_wake.  Don't use lll_futex_requeue if dependent mutex
	has PTHREAD_MUTEX_PSHARED_BIT bit set in its __data.__kind.
	* pthread_cond_destroy.c (__pthread_cond_destroy): Add pshared
	variable, pass it to lll_lock, lll_unlock, lll_futex_wake and
	lll_futex_wait.
	* pthread_cond_signal.c (__pthread_cond_signal): Add pshared
	variable, pass it to lll_lock, lll_unlock, lll_futex_wake_unlock and
	lll_futex_wake.
	* pthread_cond_timedwait.c (__pthread_cond_wait): Add
	pshared variable, pass it to lll_lock, lll_unlock,
	lll_futex_timedwait and lll_futex_wake.
	* pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait): Add
	pshared variable, pass it to lll_lock, lll_unlock, lll_futex_wait
	and lll_futex_wake.
	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_requeue,
	lll_futex_wake_unlock): Add private argument, use __lll_private_flag
	macro.
	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue,
	lll_futex_wake_unlock): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_requeue):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_futex_requeue,
	lll_futex_wake_unlock): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_requeue):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue,
	lll_futex_wake_unlock): Likewise.
	(lll_futex_wake): Fix a typo.
	* sysdeps/unix/sysv/linux/pthread-pi-defines.sym (PS_BIT): Add.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
	(__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
	Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
	(__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
	(__pthread_cond_timedwait): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
	(__condvar_cleanup, __pthread_cond_wait): Likewise.

2007-08-05  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
	Don't use CGOTSETUP and CGOTRESTORE macros.
	(CGOTSETUP, CGOTRESTORE): Remove.
	<IS_IN_rtld> (CENABLE, CDISABLE): Don't use JUMPTARGET, branch to
	@local symbol.

2007-08-01  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Remove
	definitions for private futexes.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Include
	kernel-features.h and lowlevellock.h.  Use private futexes if
	they are available.
	(__lll_lock_wait_private, __lll_unlock_wake_private): New.
	(__lll_mutex_lock_wait): Rename to
	(__lll_lock_wait): ... this.  Don't compile in for libc.so.
	(__lll_mutex_timedlock_wait): Rename to ...
	(__lll_timedlock_wait): ... this.  Use __NR_gettimeofday.
	Don't compile in for libc.so.
	(__lll_mutex_unlock_wake): Rename to ...
	(__lll_unlock_wake): ... this.  Don't compile in for libc.so.
	(__lll_timedwait_tid): Use __NR_gettimeofday.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Allow including
	the header from assembler.  Renamed all lll_mutex_* resp.
	lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
	Renamed all LLL_MUTEX_LOCK_* macros to LLL_LOCK_*.
	(FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE):
	Define.
	(__lll_lock_wait_private): Add prototype.
	(__lll_lock_wait, __lll_timedlock_wait, __lll_robust_lock_wait,
	__lll_robust_timedlock_wait, __lll_unlock_wake_private,
	__lll_unlock_wake): Likewise.
	(lll_lock): Add private argument.  Call __lll_lock_wait_private
	if private is constant LLL_PRIVATE.
	(lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
	lll_timedlock, lll_robust_timedlock): Add private argument.
	(lll_unlock): Add private argument.  Call __lll_unlock_wake_private
	if private is constant LLL_PRIVATE.
	(lll_robust_unlock, lll_robust_dead): Add private argument.
	(lll_lock_t): Remove.
	(__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
	__lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
	lll_cond_wake, lll_cond_broadcast): Remove.
	* sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: Include
	kernel-features.h and lowlevellock.h.
	(SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
	(LOAD_FUTEX_WAIT): Define.
	(__lll_robust_mutex_lock_wait): Rename to ...
	(__lll_robust_lock_wait): ... this.  Add private argument.
	Use LOAD_FUTEX_WAIT macro.
	(__lll_robust_mutex_timedlock_wait): Rename to ...
	(__lll_robust_timedlock_wait): ... this.    Add private argument.
	Use __NR_gettimeofday.  Use LOAD_FUTEX_WAIT macro.
	* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Include
	lowlevellock.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
	(pthread_barrier_wait): Use __lll_{lock,unlock}_* instead of
	__lll_mutex_{lock,unlock}_*.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Include
	lowlevellock.h and pthread-errnos.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
	FUTEX_CMP_REQUEUE, EINVAL): Remove.
	(__pthread_cond_broadcast): Use __lll_{lock,unlock}_* instead of
	__lll_mutex_{lock,unlock}_*.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Include
	lowlevellock.h and pthread-errnos.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE, EINVAL): Remove.
	(__pthread_cond_signal): Use __lll_{lock,unlock}_* instead of
	__lll_mutex_{lock,unlock}_*.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
	lowlevellock.h.
	(SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE): Remove.
	(__pthread_cond_timedwait): Use __lll_{lock,unlock}_* instead of
	__lll_mutex_{lock,unlock}_*.  Use __NR_gettimeofday.
	(__condvar_tw_cleanup): Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
	lowlevellock.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
	(__pthread_cond_wait): Use __lll_{lock,unlock}_* instead of
	__lll_mutex_{lock,unlock}_*.
	( __condvar_w_cleanup): Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_once.S: Include lowlevellock.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Include
	lowlevellock.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
	(__pthread_rwlock_rdlock): Use __lll_{lock,unlock}_* instead of
	__lll_mutex_{lock,unlock}_*.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Include
	lowlevellock.h.
	(SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
	FUTEX_PRIVATE_FLAG): Remove.
	(pthread_rwlock_timedrdlock): Use __lll_{lock,unlock}_* instead of
	__lll_mutex_{lock,unlock}_*.  Use __NR_gettimeofday.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Include
	lowlevellock.h.
	(SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
	FUTEX_PRIVATE_FLAG): Remove.
	(pthread_rwlock_timedwrlock): Use __lll_{lock,unlock}_* instead of
	__lll_mutex_{lock,unlock}_*.  Use __NR_gettimeofday.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Include
	lowlevellock.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
	(__pthread_rwlock_unlock): Use __lll_{lock,unlock}_* instead of
	__lll_mutex_{lock,unlock}_*.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Include
	lowlevellock.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
	(__pthread_rwlock_wrlock): Use __lll_{lock,unlock}_* instead of
	__lll_mutex_{lock,unlock}_*.
	* sysdeps/unix/sysv/linux/sh/sem_post.S: Include lowlevellock.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
	(__new_sem_post): Use standard initial exec code sequences.
	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Include
	lowlevellock.h.
	(SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
	FUTEX_PRIVATE_FLAG): Remove.
	(sem_timedwait): Use __NR_gettimeofday.  Use standard initial
	exec code sequences.
	* sysdeps/unix/sysv/linux/sh/sem_trywait.S: Include lowlevellock.h.
	(__new_sem_trywait): Use standard initial exec code sequences.
	* sysdeps/unix/sysv/linux/sh/sem_wait.S: Include lowlevellock.h.
	(__new_sem_wait): Use standard initial exec code sequences.

2007-07-31  Anton Blanchard  <anton@samba.org>

	* sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
	Use __asm __volatile (__lll_acq_instr ::: "memory") instead of
	atomic_full_barrier.

2007-07-31  Jakub Jelinek  <jakub@redhat.com>

	* allocatestack.c (stack_cache_lock): Change type to int.
	(get_cached_stack, allocate_stack, __deallocate_stack,
	__make_stacks_executable, __find_thread_by_id, __nptl_setxid,
	__pthread_init_static_tls, __wait_lookup_done): Add LLL_PRIVATE
	as second argument to lll_lock and lll_unlock macros on
	stack_cache_lock.
	* pthread_create.c (__find_in_stack_list): Likewise.
	(start_thread): Similarly with pd->lock.  Use lll_robust_dead
	macro instead of lll_robust_mutex_dead, pass LLL_SHARED to it
	as second argument.
	* descr.h (struct pthread): Change lock and setxid_futex field
	type to int.
	* old_pthread_cond_broadcast.c (__pthread_cond_broadcast_2_0): Use
	LLL_LOCK_INITIALIZER instead of LLL_MUTEX_LOCK_INITIALIZER.
	* old_pthread_cond_signal.c (__pthread_cond_signal_2_0): Likewise.
	* old_pthread_cond_timedwait.c (__pthread_cond_timedwait_2_0):
	Likewise.
	* old_pthread_cond_wait.c (__pthread_cond_wait_2_0): Likewise.
	* pthread_cond_init.c (__pthread_cond_init): Likewise.
	* pthreadP.h (__attr_list_lock): Change type to int.
	* pthread_attr_init.c (__attr_list_lock): Likewise.
	* pthread_barrier_destroy.c (pthread_barrier_destroy): Pass
	ibarrier->private ^ FUTEX_PRIVATE_FLAG as second argument to
	lll_{,un}lock.
	* pthread_barrier_wait.c (pthread_barrier_wait): Likewise and
	also for lll_futex_{wake,wait}.
	* pthread_barrier_init.c (pthread_barrier_init): Make iattr
	a pointer to const.
	* pthread_cond_broadcast.c (__pthread_cond_broadcast): Pass
	LLL_SHARED as second argument to lll_{,un}lock.
	* pthread_cond_destroy.c (__pthread_cond_destroy): Likewise.
	* pthread_cond_signal.c (__pthread_cond_singal): Likewise.
	* pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
	* pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait):
	Likewise.
	* pthread_getattr_np.c (pthread_getattr_np): Add LLL_PRIVATE
	as second argument to lll_{,un}lock macros on pd->lock.
	* pthread_getschedparam.c (__pthread_getschedparam): Likewise.
	* pthread_setschedparam.c (__pthread_setschedparam): Likewise.
	* pthread_setschedprio.c (pthread_setschedprio): Likewise.
	* tpp.c (__pthread_tpp_change_priority, __pthread_current_priority):
	Likewise.
	* sysdeps/pthread/createthread.c (do_clone, create_thread):
	Likewise.
	* pthread_once.c (once_lock): Change type to int.
	(__pthread_once): Pass LLL_PRIVATE as second argument to
	lll_{,un}lock macros on once_lock.
	* pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Use
	lll_{,un}lock macros instead of lll_mutex_{,un}lock, pass
	rwlock->__data.__shared as second argument to them and similarly
	for lll_futex_w*.
	* pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
	Likewise.
	* pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
	Likewise.
	* pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Likewise.
	* pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Likewise.
	* pthread_rwlock_unlock.c (__pthread_rwlock_unlock): Likewise.
	* pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
	* sem_close.c (sem_close): Pass LLL_PRIVATE as second argument
	to lll_{,un}lock macros on __sem_mappings_lock.
	* sem_open.c (check_add_mapping): Likewise.
	(__sem_mappings_lock): Change type to int.
	* semaphoreP.h (__sem_mappings_lock): Likewise.
	* pthread_mutex_lock.c (LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
	LLL_ROBUST_MUTEX_LOCK): Use lll_{,try,robust_}lock macros
	instead of lll_*mutex_*, pass LLL_SHARED as last
	argument.
	(__pthread_mutex_lock): Use lll_unlock instead of lll_mutex_unlock,
	pass LLL_SHARED as last argument.
	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK,
	LLL_MUTEX_TRYLOCK, LLL_ROBUST_MUTEX_LOCK): Use
	lll_{cond_,cond_try,robust_cond}lock macros instead of lll_*mutex_*,
	pass LLL_SHARED as last argument.
	* pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
	lll_{timed,try,robust_timed,un}lock instead of lll_*mutex*, pass
	LLL_SHARED as last argument.
	* pthread_mutex_trylock.c (__pthread_mutex_trylock): Similarly.
	* pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
	Similarly.
	* sysdeps/pthread/bits/libc-lock.h (__libc_lock_lock,
	__libc_lock_lock_recursive, __libc_lock_unlock,
	__libc_lock_unlock_recursive): Pass LLL_PRIVATE as second
	argument to lll_{,un}lock.
	* sysdeps/pthread/bits/stdio-lock.h (_IO_lock_lock,
	_IO_lock_unlock): Likewise.
	* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Don't use
	compound literal.
	* sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
	Pass LLL_PRIVATE as second argument to lll_{,un}lock macros on
	__fork_lock.
	* sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork,
	free_mem): Likewise.
	(__fork_lock): Change type to int.
	* sysdeps/unix/sysv/linux/fork.h (__fork_lock): Likewise.
	* sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Pass
	isem->private ^ FUTEX_PRIVATE_FLAG as second argument to
	lll_futex_wake.
	* sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
	* sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Likewise.
	* sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait_private):
	New function.
	(__lll_lock_wait, __lll_timedlock_wait): Add private argument and
	pass it through to lll_futex_*wait, only compile in when
	IS_IN_libpthread.
	* sysdeps/unix/sysv/linux/lowlevelrobustlock.c
	(__lll_robust_lock_wait, __lll_robust_timedlock_wait): Add private
	argument and pass it through to lll_futex_*wait.
	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Renamed all
	lll_mutex_* resp. lll_robust_mutex_* macros to lll_* resp.
	lll_robust_*.  Renamed all __lll_mutex_* resp. __lll_robust_mutex_*
	inline functions to __lll_* resp. __lll_robust_*.
	(LLL_MUTEX_LOCK_INITIALIZER): Remove.
	(lll_mutex_dead): Add private argument.
	(__lll_lock_wait_private): New prototype.
	(__lll_lock_wait, __lll_robust_lock_wait, __lll_lock_timedwait,
	__lll_robust_lock_timedwait): Add private argument to prototypes.
	(__lll_lock): Add private argument, if it is constant LLL_PRIVATE,
	call __lll_lock_wait_private, otherwise pass private to
	__lll_lock_wait.
	(__lll_robust_lock, __lll_cond_lock, __lll_timedlock,
	__lll_robust_timedlock): Add private argument, pass it to
	__lll_*wait functions.
	(__lll_unlock): Add private argument, if it is constant LLL_PRIVATE,
	call __lll_unlock_wake_private, otherwise pass private to
	__lll_unlock_wake.
	(__lll_robust_unlock): Add private argument, pass it to
	__lll_robust_unlock_wake.
	(lll_lock, lll_robust_lock, lll_cond_lock, lll_timedlock,
	lll_robust_timedlock, lll_unlock, lll_robust_unlock): Add private
	argument, pass it through to __lll_* inline function.
	(__lll_mutex_unlock_force, lll_mutex_unlock_force): Remove.
	(lll_lock_t): Remove.
	(__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
	__lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
	lll_cond_wake, lll_cond_broadcast): Remove.
	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Allow including
	the header from assembler.  Renamed all lll_mutex_* resp.
	lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
	(LOCK, FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP,
	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
	(LLL_MUTEX_LOCK_INITIALIZER, LLL_MUTEX_LOCK_INITIALIZER_LOCKED,
	LLL_MUTEX_LOCK_INITIALIZER_WAITERS): Remove.
	(__lll_mutex_lock_wait, __lll_mutex_timedlock_wait,
	__lll_mutex_unlock_wake, __lll_lock_wait, __lll_unlock_wake):
	Remove prototype.
	(__lll_trylock_asm, __lll_lock_asm_start, __lll_unlock_asm): Define.
	(lll_robust_trylock, lll_cond_trylock): Use LLL_LOCK_INITIALIZER*
	rather than LLL_MUTEX_LOCK_INITIALIZER* macros.
	(lll_trylock): Likewise, use __lll_trylock_asm, pass
	MULTIPLE_THREADS_OFFSET as another asm operand.
	(lll_lock): Add private argument, use __lll_lock_asm_start, pass
	MULTIPLE_THREADS_OFFSET as last asm operand, call
	__lll_lock_wait_private if private is constant LLL_PRIVATE,
	otherwise pass private as another argument to __lll_lock_wait.
	(lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
	lll_timedlock, lll_robust_timedlock): Add private argument, pass
	private as another argument to __lll_*lock_wait call.
	(lll_unlock): Add private argument, use __lll_unlock_asm, pass
	MULTIPLE_THREADS_OFFSET as another asm operand, call
	__lll_unlock_wake_private if private is constant LLL_PRIVATE,
	otherwise pass private as another argument to __lll_unlock_wake.
	(lll_robust_unlock): Add private argument, pass private as another
	argument to __lll_unlock_wake.
	(lll_robust_dead): Add private argument, use __lll_private_flag
	macro.
	(lll_islocked): Use LLL_LOCK_INITIALIZER instead of
	LLL_MUTEX_LOCK_INITIALIZER.
	(lll_lock_t): Remove.
	(LLL_LOCK_INITIALIZER_WAITERS): Define.
	(__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
	__lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
	lll_cond_wake, lll_cond_broadcast): Remove.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Revert
	2007-05-2{3,9} changes.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Include
	kernel-features.h and lowlevellock.h.
	(LOAD_PRIVATE_FUTEX_WAIT): Define.
	(LOAD_FUTEX_WAIT): Rewritten.
	(LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
	define.
	(__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
	(__lll_mutex_lock_wait): Rename to ...
	(__lll_lock_wait): ... this.  Take futex addr from %edx instead of
	%ecx, %ecx is now private argument.  Don't compile in for libc.so.
	(__lll_mutex_timedlock_wait): Rename to ...
	(__lll_timedlock_wait): ... this.  Use __NR_gettimeofday.  %esi
	contains private argument.  Don't compile in for libc.so.
	(__lll_mutex_unlock_wake): Rename to ...
	(__lll_unlock_wake): ... this.  %ecx contains private argument.
	Don't compile in for libc.so.
	(__lll_timedwait_tid): Use __NR_gettimeofday.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Include
	kernel-features.h and lowlevellock.h.
	(LOAD_FUTEX_WAIT): Define.
	(LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
	define.
	(__lll_robust_mutex_lock_wait): Rename to ...
	(__lll_robust_lock_wait): ... this.  Futex addr is now in %edx
	argument, %ecx argument contains private.  Use LOAD_FUTEX_WAIT
	macro.
	(__lll_robust_mutex_timedlock_wait): Rename to ...
	(__lll_robust_timedlock_wait): ... this.  Use __NR_gettimeofday.
	%esi argument contains private, use LOAD_FUTEX_WAIT macro.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Include
	lowlevellock.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
	(pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
	PRIVATE(%ebx) ^ LLL_SHARED as private argument in %ecx to
	__lll_lock_wait and __lll_unlock_wake, pass MUTEX(%ebx) address
	to __lll_lock_wait in %edx.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
	Include lowlevellock.h and pthread-errnos.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
	FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
	(__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*, pass
	cond_lock address in %edx rather than %ecx to __lll_lock_wait,
	pass LLL_SHARED in %ecx to both __lll_lock_wait and
	__lll_unlock_wake.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
	Include lowlevellock.h and pthread-errnos.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
	(__pthread_cond_signal): Rename __lll_mutex_* to __lll_*, pass
	cond_lock address in %edx rather than %ecx to __lll_lock_wait,
	pass LLL_SHARED in %ecx to both __lll_lock_wait and
	__lll_unlock_wake.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
	Include lowlevellock.h.
	(SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
	Don't define.
	(__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*, pass
	cond_lock address in %edx rather than %ecx to __lll_lock_wait,
	pass LLL_SHARED in %ecx to both __lll_lock_wait and
	__lll_unlock_wake.  Use __NR_gettimeofday.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
	Include lowlevellock.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
	(__pthread_cond_wait, __condvar_w_cleanup): Rename __lll_mutex_*
	to __lll_*, pass cond_lock address in %edx rather than %ecx to
	__lll_lock_wait, pass LLL_SHARED in %ecx to both __lll_lock_wait
	and __lll_unlock_wake.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
	Include lowlevellock.h.
	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
	(__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*, pass
	MUTEX(%ebx) address in %edx rather than %ecx to
	__lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
	and __lll_unlock_wake.  Move return value from %ecx to %edx
	register.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
	Include lowlevellock.h.
	(SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
	Don't define.
	(__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
	MUTEX(%ebp) address in %edx rather than %ecx to
	__lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
	and __lll_unloc