diff options
Diffstat (limited to 'libc')
-rw-r--r-- | libc/signal/sigaddset.c | 3 | ||||
-rw-r--r-- | libc/signal/sigdelset.c | 3 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/bits/sigset.h | 21 | ||||
-rw-r--r-- | libc/sysdeps/linux/sparc/clone.S | 2 |
4 files changed, 17 insertions, 12 deletions
diff --git a/libc/signal/sigaddset.c b/libc/signal/sigaddset.c index 7e800a7f1..837f65329 100644 --- a/libc/signal/sigaddset.c +++ b/libc/signal/sigaddset.c @@ -30,6 +30,7 @@ sigaddset (sigset_t *set, int signo) return -1; } - return __sigaddset (set, signo); + __sigaddset (set, signo); + return 0; } libc_hidden_def(sigaddset) diff --git a/libc/signal/sigdelset.c b/libc/signal/sigdelset.c index de3b12ff0..9f3ab6659 100644 --- a/libc/signal/sigdelset.c +++ b/libc/signal/sigdelset.c @@ -29,6 +29,7 @@ int sigdelset (sigset_t *set, int signo) return -1; } - return __sigdelset (set, signo); + __sigdelset (set, signo); + return 0; } libc_hidden_def(sigdelset) 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 |