summaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2018-05-17 04:24:24 -0700
committerH.J. Lu <hjl.tools@gmail.com>2018-05-17 04:25:10 -0700
commit0068c08588389c4586f0481455bb2af9b44cee4e (patch)
tree57be75b3ab9ae3a264465164a64d11bbb2655657 /nptl
parent632a6cbe44cdd41dba7242887992cdca7b42922a (diff)
nptl: Remove __ASSUME_PRIVATE_FUTEX
Since __ASSUME_PRIVATE_FUTEX is always defined, this patch removes the !__ASSUME_PRIVATE_FUTEX paths. Tested with build-many-glibcs.py. * nptl/allocatestack.c (allocate_stack): Remove the !__ASSUME_PRIVATE_FUTEX paths. * nptl/descr.h (header): Remove the !__ASSUME_PRIVATE_FUTEX path. * nptl/nptl-init.c (__pthread_initialize_minimal_internal): Likewise. * sysdeps/i386/nptl/tcb-offsets.sym (PRIVATE_FUTEX): Removed. * sysdeps/powerpc/nptl/tcb-offsets.sym (PRIVATE_FUTEX): Likewise. * sysdeps/sh/nptl/tcb-offsets.sym (PRIVATE_FUTEX): Likewise. * sysdeps/x86_64/nptl/tcb-offsets.sym (PRIVATE_FUTEX): Likewise. * sysdeps/i386/nptl/tls.h: (tcbhead_t): Remve the !__ASSUME_PRIVATE_FUTEX path. * sysdeps/s390/nptl/tls.h (tcbhead_t): Likewise. * sysdeps/sparc/nptl/tls.h (tcbhead_t): Likewise. * sysdeps/x86_64/nptl/tls.h (tcbhead_t): Likewise. * sysdeps/unix/sysv/linux/i386/lowlevellock.S: Remove the !__ASSUME_PRIVATE_FUTEX macros. * sysdeps/unix/sysv/linux/lowlevellock-futex.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_PRIVATE_FUTEX): Removed.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/allocatestack.c12
-rw-r--r--nptl/descr.h3
-rw-r--r--nptl/nptl-init.c18
3 files changed, 0 insertions, 33 deletions
diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
index b374f4794d..9c10b993fd 100644
--- a/nptl/allocatestack.c
+++ b/nptl/allocatestack.c
@@ -486,12 +486,6 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
__pthread_multiple_threads = *__libc_multiple_threads_ptr = 1;
#endif
-#ifndef __ASSUME_PRIVATE_FUTEX
- /* The thread must know when private futexes are supported. */
- pd->header.private_futex = THREAD_GETMEM (THREAD_SELF,
- header.private_futex);
-#endif
-
#ifdef NEED_DL_SYSINFO
SETUP_THREAD_SYSINFO (pd);
#endif
@@ -610,12 +604,6 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
__pthread_multiple_threads = *__libc_multiple_threads_ptr = 1;
#endif
-#ifndef __ASSUME_PRIVATE_FUTEX
- /* The thread must know when private futexes are supported. */
- pd->header.private_futex = THREAD_GETMEM (THREAD_SELF,
- header.private_futex);
-#endif
-
#ifdef NEED_DL_SYSINFO
SETUP_THREAD_SYSINFO (pd);
#endif
diff --git a/nptl/descr.h b/nptl/descr.h
index 64ba29e1cb..0a0abb4d5a 100644
--- a/nptl/descr.h
+++ b/nptl/descr.h
@@ -145,9 +145,6 @@ struct pthread
looks to cancel itself and is hence going to end anyway. */
int multiple_threads;
int gscope_flag;
-# ifndef __ASSUME_PRIVATE_FUTEX
- int private_futex;
-# endif
} header;
#endif
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 5a4b52419f..1d3790f500 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -313,24 +313,6 @@ __pthread_initialize_minimal_internal (void)
}
#ifdef __NR_futex
-# ifndef __ASSUME_PRIVATE_FUTEX
- /* Private futexes are always used (at least internally) so that
- doing the test once this early is beneficial. */
- {
- int word = 0;
- INTERNAL_SYSCALL_DECL (err);
- word = INTERNAL_SYSCALL (futex, err, 3, &word,
- FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1);
- if (!INTERNAL_SYSCALL_ERROR_P (word, err))
- THREAD_SETMEM (pd, header.private_futex, FUTEX_PRIVATE_FLAG);
- }
-
- /* Private futexes have been introduced earlier than the
- FUTEX_CLOCK_REALTIME flag. We don't have to run the test if we
- know the former are not supported. This also means we know the
- kernel will return ENOSYS for unknown operations. */
- if (THREAD_GETMEM (pd, header.private_futex) != 0)
-# endif
# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
{
int word = 0;