aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2015-05-22 10:18:17 -0700
committerRoland McGrath <roland@hack.frob.com>2015-05-22 10:20:45 -0700
commit992328e5e0852c2f3b7126a5861235b07ad27cac (patch)
treeee9c2cfc7fd9bdc66aeac09b48bfd6add38b78ac
parent4e5f9259f352a9547b7cc35d675eac3050ed5803 (diff)
downloadglibc-992328e5e0852c2f3b7126a5861235b07ad27cac.tar
glibc-992328e5e0852c2f3b7126a5861235b07ad27cac.tar.gz
glibc-992328e5e0852c2f3b7126a5861235b07ad27cac.tar.bz2
glibc-992328e5e0852c2f3b7126a5861235b07ad27cac.zip
Fix nptl-init.c use of INTERNAL_SYSCALL_DECL.
-rw-r--r--ChangeLog6
-rw-r--r--nptl/nptl-init.c30
2 files changed, 25 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 131e161d44..059f9d2783 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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]
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 5b8d931697..8a511610cd 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -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