Commit Graph

120 Commits

Author SHA1 Message Date
Ulrich Drepper
d0aacb47f9 pthread_cond_signal implementation for Linux/x86-64. 2003-03-11 08:31:35 +00:00
Ulrich Drepper
db5f2fc93d Update.
* sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.

	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
	unused code.
2003-03-11 06:52:08 +00:00
Ulrich Drepper
6a4263e3d5 Update.
* sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file

	* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
2003-03-11 05:52:12 +00:00
Ulrich Drepper
3de7c2a965 Update.
* sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
	lowlevelbarrier.sym.
	* sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
	Include lowlevelbarrier.h and don't define offsets locally.
2003-03-11 05:26:32 +00:00
Ulrich Drepper
2a544d82ce Update.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
	(__lll_mutex_lock_wait): Reverse order of first two parameters.
	(__lll_mutex_timedlock_wait): Likewise.
	(lll_mutex_lock): Adjust asm for that.
	(lll_mutex_timedlock): Likewise.  Mark cx, cc, r10 as clobbered.
	(lll_lock): Adjust asm for operand order change.
	* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
	* sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
2003-03-11 04:07:00 +00:00
Ulrich Drepper
ec06436c5b Update.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
	Reverse order of parameters.
	(__lll_timedwait_tid): Remove regparms attribute.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
	* sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
2003-03-11 01:01:24 +00:00
Ulrich Drepper
3273832c67 Update.
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
	(__lll_timedwait_tid): Remove one unnecessary instruction.
2003-03-11 00:49:38 +00:00
Ulrich Drepper
51f32ab883 Update.
* sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
	__lll_mutex_timedlock_wait only for NOT_IN_libc.
	* sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
	lowlevelmutex.S.

	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
	lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
	for NOT_IN_libc.
	* sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
	lowlevellock.S.
2003-03-10 23:42:41 +00:00
Ulrich Drepper
fad48d9e2d Update.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
	LOCK is already defined.  Don't define __lll_mutex_timedlock_wait
	for libc.so.
	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
	define LOCK here (if UP is not defined).  The actual code is in
	lowlevelmutex.S.
2003-03-10 22:27:01 +00:00
Ulrich Drepper
9356d063df Update.
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
	LOCK is already defined.  Don't define lll_unlock_wake_cb and
	__lll_timedwait_tid for libc.so.
	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
	define LOCK here (if UP is not defined).  The actual code is in
	lowlevellock.S.
2003-03-10 22:11:26 +00:00
Ulrich Drepper
146fa1ee68 Update.
* sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
2003-03-10 21:44:36 +00:00
Ulrich Drepper
106f6f9d9d Update.
* sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
	instead of lowlevelsem.h.
	* sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
2003-03-10 21:42:52 +00:00
Ulrich Drepper
873010c8a4 Not needed at all. 2003-03-10 21:31:55 +00:00
Ulrich Drepper
c915e5ad56 Update.
* sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
	lowlevelrwlock.sym.
	* sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
	* sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
2003-03-10 21:03:03 +00:00
Ulrich Drepper
4c3c2e8a6e Update.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
	register loading.
	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
	last changed.  D'oh.
2003-03-10 19:37:46 +00:00
Ulrich Drepper
8969b769c0 (lll_trylock): Undo last changed. D'oh. 2003-03-10 19:36:23 +00:00
Ulrich Drepper
f49d640711 Lowlevel lock definitions for x86-64/Linux. 2003-03-10 09:26:20 +00:00
Ulrich Drepper
9921a88000 (lll_trylock): Initialize %eax to zero. 2003-03-10 09:10:30 +00:00
Ulrich Drepper
acdcbad953 Remove declaration of __libc_locking_needed. 2003-03-10 09:00:47 +00:00
Ulrich Drepper
4cf82237a1 (lll_trylock): Initialize %eax to zero. 2003-03-10 08:51:08 +00:00
Roland McGrath
d4f64e1ad7 2003-03-10 Roland McGrath <roland@redhat.com>
* allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
	Instead of setting PD->multiple_threads, set globals
	__pthread_multiple_threads and __libc_multiple_threads.
	* sysdeps/pthread/createthread.c (create_thread): Likewise.
	* sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
	* sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
	* descr.h (struct pthread): Conditionalize first member on
	[!TLS_DTV_AT_TP].  Replace the `header' member with an anonymous union
	containing an anonymous tcbhead_t.  Move `list' member out.
	[TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
	* allocatestack.c: Remove use of `header.data.' prefix.
	* pthread_create.c: Likewise.
	* init.c (__pthread_initialize_minimal_internal): Likewise.
	* sysdeps/pthread/createthread.c (create_thread): Likewise.
	* sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
	(THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
	* 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/i386/tls.h (tcbhead_t): Remove `list' member.
	* sysdeps/s390/tls.h (tcbhead_t): Likewise.
2003-03-10 08:50:36 +00:00
Roland McGrath
f9cd7dfd6b 2003-03-10 Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
	* sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
	* sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
	* sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
2003-03-10 08:50:26 +00:00
Ulrich Drepper
48f3314a00 Definitions for condvar implementation on Linux/x86-64. 2003-03-10 08:06:20 +00:00
Ulrich Drepper
7b44a5e0a7 Update.
* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2003-03-10 08:00:02 +00:00
Ulrich Drepper
c2e5e08573 Update.
* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
	leftovers from the ia32 code.

	* sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
	memory load.
	(clear_once_control): Don't load %esi.

	* sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
	handling.

	* sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
2003-03-10 07:39:55 +00:00
Ulrich Drepper
cd4b2a553a Update.
* sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
	* sysdeps/unix/sysv/linux/createthread.c: ...here.
2003-03-10 06:32:42 +00:00
Ulrich Drepper
ccf1d5737a Update.
* tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
	* tst-signal3.c (do_test): Likewise.
	* tst-sem5.c (do_test): Likewise.
	* tst-kill6.c (do_test): Likewise.
	* tst-tls3.c (do_test): Likewise.  Include <errno.h>.

	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
	of inc/dec.
	* sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/pthread_once.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_unlock.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_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
2003-03-08 10:30:42 +00:00
Ulrich Drepper
41d4d22399 Update.
* sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.

	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
	lll_wake_tid.  This was used only to work around kernel limits in
	the early days.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
2003-03-07 18:37:10 +00:00
Ulrich Drepper
181c92c2e6 Update. 2003-03-07 05:32:16 +00:00
Ulrich Drepper
0de28d5c71 Update.
2003-03-04  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/ia64/fpu/libm-test-ulps: Regenerated.
2003-03-04 23:01:30 +00:00
Ulrich Drepper
f04a27210a Update.
* sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed.  The generic
	version is just fine.
2003-03-04 07:58:19 +00:00
Ulrich Drepper
4f6f0a8fcf Update.
2003-03-03  Ulrich Drepper  <drepper@redhat.com>

	* include/sched.h (__clone2): Use ... instead of adding all the
	new parameters.
2003-03-03 22:02:13 +00:00
Ulrich Drepper
7ce5c1640c Update.
2003-03-03  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* atomic.h (atomic_exchange_and_add): Return newval, not oldval.

	* sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
	Fix handling of cancellation and failing pthread_mutex_unlock call.
	* sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
	(__pthread_cond_wait): Likewise.

	* sysdeps/pthread/pthread_rwlock_timedrdlock.c
	(pthread_rwlock_timedrdlock): Fix clobber of result variable by
	lll_futex_timed_wait call.
	* sysdeps/pthread/pthread_rwlock_timedwrlock.c
	(pthread_rwlock_timedwrlock): Likewise.

	* sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
	Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.

	* sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
	check of lll_futex_wake return value.
2003-03-03 21:11:12 +00:00
Roland McGrath
ea6a015bd7 * sysdeps/ia64/dl-fptr.c (__ia64_make_fptr): Add const to MAP arg.
* sysdeps/ia64/dl-machine.h: Update decl.
2003-03-03 08:44:46 +00:00
Ulrich Drepper
e5497892bb Update.
* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2003-03-03 05:00:33 +00:00
Ulrich Drepper
816a5a6a69 Typo in comment. 2003-03-02 08:44:23 +00:00
Ulrich Drepper
748bec0865 Update.
* sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
	__pthread_cleanup_pop functionality.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2003-03-02 07:52:31 +00:00
Ulrich Drepper
bd8bb78ba2 Update.
2003-03-01  Ulrich Drepper  <drepper@redhat.com>

	* descr.h (struct pthread): Move tid field to the front now that
	it is often used.

	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
	(__lll_mutex_timedlock_wait): Remove.
	(__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
	(__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
	(lll_unlock_wake_cb): Don't save and restore %esi.
	(__lll_unlock_wake): Add alignment.  Don't save, load, and restore
	%esi.
	(__lll_timedwait_tid): Add alignment.
	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
	(__lll_unlock_wake): Add alignment.  Don't save, load, and restore
	%esi.
	(__lll_timedwait_tid): Removed.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
	(__pthread_cond_broadcast): Don't save, load, and restore %esi.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
	(pthread_barrier_wait): Don't save, load, and restore %esi for
	last thread.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
	(__pthread_cond_signal): Don't save, load, and restore %esi.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
	(__pthread_rwlock_unlock): Don't save, load, and restore %esi.
	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
	Don't save, load, and restore %esi.
2003-03-01 09:45:23 +00:00
Ulrich Drepper
206a5cdea2 Update. 2003-02-28 03:47:32 +00:00
Ulrich Drepper
567fb22ae3 Update.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
	Release lock before waking up the waiters.
2003-02-27 23:45:12 +00:00
Ulrich Drepper
d2637c7053 Update.
2003-02-24  David Mosberger  <davidm@hpl.hp.com>

	* sysdeps/unix/sysv/linux/ia64/sysdep.S (__syscall_error): Fix
	unwind info.
2003-02-27 10:32:38 +00:00
Ulrich Drepper
18a535792b Update.
* sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
	* sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
	* sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
	* sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
	* sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
2003-02-24 09:23:15 +00:00
Ulrich Drepper
b1b8e747d4 Update.
* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
	off 3 more bytes by using offset-less instructions when possible.
2003-02-23 07:20:34 +00:00
Ulrich Drepper
e814f74891 Update.
* pthread_cancel.c (pthread_cancel): Use tkill directly.

	* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
	Disallow sending SIGCANCEL.

	tst-kill3, tst-kill4, tst-kill5.
	* tst-kill1.c: New file.
	* tst-kill2.c: New file.
	* tst-kill3.c: New file.
	* tst-kill5.c: New file.
	* tst-basic7.c: Renamed to...
	* tst-kill4.c: ...this.
2003-02-21 21:07:28 +00:00
Ulrich Drepper
8c2e9a29b1 Update.
* pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
	* pthread_cancel.c: Use INVALID_TD_P.
	* pthread_detach.c: Likewise.
	* pthread_getschedparam.c: Likewise.
	* pthread_setschedparam.c: Likewise.
	* sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
	* sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
	* pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
	* pthread_timedjoin.c: Likewise.

	* tst-basic7.c: Include <signal.h>.
2003-02-21 10:00:33 +00:00
Ulrich Drepper
2f7dc59492 Update.
2003-02-18  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Recognize
	invalid file descriptors and missing access permissions.
2003-02-18 21:04:15 +00:00
Ulrich Drepper
b0db7fbeef Update.
* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
	_POSIX_THREAD_PRIORITY_SCHEDULING.
	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
	_XOPEN_REALTIME_THREADS.
	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.

	* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
	kernel returns EINVAL for PID <= 0, work around it.
2003-02-18 06:33:08 +00:00
Ulrich Drepper
46d7e2ba22 Update.
2003-02-17  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/posix/sysconf.c (__sysconf): Test for LOGIN_NAME_MAX and
	TTY_NAME_MAX and not the _POSIX_* minimal value macros.
	* sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
	and LOGIN_NAME_MAX.
2003-02-18 03:46:54 +00:00
Ulrich Drepper
7d78ab990f Update.
* sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
	and LOGIN_NAME_MAX.
2003-02-17 22:57:19 +00:00
Ulrich Drepper
0a37669aa5 Update.
* tst-rwlock6.c: More pthread_rwlock_timedwrlock and
	pthread_rwlock_timedrdlock tests.
	* tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
	Check for invalid tv_nsec field.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
	Likewise.

	* pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
	recursive mutex of overflow.

	* tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
2003-02-16 10:57:38 +00:00