summaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog28
-rw-r--r--nptl/init.c2
-rw-r--r--nptl/pthread_create.c6
-rw-r--r--nptl/sysdeps/pthread/pthread.h28
-rw-r--r--nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h78
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h8
6 files changed, 103 insertions, 47 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index c0c5f82ea8..7b9999860d 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,31 @@
+2009-03-09 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Define
+ FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET, FUTEX_CLOCK_REALTIME and
+ FUTEX_BITSET_MATCH_ANY.
+
+2009-02-27 Roland McGrath <roland@redhat.com>
+
+ * init.c (__nptl_initial_report_events): Mark __attribute_used__.
+ * pthread_create.c (__nptl_threads_events, __nptl_last_event): Likewise.
+
+2009-02-26 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
+ _POSIX_THREAD_ROBUST_PRIO_INHERIT and
+ _POSIX_THREAD_ROBUST_PRIO_PROTECT. Reset value of macros from
+ 200112L to 200809L.
+
+2009-02-25 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/pthread/pthread.h: The robust mutex functions are in
+ POSIX 2008.
+
+2009-02-24 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/bits/posix_opt.h (_BITS_POSIX_OPT_H):
+ Unify name of include protector macro.
+
2009-02-14 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
diff --git a/nptl/init.c b/nptl/init.c
index d0f1fc3be7..ba3caeead8 100644
--- a/nptl/init.c
+++ b/nptl/init.c
@@ -260,7 +260,7 @@ extern void **__libc_dl_error_tsd (void) __attribute__ ((const));
/* This can be set by the debugger before initialization is complete. */
-static bool __nptl_initial_report_events;
+static bool __nptl_initial_report_events __attribute_used__;
void
__pthread_initialize_minimal_internal (void)
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index 5fcc72cfbc..c69397906f 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2007, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2007,2008,2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -40,10 +40,10 @@ static int start_thread (void *arg);
int __pthread_debug;
/* Globally enabled events. */
-static td_thr_events_t __nptl_threads_events;
+static td_thr_events_t __nptl_threads_events __attribute_used__;
/* Pointer to descriptor with the last event. */
-static struct pthread *__nptl_last_event;
+static struct pthread *__nptl_last_event __attribute_used__;
/* Number of threads running. */
unsigned int __nptl_nthreads = 1;
diff --git a/nptl/sysdeps/pthread/pthread.h b/nptl/sysdeps/pthread/pthread.h
index cc7472eaff..d71b4cc47d 100644
--- a/nptl/sysdeps/pthread/pthread.h
+++ b/nptl/sysdeps/pthread/pthread.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
+/* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -63,12 +63,14 @@ enum
};
-#ifdef __USE_GNU
+#ifdef __USE_XOPEN2K
/* Robust mutex or not flags. */
enum
{
- PTHREAD_MUTEX_STALLED_NP,
- PTHREAD_MUTEX_ROBUST_NP
+ PTHREAD_MUTEX_STALLED,
+ PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
+ PTHREAD_MUTEX_ROBUST,
+ PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
};
#endif
@@ -762,10 +764,14 @@ extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
#endif
-#ifdef __USE_GNU
+#ifdef __USE_XOPEN2K8
/* Declare the state protected by MUTEX as consistent. */
extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
__THROW __nonnull ((1));
+# ifdef __USE_GNU
+extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
+ __THROW __nonnull ((1));
+# endif
#endif
@@ -827,16 +833,26 @@ extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
__THROW __nonnull ((1));
#endif
-#ifdef __USE_GNU
+#ifdef __USE_XOPEN2K
/* Get the robustness flag of the mutex attribute ATTR. */
+extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr,
+ int *__robustness)
+ __THROW __nonnull ((1, 2));
+# ifdef __USE_GNU
extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
int *__robustness)
__THROW __nonnull ((1, 2));
+# endif
/* Set the robustness flag of the mutex attribute ATTR. */
+extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
+ int __robustness)
+ __THROW __nonnull ((1));
+# ifdef __USE_GNU
extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
int __robustness)
__THROW __nonnull ((1));
+# endif
#endif
diff --git a/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h b/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
index 39f56a0a6b..e23ad29e3e 100644
--- a/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
+++ b/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
@@ -1,5 +1,5 @@
/* Define POSIX options for Linux.
- Copyright (C) 1996-2004, 2006, 2008 Free Software Foundation, Inc.
+ Copyright (C) 1996-2004, 2006, 2008, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,8 +17,8 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-#ifndef _POSIX_OPT_H
-#define _POSIX_OPT_H 1
+#ifndef _BITS_POSIX_OPT_H
+#define _BITS_POSIX_OPT_H 1
/* Job control is supported. */
#define _POSIX_JOB_CONTROL 1
@@ -27,25 +27,25 @@
#define _POSIX_SAVED_IDS 1
/* Priority scheduling is supported. */
-#define _POSIX_PRIORITY_SCHEDULING 200112L
+#define _POSIX_PRIORITY_SCHEDULING 200809L
/* Synchronizing file data is supported. */
-#define _POSIX_SYNCHRONIZED_IO 200112L
+#define _POSIX_SYNCHRONIZED_IO 200809L
/* The fsync function is present. */
-#define _POSIX_FSYNC 200112L
+#define _POSIX_FSYNC 200809L
/* Mapping of files to memory is supported. */
-#define _POSIX_MAPPED_FILES 200112L
+#define _POSIX_MAPPED_FILES 200809L
/* Locking of all memory is supported. */
-#define _POSIX_MEMLOCK 200112L
+#define _POSIX_MEMLOCK 200809L
/* Locking of ranges of memory is supported. */
-#define _POSIX_MEMLOCK_RANGE 200112L
+#define _POSIX_MEMLOCK_RANGE 200809L
/* Setting of memory protections is supported. */
-#define _POSIX_MEMORY_PROTECTION 200112L
+#define _POSIX_MEMORY_PROTECTION 200809L
/* Some filesystems allow all users to change file ownership. */
#define _POSIX_CHOWN_RESTRICTED 0
@@ -67,41 +67,47 @@
#define _XOPEN_SHM 1
/* Tell we have POSIX threads. */
-#define _POSIX_THREADS 200112L
+#define _POSIX_THREADS 200809L
/* We have the reentrant functions described in POSIX. */
#define _POSIX_REENTRANT_FUNCTIONS 1
-#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
+#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L
/* We provide priority scheduling for threads. */
-#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L
+#define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L
/* We support user-defined stack sizes. */
-#define _POSIX_THREAD_ATTR_STACKSIZE 200112L
+#define _POSIX_THREAD_ATTR_STACKSIZE 200809L
/* We support user-defined stacks. */
-#define _POSIX_THREAD_ATTR_STACKADDR 200112L
+#define _POSIX_THREAD_ATTR_STACKADDR 200809L
/* We support priority inheritence. */
-#define _POSIX_THREAD_PRIO_INHERIT 200112L
+#define _POSIX_THREAD_PRIO_INHERIT 200809L
+
+/* We support priority inheritence for robust mutexes. */
+#define _POSIX_THREAD_ROBUST_PRIO_INHERIT 200809L
/* We support priority protection, though only for non-robust
mutexes. */
-#define _POSIX_THREAD_PRIO_PROTECT 200112L
+#define _POSIX_THREAD_PRIO_PROTECT 200809L
+
+/* We do not support priority protection for robust mutexes. */
+#define _POSIX_THREAD_ROBUST_PRIO_PROTECT -1
/* We support POSIX.1b semaphores. */
-#define _POSIX_SEMAPHORES 200112L
+#define _POSIX_SEMAPHORES 200809L
/* Real-time signals are supported. */
-#define _POSIX_REALTIME_SIGNALS 200112L
+#define _POSIX_REALTIME_SIGNALS 200809L
/* We support asynchronous I/O. */
-#define _POSIX_ASYNCHRONOUS_IO 200112L
+#define _POSIX_ASYNCHRONOUS_IO 200809L
#define _POSIX_ASYNC_IO 1
/* Alternative name for Unix98. */
#define _LFS_ASYNCHRONOUS_IO 1
/* Support for prioritization is also available. */
-#define _POSIX_PRIORITIZED_IO 200112L
+#define _POSIX_PRIORITIZED_IO 200809L
/* The LFS support in asynchronous I/O is also available. */
#define _LFS64_ASYNCHRONOUS_IO 1
@@ -112,7 +118,7 @@
#define _LFS64_STDIO 1
/* POSIX shared memory objects are implemented. */
-#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
+#define _POSIX_SHARED_MEMORY_OBJECTS 200809L
/* CPU-time clocks support needs to be checked at runtime. */
#define _POSIX_CPUTIME 0
@@ -124,49 +130,49 @@
#define _POSIX_REGEXP 1
/* Reader/Writer locks are available. */
-#define _POSIX_READER_WRITER_LOCKS 200112L
+#define _POSIX_READER_WRITER_LOCKS 200809L
/* We have a POSIX shell. */
#define _POSIX_SHELL 1
/* We support the Timeouts option. */
-#define _POSIX_TIMEOUTS 200112L
+#define _POSIX_TIMEOUTS 200809L
/* We support spinlocks. */
-#define _POSIX_SPIN_LOCKS 200112L
+#define _POSIX_SPIN_LOCKS 200809L
/* The `spawn' function family is supported. */
-#define _POSIX_SPAWN 200112L
+#define _POSIX_SPAWN 200809L
/* We have POSIX timers. */
-#define _POSIX_TIMERS 200112L
+#define _POSIX_TIMERS 200809L
/* The barrier functions are available. */
-#define _POSIX_BARRIERS 200112L
+#define _POSIX_BARRIERS 200809L
/* POSIX message queues are available. */
-#define _POSIX_MESSAGE_PASSING 200112L
+#define _POSIX_MESSAGE_PASSING 200809L
/* Thread process-shared synchronization is supported. */
-#define _POSIX_THREAD_PROCESS_SHARED 200112L
+#define _POSIX_THREAD_PROCESS_SHARED 200809L
/* The monotonic clock might be available. */
#define _POSIX_MONOTONIC_CLOCK 0
/* The clock selection interfaces are available. */
-#define _POSIX_CLOCK_SELECTION 200112L
+#define _POSIX_CLOCK_SELECTION 200809L
/* Advisory information interfaces are available. */
-#define _POSIX_ADVISORY_INFO 200112L
+#define _POSIX_ADVISORY_INFO 200809L
/* IPv6 support is available. */
-#define _POSIX_IPV6 200112L
+#define _POSIX_IPV6 200809L
/* Raw socket support is available. */
-#define _POSIX_RAW_SOCKETS 200112L
+#define _POSIX_RAW_SOCKETS 200809L
/* We have at least one terminal. */
-#define _POSIX2_CHAR_TERM 200112L
+#define _POSIX2_CHAR_TERM 200809L
/* Neither process nor thread sporadic server interfaces is available. */
#define _POSIX_SPORADIC_SERVER -1
@@ -184,4 +190,4 @@
/* Streams are not available. */
#define _XOPEN_STREAMS -1
-#endif /* posix_opt.h */
+#endif /* bits/posix_opt.h */
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
index 754a0f51fe..c24c54937d 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
@@ -36,7 +37,12 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
+#define FUTEX_WAIT_BITSET 9
+#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
+#define FUTEX_CLOCK_REALTIME 256
+
+#define FUTEX_BITSET_MATCH_ANY 0xffffffff
/* Values for 'private' parameter of locking macros. Yes, the