Fix nptl-init.c use of INTERNAL_SYSCALL_DECL.

This commit is contained in:
Roland McGrath 2015-05-22 10:18:17 -07:00
parent 4e5f9259f3
commit 992328e5e0
2 changed files with 25 additions and 11 deletions

View File

@ -1,3 +1,9 @@
2015-05-22 Roland McGrath <roland@hack.frob.com>
* nptl/nptl-init.c (__pthread_initialize_minimal_internal):
Use a separate INTERNAL_SYSCALL_DECL (err); in a local scope
for each INTERNAL_SYSCALL use.
2015-05-22 Joseph Myers <joseph@codesourcery.com>
[BZ #438]

View File

@ -322,19 +322,22 @@ __pthread_initialize_minimal_internal (void)
#endif
/* Initialize the robust mutex data. */
{
#ifdef __PTHREAD_MUTEX_HAVE_PREV
pd->robust_prev = &pd->robust_head;
pd->robust_prev = &pd->robust_head;
#endif
pd->robust_head.list = &pd->robust_head;
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 (set_robust_list, err, 2, &pd->robust_head,
sizeof (struct robust_list_head));
if (INTERNAL_SYSCALL_ERROR_P (res, err))
pd->robust_head.futex_offset = (offsetof (pthread_mutex_t, __data.__lock)
- offsetof (pthread_mutex_t,
__data.__list.__next));
INTERNAL_SYSCALL_DECL (err);
int res = INTERNAL_SYSCALL (set_robust_list, err, 2, &pd->robust_head,
sizeof (struct robust_list_head));
if (INTERNAL_SYSCALL_ERROR_P (res, err))
#endif
set_robust_list_not_avail ();
set_robust_list_not_avail ();
}
#ifdef __NR_futex
# ifndef __ASSUME_PRIVATE_FUTEX
@ -342,6 +345,7 @@ __pthread_initialize_minimal_internal (void)
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))
@ -362,6 +366,7 @@ __pthread_initialize_minimal_internal (void)
is irrelevant. Given that passing six parameters is difficult
on some architectures we just pass whatever random value the
calling convention calls for to the kernel. It causes no harm. */
INTERNAL_SYSCALL_DECL (err);
word = INTERNAL_SYSCALL (futex, err, 5, &word,
FUTEX_WAIT_BITSET | FUTEX_CLOCK_REALTIME
| FUTEX_PRIVATE_FLAG, 1, NULL, 0);
@ -414,8 +419,11 @@ __pthread_initialize_minimal_internal (void)
# ifdef SIGSETXID
__sigaddset (&sa.sa_mask, SIGSETXID);
# endif
(void) INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_UNBLOCK, &sa.sa_mask,
NULL, _NSIG / 8);
{
INTERNAL_SYSCALL_DECL (err);
(void) INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_UNBLOCK, &sa.sa_mask,
NULL, _NSIG / 8);
}
#endif
/* Get the size of the static and alignment requirements for the TLS