summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-07-20 19:28:08 +0000
committerUlrich Drepper <drepper@redhat.com>2003-07-20 19:28:08 +0000
commit3f56243af428c05ce6c17d639378d0c17702a61c (patch)
treee7dcefb1157e6e1e4e67ad09f359e891f8316eb1
parent2a04c802bb972baad3b92ff459b770e8f54aece6 (diff)
downloadglibc-3f56243af428c05ce6c17d639378d0c17702a61c.tar.gz
glibc-3f56243af428c05ce6c17d639378d0c17702a61c.tar.xz
glibc-3f56243af428c05ce6c17d639378d0c17702a61c.zip
Update.
	* sysdeps/unix/sysv/linux/bits/sched.h (__CPU_ZERO): Fix typo.
-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