aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--linuxthreads/ChangeLog7
-rw-r--r--linuxthreads/sysdeps/pthread/bits/libc-lock.h18
3 files changed, 27 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a85895f607..c7730833f0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,8 @@
2003-07-19 Ulrich Drepper <drepper@redhat.com>
+ * sysdeps/unix/sysv/linux/bits/sched.h (__CPU_ZERO): Fix typo.
+
* sysdeps/unix/sysv/linux/syscalls.list: Remove affinity syscalls.
2003-07-16 Daniel Jacobowitz <drow@mvista.com>
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 9cd3e94866..128cb1f8ad 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,10 @@
+2003-07-20 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/pthread/bits/libc-lock.h: Define __libc_cleanup_push and
+ __libc_cleanup_pop.
+
+ * tst-cancel-wrappers.sh: lseek and llseek are no cancellation points.
+
2003-07-14 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Fix typo
diff --git a/linuxthreads/sysdeps/pthread/bits/libc-lock.h b/linuxthreads/sysdeps/pthread/bits/libc-lock.h
index a9a98c52ff..2697a18371 100644
--- a/linuxthreads/sysdeps/pthread/bits/libc-lock.h
+++ b/linuxthreads/sysdeps/pthread/bits/libc-lock.h
@@ -250,6 +250,20 @@ typedef pthread_key_t __libc_key_t;
_pthread_cleanup_pop_restore (&_buffer, (DOIT)); \
}
+#define __libc_cleanup_push(fct, arg) \
+ { struct _pthread_cleanup_buffer _buffer; \
+ int _avail = _pthread_cleanup_push != NULL; \
+ if (_avail) { \
+ _pthread_cleanup_push (&_buffer, (fct), (arg)); \
+ }
+
+#define __libc_cleanup_pop(execute) \
+ if (_avail) { \
+ _pthread_cleanup_pop (&_buffer, execute); \
+ } \
+ }
+
+
/* Create thread-specific key. */
#define __libc_key_create(KEY, DESTRUCTOR) \
(__libc_maybe_call (__pthread_key_create, (KEY, DESTRUCTOR), 1))
@@ -352,6 +366,8 @@ weak_extern (BP_SYM (__pthread_getspecific))
weak_extern (BP_SYM (__pthread_once))
weak_extern (__pthread_initialize)
weak_extern (__pthread_atfork)
+weak_extern (BP_SYM (_pthread_cleanup_push))
+weak_extern (BP_SYM (_pthread_cleanup_pop))
weak_extern (BP_SYM (_pthread_cleanup_push_defer))
weak_extern (BP_SYM (_pthread_cleanup_pop_restore))
# else
@@ -377,6 +393,8 @@ weak_extern (BP_SYM (_pthread_cleanup_pop_restore))
# pragma weak __pthread_atfork
# pragma weak _pthread_cleanup_push_defer
# pragma weak _pthread_cleanup_pop_restore
+# pragma weak _pthread_cleanup_push
+# pragma weak _pthread_cleanup_pop
# endif
#endif