* sysdeps/unix/sysv/linux/kernel-features.h: Define
authorUlrich Drepper <drepper@redhat.com>
Sat, 29 Jul 2006 05:07:43 +0000 (05:07 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 29 Jul 2006 05:07:43 +0000 (05:07 +0000)
__ASSUME_FUTEX_LOCK_PI.
* include/time.h: Declare __nanosleep_nocancel.
* include/unistd.h: Declare __pause_nocancel.

14 files changed:
ChangeLog
NEWS
include/time.h
include/unistd.h
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h
nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h
nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h
nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
sysdeps/unix/sysv/linux/kernel-features.h

index 4c72197..dfca3fc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2006-07-28  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/unix/sysv/linux/kernel-features.h: Define
+       __ASSUME_FUTEX_LOCK_PI.
+       * include/time.h: Declare __nanosleep_nocancel.
+       * include/unistd.h: Declare __pause_nocancel.
+
        * dlfcn/Makefile (LDLIBS-bug-atexit3-lib.so): Use this instead of
        LDFLAGS.  Add -lgcc_eh and libc_nonshared (again) to make sure we
        get the __stack_chk_fail_local definition when it's needed.
diff --git a/NEWS b/NEWS
index 0f73029..55855ad 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes.  2006-07-10
+GNU C Library NEWS -- history of user-visible changes.  2006-07-28
 Copyright (C) 1992-2002,2003,2004,2005,2006 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -33,6 +33,9 @@ Version 2.5
 
 * Support for the new ELF hash table format was added by Ulrich Drepper.
 
+* Support for priority inheritance mutexes added by Jakub Jelinek and
+  Ulrich Drepper.
+
 \f
 Version 2.4
 
index 2247365..f2a6489 100644 (file)
@@ -81,6 +81,8 @@ extern long int __tzname_max (void);
 
 extern int __nanosleep (__const struct timespec *__requested_time,
                        struct timespec *__remaining);
+extern int __nanosleep_nocancel (__const struct timespec *__requested_time,
+                                struct timespec *__remaining);
 libc_hidden_proto(__nanosleep)
 extern int __getdate_r (__const char *__string, struct tm *__resbufp);
 
index f8f15ed..fb7a044 100644 (file)
@@ -162,5 +162,7 @@ extern __pid_t __libc_fork (void);
 /* Suspend the process until a signal arrives.
    This always returns -1 and sets `errno' to EINTR.  */
 extern int __libc_pause (void);
+/* Not cancelable variant.  */
+extern int __pause_nocancel (void);
 
 #endif
index 073106c..46a7f33 100644 (file)
        * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_LOCK_PI,
        FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.
        * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/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.
+       * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
+       * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
        _POSIX_THREAD_PRIO_INHERIT to 200112L.
        * tst-mutex1.c: Adjust to allow use in PI mutex test.
index 1a2e8cb..58b4806 100644 (file)
@@ -33,6 +33,9 @@
 #define FUTEX_CMP_REQUEUE      4
 #define FUTEX_WAKE_OP          5
 #define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE  ((4 << 24) | 1)
+#define FUTEX_LOCK_PI          6
+#define FUTEX_UNLOCK_PI                7
+#define FUTEX_TRYLOCK_PI       8
 
 /* Initializer for compatibility lock. */
 #define LLL_MUTEX_LOCK_INITIALIZER (0)
index 639f6a0..ac788eb 100644 (file)
@@ -35,6 +35,9 @@
 #define SYS_futex              240
 #define FUTEX_WAIT             0
 #define FUTEX_WAKE             1
+#define FUTEX_LOCK_PI          6
+#define FUTEX_UNLOCK_PI                7
+#define FUTEX_TRYLOCK_PI       8
 
 
 /* Initializer for compatibility lock.  */
index ece9a7f..8df997a 100644 (file)
@@ -33,6 +33,9 @@
 #define FUTEX_CMP_REQUEUE      4
 #define FUTEX_WAKE_OP          5
 #define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE  ((4 << 24) | 1)
+#define FUTEX_LOCK_PI          6
+#define FUTEX_UNLOCK_PI                7
+#define FUTEX_TRYLOCK_PI       8
 
 /* Delay in spinlock loop.  */
 #define BUSY_WAIT_NOP          asm ("hint @pause")
index abd019d..0136b97 100644 (file)
@@ -35,6 +35,9 @@
 #define FUTEX_CMP_REQUEUE      4
 #define FUTEX_WAKE_OP          5
 #define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE  ((4 << 24) | 1)
+#define FUTEX_LOCK_PI          6
+#define FUTEX_UNLOCK_PI                7
+#define FUTEX_TRYLOCK_PI       8
 
 /* Initializer for compatibility lock. */
 #define LLL_MUTEX_LOCK_INITIALIZER (0)
index 6baab90..38d9f2a 100644 (file)
@@ -32,6 +32,9 @@
 #define FUTEX_CMP_REQUEUE      4
 #define FUTEX_WAKE_OP          5
 #define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE  ((4 << 24) | 1)
+#define FUTEX_LOCK_PI          6
+#define FUTEX_UNLOCK_PI                7
+#define FUTEX_TRYLOCK_PI       8
 
 /* Initializer for compatibility lock. */
 #define LLL_MUTEX_LOCK_INITIALIZER (0)
index 92f93cd..0eb1f01 100644 (file)
@@ -26,6 +26,9 @@
 #define SYS_futex              240
 #define FUTEX_WAIT             0
 #define FUTEX_WAKE             1
+#define FUTEX_LOCK_PI          6
+#define FUTEX_UNLOCK_PI                7
+#define FUTEX_TRYLOCK_PI       8
 
 
 /* Initializer for compatibility lock.  */
index 77eefc5..5013922 100644 (file)
@@ -32,6 +32,9 @@
 #define FUTEX_CMP_REQUEUE      4
 #define FUTEX_WAKE_OP          5
 #define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE  ((4 << 24) | 1)
+#define FUTEX_LOCK_PI          6
+#define FUTEX_UNLOCK_PI                7
+#define FUTEX_TRYLOCK_PI       8
 
 /* Initializer for compatibility lock. */
 #define LLL_MUTEX_LOCK_INITIALIZER (0)
index 95e6923..c354e84 100644 (file)
@@ -35,6 +35,9 @@
 #define SYS_futex              202
 #define FUTEX_WAIT             0
 #define FUTEX_WAKE             1
+#define FUTEX_LOCK_PI          6
+#define FUTEX_UNLOCK_PI                7
+#define FUTEX_TRYLOCK_PI       8
 
 
 /* Initializer for compatibility lock.  */
index 139e3d5..e54f675 100644 (file)
 /* pselect was introduced just after 2.6.16-rc1.  Due to the way the
    kernel versions are advertised we can only rely on 2.6.17 to have
    the code.  */
-#if __LINUX_KERNEL_VERSION >= 0x020611 \
-    && (defined __i386__ || defined __powerpc__)
+#if __LINUX_KERNEL_VERSION >= 0x020611 && !defined __x86_64__
 # define __ASSUME_PSELECT      1
 #endif
 
 /* ppoll was introduced just after 2.6.16-rc1.  Due to the way the
    kernel versions are advertised we can only rely on 2.6.17 to have
    the code.  */
-#if __LINUX_KERNEL_VERSION >= 0x020611 \
-    && (defined __i386__ || defined __powerpc__)
+#if __LINUX_KERNEL_VERSION >= 0x020611 && !defined __x86_64__
 # define __ASSUME_PPOLL        1
 #endif
 
 /* The *at syscalls were introduced just after 2.6.16-rc1.  Due to the way the
    kernel versions are advertised we can only rely on 2.6.17 to have
    the code.  */
-#if __LINUX_KERNEL_VERSION >= 0x020611 \
-    && (defined __i386__ || defined __x86_64__)
+#if __LINUX_KERNEL_VERSION >= 0x020611
 # define __ASSUME_ATFCTS       1
 #endif
 
 /* Support for inter-process robust mutexes was added in 2.6.17.  */
-#if __LINUX_KERNEL_VERSION >= 0x020611 \
-    && (defined __i386__ || defined __x86_64__)
+#if __LINUX_KERNEL_VERSION >= 0x020611
 # define __ASSUME_SET_ROBUST_LIST      1
 #endif
+
+/* Support for PI futexes was added in 2.6.18.  */
+#if __LINUX_KERNEL_VERSION >= 0x020612
+# define __ASSUME_FUTEX_LOCK_PI        1
+#endif