Commit Graph

655 Commits

Author SHA1 Message Date
Ulrich Drepper
7329994338 Update.
More cancellation handling fixups.
	* sysdeps/unix/sysv/linux/not-cancel.h: Add waitpid_not_cancel.
	* sysdeps/generic/not-cancel.h: Likewise.
	* catgets/open_catalog.c: Use not-cancelable syscalls.
	* time/Makefile (CFLAGS-getdate.c): Add -fexceptions.
	* sysdeps/unix/sysv/linux/llseek.c: Must not be cancelable.
	* sysdeps/unix/syscalls.list: Don't mark lseek as cancelable.
	* dlfcn/dlfcn.h: Mark dlopen with __THROW again.
	* io/fcntl.h: Don't mark posix_fallocate with __THROW.
	* libio/fileops.c: Use not-cancelable syscalls for fclose.
	* libio/iopopen.c: Use no-cancelable syscalls.
	* libio/stdio.h: Mark popen and pclose with __THROW again.
	* misc/Makefile (CFLAGS-syslog.c): Add -fexceptions.
	* misc/syslog.c: Fix locking and cancellation cleanup handling.
	* posix/unistd.h: Mark ttyname and ttyname_r again with __THROW.
	* stdio-common/Makefile (CFLAGS-tmpfile.c, CFLAGS-tmpfile64.c,
	CFLAGS-tempname.c): Add -fexceptions.
	* stdlib/Makefile (CFLAGS-mkstemp.c): Add -fexceptions.
	* string/string.h: Mark strerror and strerror_r with _THROW again.
	* sysdeps/generic/unwind.inc: New file.  Copied from gcc.
	* sysdeps/generic/unwind-dw2.c: Update from gcc version.  Remove
	#ifs since we now need all the code compiled.
	* sysdeps/posix/spawni.c: Use close_not_cancel instead of close.
	* sysdeps/unix/closedir.c: Use not-cancelable syscalls.
	* sysdeps/unix/opendir.c: Likewise.
2003-07-15 07:52:52 +00:00
Ulrich Drepper
da35d15e2b Update.
2003-07-14  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/configure.in: Require CFI directives also for
	ppc and s390.
2003-07-15 04:34:40 +00:00
Ulrich Drepper
75540d8ad4 Update.
2003-07-14  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Fix typo
	in test for compilation in libc.
2003-07-14 23:05:23 +00:00
Ulrich Drepper
4a17085f15 Update.
2003-07-12  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/socket.S: Save and restore the PR
	register across CENABLE and CDISABLE.
2003-07-12 01:29:23 +00:00
Ulrich Drepper
6080ecdf3c Update.
* sysdeps/unix/sysv/linux/sigwait.c: Include string.h.
	* sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
	* sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.
	* sysdeps/unix/sysv/linux/sleep.c (__sleep): Cast value to unsigned
	int before assigning to max to avoid warnings.

2003-07-11  Jakub Jelinek  <jakub@redhat.com>
2003-07-11 22:50:16 +00:00
Ulrich Drepper
da0c02eee1 Update.
2003-07-08  Jakub Jelinek  <jakub@redhat.com>

	* pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
	__pthread_unregister_cancel): Add prototypes and hidden_proto.
	* unwind.c (__pthread_unwind_next): Add hidden_def.
	* cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
	Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
	Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
	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.
	* sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
	HIDDEN_JUMPTARGET to call __pthread_register_cancel,
	__pthread_unregister_cancel and __pthread_unwind_next.
2003-07-08 21:08:13 +00:00
Ulrich Drepper
57a5ea0215 Update.
2003-07-04  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/s390/s390-32/elf/start.S: Emit position independent code
	if PIC.
	* sysdeps/s390/s390-64/elf/start.S: Likewise.

2003-07-07  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/powerpc/powerpc64/elf/start.S: Put L(start_address)
	into .data.rel.ro.local section if PIC to avoid DT_TEXTREL.
2003-07-08 03:49:44 +00:00
Ulrich Drepper
d810b3584c Update.
2003-07-07  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/kernel-features.h: Version
	__ASSUME_CORRECT_SI_PID and __ASSUME_TGKILL if possible.

	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Adjust for
	compilation with HAVE_AUX_SECURE defined.
2003-07-08 03:42:49 +00:00
Ulrich Drepper
db54f488ee Update.
2003-07-07  Ulrich Drepper  <drepper@redhat.com>

	* descr.h (struct pthread): Add pid field.
	* allocatestack.c (allocate_stack): Initialize pid field in descriptor.
	(__reclaim_stacks): Likewise.
	* init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
	also check for PID of the signal source.
	(__pthread_initialize_minimal_internal): Also initialize pid field
	of initial thread's descriptor.
	* pthread_cancel.c: Use tgkill instead of tkill if possible.
	* sysdeps/unix/sysv/linux/fork.c: Likewise.
	* sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
	* sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
	* sysdeps/unix/sysv/linux/raise.c: Likewise.
2003-07-08 03:40:49 +00:00
Ulrich Drepper
5e497a4142 Update.
2003-07-05  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
	Fix use of parameter.
	(__libc_cleanup_pop): Likewise.
2003-07-05 07:26:41 +00:00
Ulrich Drepper
86a0c4fafb Update.
2003-07-04  Ulrich Drepper  <drepper@redhat.com>

	* init.c (sigcancel_handler): Change parameters to match handler
	for SA_SIGACTION.  Check signal number and code to recognize
	invalid invocations.
2003-07-05 06:25:25 +00:00
Ulrich Drepper
a1ed6b4cab (sigcancel_handler): Change parameters to match handler for SA_SIGACTION. Check signal number and code to recognize invalid invocations. 2003-07-05 06:18:19 +00:00
Roland McGrath
bdbecaa3f1 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
Apply sizeof (struct pthread) bias to r13 value.
2003-07-03 23:55:28 +00:00
Roland McGrath
65984e9839 2003-07-03 Roland McGrath <roland@redhat.com>
* sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
	Apply sizeof (struct pthread) bias to r13 value.
2003-07-03 23:55:19 +00:00
Ulrich Drepper
a916cb664b CFI is only really required (so far) for x86 and hammer. 2003-07-03 22:34:29 +00:00
Ulrich Drepper
fbd90f6c25 Update.
2003-07-03  Ulrich Drepper  <drepper@redhat.com>

	* configure.in: Also check for .cfi_rel_offset pseudo-op.
2003-07-03 21:08:05 +00:00
Ulrich Drepper
1418bf990e Update.
2003-07-03  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_AT_CLKTCK):
	Define.
	* sysdeps/unix/sysv/linux/prof-freq.h: New file.
2003-07-03 08:51:46 +00:00
Ulrich Drepper
56421b23d7 Update.
2003-07-03  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
	definition.
	* pthreadP.h (__pthread_unwind): Add hidden_proto if used in
	libpthread compilation.
	* unwind.c (__pthread_unwind): Add hidden_def.
	* Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
2003-07-03 07:37:59 +00:00
Ulrich Drepper
ca2b4cd7b1 Update.
2003-07-01  Ulrich Drepper  <drepper@redhat.com>

	* libc-cancellation.c (__libc_cleanup_routine): Define.
	* sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
	(__pthread_cleanup_pop): Define.
2003-07-02 05:13:15 +00:00
Ulrich Drepper
f036e569ac Update.
2003-07-01  Richard Henderson  <rth@redhat.com>

	* sysdeps/alpha/elf/pt-initfini.c: New file.
	* sysdeps/alpha/pthread_spin_lock.S: New file.
	* sysdeps/alpha/pthread_spin_trylock.S: New file.
	* sysdeps/alpha/pthreaddef.h: New file.
	* sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
	* sysdeps/alpha/tls.h: New file.
	* sysdeps/unix/sysv/linux/alpha/Makefile: New file.
	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
	* sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
	* sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
	* sysdeps/unix/sysv/linux/alpha/fork.c: New file.
	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
	* sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
	* sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
	* sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
2003-07-01 20:23:15 +00:00
Ulrich Drepper
3b985826ca Update.
2003-07-01  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
	cleanup support and unwind info.
2003-07-01 17:02:15 +00:00
Ulrich Drepper
96c814d3d8 Update.
* sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
	* sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
2003-07-01 03:33:06 +00:00
Ulrich Drepper
3a4d1e1e49 Update.
2003-06-30  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
	Use correct cleanup handler registration.  Add unwind info.
	* tst-once3.c: Add cleanup handler and check it is called.
	* tst-once4.c: Likewise.
	* tst-oncex3.c: New file.
	* tst-oncex4.c: New file.
	* Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
2003-07-01 03:29:50 +00:00
Ulrich Drepper
e479cc8e4c Update.
2003-06-29  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
2003-06-29 23:01:49 +00:00
Ulrich Drepper
999a0fc1b9 Bump to 0.50. 2003-06-27 19:48:13 +00:00
Ulrich Drepper
483e95d09b Update.
* tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
	(tf_msgsnd): Likewise.
2003-06-27 17:53:52 +00:00
Ulrich Drepper
7d7ff54cb9 Update.
2003-06-27  Ulrich Drepper  <drepper@redhat.com>

	* rt/Makefile (CFLAGS-librt-cancellation.c): Define.
2003-06-27 08:17:46 +00:00
Ulrich Drepper
7539c7ecfd Update.
2003-06-26  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
	definition to the front.

	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
	the cleanup functions to make the names unique.  Fix dwarf opcode
	un unwind table.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
	functions to make the names unique.  Fix CFA offset for two blocks.
2003-06-27 07:02:58 +00:00
Ulrich Drepper
4ae89108d3 Move __pthread_unwind definition to the front. 2003-06-27 06:59:36 +00:00
Ulrich Drepper
0af6a1d959 Update.
2003-06-25  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
	missing closing braces.
	Patch by Christophe Saout <christophe@saout.de>.
2003-06-26 01:14:06 +00:00
Ulrich Drepper
63b9245a11 (class __pthread_cleanup_class): Add missing closing braces. 2003-06-26 01:13:19 +00:00
Ulrich Drepper
7f8f7b9dc8 Update.
* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
2003-06-25 05:32:19 +00:00
Ulrich Drepper
16015b92d0 POSIX options for Linux/x86-64 with nptl. 2003-06-25 05:26:47 +00:00
Roland McGrath
eef4a9f3e1 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Support cancellation
in librt.

	* sysdeps/unix/sysv/linux/alpha/Makefile (libpthread-routines):
2003-06-25 03:22:03 +00:00
Ulrich Drepper
4165d44d70 Update.
* include/time.h: Define CLOCK_IDFIELD_SIZE.
	* sysdeps/posix/clock_getres.c: Recognize thread CPU clock IDs.
	* sysdeps/unix/clock_gettime.c: Likewise.
	* sysdeps/unix/clock_settime.c: Likewise.
	* sysdeps/unix/clock_nanosleep.c (CPUCLOCK_P): Adjust for new
	clock id for thread CPU clocks.
2003-06-25 00:00:50 +00:00
Ulrich Drepper
67b78ef91b Update.
* sysdeps/pthread/aio_misc.h: Mark __aio_requests_mutex,
	__aio_enqueue_request, __aio_find_req, __aio_find_req_fd,
	__aio_free_request, __aio_notify, and __aio_sigqueue as hidden.

	* sysdeps/pthread/aio_suspend.c (aio_suspend): Set errno to the result
	of pthread_cond_wait if there was an error.  Use pthread_cleanup_*
	instead of __lbic_cleanup_region_*.
2003-06-24 02:50:16 +00:00
Ulrich Drepper
3a4f2043a1 Update.
* pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
	* pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
	attribute_hidden.
2003-06-23 01:29:14 +00:00
Ulrich Drepper
6162364368 Update.
2003-06-22  Ulrich Drepper  <drepper@redhat.com>

	* pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
	(__pthread_mutex_lock_internal): Likewise.
	(__pthread_mutex_unlock_internal): Likewise.
	(__pthread_mutex_unlock_usercnt): Declare.
	* pthread_mutex_destroy.c: Always fail if used in any way.
	* pthread_mutex_init.c: Update comment.
	* pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
	* pthread_mutex_timedlock.c: Adjust __nusers.
	* pthread_mutex_trylock.c: Adjust __nusers.
	* pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
	and public interfaces are wrapper with pass additional parameter.
	__pthread_mutex_unlock_usercnt does not adjust __nusers if second
	parameter zero.
	* tst-mutex8.c: New file.
	* Makefile (tests): Add tst-mutex8.
	* sysdeps/pthread/pthread_cond_timedwait.c: Call
	__pthread_mutex_unlock_usercnt.
	* sysdeps/pthread/pthread_cond_wait.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
	* 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/pthread_mutex_cond_lock.c: Define NO_INCR.
	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
	Add __nusers.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.

	* pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
	* pthread_mutex_timedlock.c: Likewise.
	* pthread_mutex_trylock.c: Adjust __nusers.
	* pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
	* tst-mutex9.c: New file.
	* Makefile (tests): Add tst-mutex9.
	* sysdeps/i386/tls.h: Remove THREAD_ID definition.
	* sysdeps/ia64/tls.h: Likewise.
	* sysdeps/powerpc/tls.h: Likewise.
	* sysdeps/s390/tls.h: Likewise.
	* sysdeps/sh/tls.h: Likewise.
	* sysdeps/x86_64/tls.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
	Change type of __owner.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2003-06-22 23:55:27 +00:00
Ulrich Drepper
b758b9cb10 (__pthread_mutex_init_internal): Mark hidden. (__pthread_mutex_lock_internal): Likewise. (__pthread_mutex_unlock_internal): Likewise. (__pthread_mutex_unlock_usercnt): Declare. 2003-06-22 23:36:29 +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
4e502c601d Make clear that futex_wake in sem_post gets passed the new value. 2003-06-19 19:49:50 +00:00
Ulrich Drepper
ca343e7358 Update.
* tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
	find a random value.
	(tf_msgrcv): Likewise.  Also don't report msgrcv returns if
	errno==EIDRM.
2003-06-18 22:25:33 +00:00
Ulrich Drepper
50441a984d Update.
* sysdeps/unix/sysv/linux/x86_64/register-dump.h (register_dump):
	Fix completely broken impleentation.  The second parameter is of
	type struct ucontext*.

	* sysdeps/x86_64/dl-machine.h (elf_machine_runtime_setup): Always
	inline.

	* sysdeps/i386/i686/dl-hash.h: Don't inline _dl_elf_hash.
	* sysdeps/generic/dl-hash.h: Likewise.

	* sysdeps/generic/memcmp.c: Remove inline from
	memcmp_common_alignment and memcmp_not_common_alignment definition.
2003-06-18 19:34:34 +00:00
Ulrich Drepper
f6c93bd9c8 Update.
2003-06-18  Ulrich Drepper  <drepper@redhat.com>

	* pthread_mutex_destroy.c (__pthread_mutex_destroy): For
	error-checking mutex detect busy mutexes.
2003-06-18 18:10:57 +00:00
Ulrich Drepper
1d53508d2c Update.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
	Add ax to clobber list.
	(lll_mutex_cond_lock): Likewise.
	(lll_mutex_unlock): Likewise.
	(lll_lock): Likewise.
	(lll_unlock): Likewise.
2003-06-18 00:00:50 +00:00
Ulrich Drepper
f23b30e23b Update.
2003-06-17  Jakub Jelinek  <jakub@redhat.com>

	* posix/regcomp.c (build_word_op): Use alnum instead of alpha class.
2003-06-17 22:40:05 +00:00
Ulrich Drepper
60d73a7ac4 Update.
* sysdeps/unix/clock_nanosleep.c (clock_nanosleep): nanosleep
	takes care of enabling cancellation.

	* sysdeps/pthread/aio_suspend.c (aio_suspend): Make aio_suspend
	cancelable.  It's not correct to disable cancellation.  Instead of
	a cleanup handler.
2003-06-17 22:11:22 +00:00
Ulrich Drepper
047aec8f19 Update..
2003-06-17  Ulrich Drepper  <drepper@redhat.com>

	* tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
2003-06-17 09:33:56 +00:00
Ulrich Drepper
bbde852717 Update.
2003-06-17  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/sleep.c: Use CANCELLATION_P if defined before
	returning because seconds==0.
2003-06-17 08:58:31 +00:00
Ulrich Drepper
2667645020 Update.
2003-06-17  Ulrich Drepper  <drepper@redhat.com>

	* tst-cancel4.c: Add tests for the socket and signal functions, pause.
	Also test early cancellation before the thread reaches the cancellation
	point.

	* Makefile: Compile forward.c with exceptions.

	* sysdeps/unix/sysv/linux/sleep.c: New file.
2003-06-17 08:44:32 +00:00