When running the testsuite on x86_64 with the 2.6.23 kernel the 32-bit kernel doesn't trigger an action for the rt_sigaction systemcall.
Lines of interest in the test output: rt_signal: rt_sigaction (SIGUSR1, 0x00000000ff8ef17c, 0x0000000000000000, 8) = \ 0 rt_signal: rt_sigaction (SIGUSR1, 0x00000000ff8ef17c, 0x0000000000000000, 8) = \ 0 rt_signal: rt_sigaction (SIGUSR1, 0x00000000ff8ef17c, 0x0000000000000000, 8) = \ 0 --------- EXPECTED and NOT MATCHED ---------- rt_signal: rt_sigaction \(SIGUSR1, {SIG_IGN}, 0x[0]+, 8\) = 0 rt_signal: rt_sigaction \(SIGUSR1, {SIG_DFL}, 0x[0]+, 8\) = 0 rt_signal: rt_sigaction \(SIGUSR1, {[x0-9a-fA-F]+, [^,]+, [x0-9a-fA-F]+, \[SIGA\ LRM\]}, 0x[0]+, 8\) = 0 FAIL: 32-bit rt_signal
In tapset/syscalls2.stp, syscall.rt_sigaction uses _struct_sigaction_u($act) to get the signal handler. On the other hand, syscall.rt_sigaction32 doesn't use that. Thus, it can not get the actual handler address.
current tapsets cover rt_sigaction{,32} symmetrically