aboutsummaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2020-02-09 16:38:33 +0100
committerFlorian Weimer <fweimer@redhat.com>2020-03-03 12:49:44 +0100
commitb03604b1b8c92d9af2d61d09654b06fccdeac8d5 (patch)
treed5daaddb97a467e429942e28f0470c26df21c427 /nptl
parent75376039be338702ed8904800fdcd3f1bc103ca7 (diff)
downloadglibc-b03604b1b8c92d9af2d61d09654b06fccdeac8d5.zip
glibc-b03604b1b8c92d9af2d61d09654b06fccdeac8d5.tar.gz
glibc-b03604b1b8c92d9af2d61d09654b06fccdeac8d5.tar.bz2
Linux: set_robust_list syscall number is always available
Due to the built-in tables, __NR_set_robust_list is always defined (although it may not be available at run time). Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'nptl')
-rw-r--r--nptl/nptl-init.c4
-rw-r--r--nptl/pthread_create.c6
2 files changed, 2 insertions, 8 deletions
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 95ac91d..96b1444 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -117,10 +117,8 @@ static
void
__nptl_set_robust (struct pthread *self)
{
-#ifdef __NR_set_robust_list
INTERNAL_SYSCALL_CALL (set_robust_list, &self->robust_head,
sizeof (struct robust_list_head));
-#endif
}
@@ -240,14 +238,12 @@ __pthread_initialize_minimal_internal (void)
pd->robust_prev = &pd->robust_head;
#endif
pd->robust_head.list = &pd->robust_head;
-#ifdef __NR_set_robust_list
pd->robust_head.futex_offset = (offsetof (pthread_mutex_t, __data.__lock)
- offsetof (pthread_mutex_t,
__data.__list.__next));
int res = INTERNAL_SYSCALL_CALL (set_robust_list, &pd->robust_head,
sizeof (struct robust_list_head));
if (INTERNAL_SYSCALL_ERROR_P (res))
-#endif
set_robust_list_not_avail ();
}
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index 8614ec6..7c752d0 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -389,17 +389,15 @@ START_THREAD_DEFN
if (__glibc_unlikely (atomic_exchange_acq (&pd->setxid_futex, 0) == -2))
futex_wake (&pd->setxid_futex, 1, FUTEX_PRIVATE);
-#ifdef __NR_set_robust_list
-# ifndef __ASSUME_SET_ROBUST_LIST
+#ifndef __ASSUME_SET_ROBUST_LIST
if (__set_robust_list_avail >= 0)
-# endif
+#endif
{
/* This call should never fail because the initial call in init.c
succeeded. */
INTERNAL_SYSCALL_CALL (set_robust_list, &pd->robust_head,
sizeof (struct robust_list_head));
}
-#endif
/* If the parent was running cancellation handlers while creating
the thread the new thread inherited the signal mask. Reset the