Skip to content

Commit

Permalink
* sysdeps/unix/sysv/linux/kernel-features.h: Define
Browse files Browse the repository at this point in the history
	__ASSUME_FUTEX_LOCK_PI.
	* include/time.h: Declare __nanosleep_nocancel.
	* include/unistd.h: Declare __pause_nocancel.
  • Loading branch information
Ulrich Drepper committed Jul 29, 2006
1 parent df47504 commit d5ba53f
Show file tree
Hide file tree
Showing 14 changed files with 52 additions and 9 deletions.
5 changes: 5 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
5 changes: 4 additions & 1 deletion NEWS
Original file line number Diff line number Diff line change
@@ -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.

Expand Down Expand Up @@ -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.


Version 2.4

Expand Down
2 changes: 2 additions & 0 deletions include/time.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
2 changes: 2 additions & 0 deletions include/unistd.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
6 changes: 6 additions & 0 deletions nptl/ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@
* 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.
Expand Down
3 changes: 3 additions & 0 deletions nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 3 additions & 0 deletions nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand Down
3 changes: 3 additions & 0 deletions nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
3 changes: 3 additions & 0 deletions nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 3 additions & 0 deletions nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 3 additions & 0 deletions nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand Down
3 changes: 3 additions & 0 deletions nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 3 additions & 0 deletions nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand Down
17 changes: 9 additions & 8 deletions sysdeps/unix/sysv/linux/kernel-features.h
Original file line number Diff line number Diff line change
Expand Up @@ -431,29 +431,30 @@
/* 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

0 comments on commit d5ba53f

Please sign in to comment.