* configure.ac (ASM_SIGRTMIN): Define to SIGRTMIN from <asm/signal.h>. * signal.c: Use ASM_SIGRTMIN instead of constants provided by libc. * tests/sigreturn.c: Use ASM_SIGRTMIN instead of hardcoded value. Use lower RT_* numbers to support pre-3.18 hppa kernels. * tests/sigreturn.test: Update regexp.
32 lines
718 B
Bash
Executable File
32 lines
718 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# Check rt_sigprocmask and sigreturn/rt_sigreturn decoding.
|
|
|
|
. "${srcdir=.}/init.sh"
|
|
|
|
check_prog grep
|
|
|
|
./sigreturn ||
|
|
fail_ 'sigreturn failed'
|
|
|
|
args='-esignal ./sigreturn'
|
|
$STRACE -o "$LOG" $args ||
|
|
fail_ "$STRACE $args does not work"
|
|
|
|
grep_log()
|
|
{
|
|
LC_ALL=C grep -E -x -e "$*" < "$LOG" > /dev/null || {
|
|
cat "$LOG"
|
|
fail_ "$STRACE $args output mismatch"
|
|
}
|
|
}
|
|
|
|
mask='\[(USR2 CHLD|CHLD USR2) RT_2 RT_3 RT_4 RT_26 RT_27\]'
|
|
rt_sigprocmask='rt_sigprocmask\(SIG_SETMASK, '"$mask"', NULL, [[:digit:]]+\) += 0'
|
|
osf_sigprocmask='osf_sigprocmask\(SIG_SETMASK, '"$mask"'\) += 0 +\(old mask \[[^]]*\]\)'
|
|
grep_log "$rt_sigprocmask|$osf_sigprocmask"
|
|
grep_log '(rt_)?sigreturn\((\{mask='"$mask"'\})?\) += 0'
|
|
|
|
|
|
exit 0
|