diff options
author | Florian Weimer <fweimer@redhat.com> | 2020-02-09 16:38:33 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2020-03-03 12:49:44 +0100 |
commit | b03604b1b8c92d9af2d61d09654b06fccdeac8d5 (patch) | |
tree | d5daaddb97a467e429942e28f0470c26df21c427 /nptl | |
parent | 75376039be338702ed8904800fdcd3f1bc103ca7 (diff) | |
download | glibc-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.c | 4 | ||||
-rw-r--r-- | nptl/pthread_create.c | 6 |
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 |