summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2015-03-04 13:37:16 -0600
committerWaldemar Brodkorb <wbx@openadk.org>2015-03-04 13:37:16 -0600
commit474700954dda085369a77e76c1c13a2c93b0a7e1 (patch)
tree8c4f30736e3331d09d0525847b48d49b40f39889 /libc/sysdeps/linux
parent885d9c24d4c21da941603baf555fc72a3765bbe3 (diff)
parent8e5113112ae7d3402e2afb01c8cee18d3beb0f2e (diff)
Merge remote-tracking branch 'origin/upstream' into 1.0
Diffstat (limited to 'libc/sysdeps/linux')
-rw-r--r--libc/sysdeps/linux/common/bits/sigset.h21
-rw-r--r--libc/sysdeps/linux/sparc/clone.S2
2 files changed, 13 insertions, 10 deletions
diff --git a/libc/sysdeps/linux/common/bits/sigset.h b/libc/sysdeps/linux/common/bits/sigset.h
index beb859820..f220e8171 100644
--- a/libc/sysdeps/linux/common/bits/sigset.h
+++ b/libc/sysdeps/linux/common/bits/sigset.h
@@ -154,9 +154,9 @@ typedef struct {
# if !defined __USE_EXTERN_INLINES || defined __PROVIDE_OUT_OF_LINE_SIGSETFN
extern int __sigismember (const __sigset_t *, int);
libc_hidden_proto(__sigismember)
-extern int __sigaddset (__sigset_t *, int);
+extern void __sigaddset (__sigset_t *, int);
libc_hidden_proto(__sigaddset)
-extern int __sigdelset (__sigset_t *, int);
+extern void __sigdelset (__sigset_t *, int);
libc_hidden_proto(__sigdelset)
# endif
@@ -169,18 +169,19 @@ libc_hidden_proto(__sigdelset)
* will have its own copy of out-of line function emitted. */
# define _EXTERN_INLINE /*extern*/ __always_inline
# endif
-# define __SIGSETFN(NAME, BODY, CONST) \
-_EXTERN_INLINE int \
+# define __SIGSETFN(RET_TYPE, NAME, BODY, CONST) \
+_EXTERN_INLINE RET_TYPE \
NAME (CONST __sigset_t *__set, int __sig) \
{ \
unsigned long __mask = __sigmask (__sig); \
unsigned __word = __sigword (__sig); \
- return BODY; \
+ BODY; \
}
-__SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, const)
-__SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
-__SIGSETFN (__sigdelset, ((__set->__val[__word] &= ~__mask), 0), )
+__SIGSETFN (int, __sigismember, return (__set->__val[__word] & __mask) ? 1 : 0,
+ const)
+__SIGSETFN (void, __sigaddset, (__set->__val[__word] |= __mask), )
+__SIGSETFN (void, __sigdelset, (__set->__val[__word] &= ~__mask), )
# undef __SIGSETFN
# endif
@@ -207,7 +208,7 @@ const_sigaddset(__sigset_t *set, int sig)
set->__val[word] |= mask;
}
# define __sigaddset(set, sig) \
- (__builtin_constant_p(sig) ? (const_sigaddset(set, sig), 0) : __sigaddset(set, sig))
+ (__builtin_constant_p(sig) ? const_sigaddset(set, sig) : __sigaddset(set, sig))
static __always_inline void
const_sigdelset(__sigset_t *set, int sig)
{
@@ -216,7 +217,7 @@ const_sigdelset(__sigset_t *set, int sig)
set->__val[word] &= ~mask;
}
# define __sigdelset(set, sig) \
- (__builtin_constant_p(sig) ? (const_sigdelset(set, sig), 0) : __sigdelset(set, sig))
+ (__builtin_constant_p(sig) ? const_sigdelset(set, sig) : __sigdelset(set, sig))
# endif
#endif /* ! _SIGSET_H_fns. */
diff --git a/libc/sysdeps/linux/sparc/clone.S b/libc/sysdeps/linux/sparc/clone.S
index 8d9da5ae5..1d0e3e6e1 100644
--- a/libc/sysdeps/linux/sparc/clone.S
+++ b/libc/sysdeps/linux/sparc/clone.S
@@ -22,7 +22,9 @@
#include <asm/errno.h>
#include <asm/unistd.h>
+#ifdef RESET_PID
#include <tcb-offsets.h>
+#endif
#include <sysdep.h>
#define CLONE_VM 0x00000100