So the sigpending() system call returns the pending signals as an int
value via register, but then the libc stub is supposed to take care of
storing this as appropriate.

If you look at libc/arch/amd64/sys/sigreturn.S, you'll notice there's
some followup assembly code for this.  It looks like the analogous
code is missing from libc/arch/powerpc/sys/sigreturn.S.

On Thu, Jun 28, 2012 at 4:12 PM, Stuart Henderson <[email protected]>
wrote:
> I'm doing some test runs with Perl 5.16 for Andrew Fresh and seeing
> a signal dispatch-related test failure on macppc
>
> kern.version=OpenBSD 5.2-beta (GENERIC.MP) #198: Sat Jun 23 11:30:52 MDT
2012
>    [email protected]:/usr/src/sys/arch/macppc/compile/GENERIC.MP
>
> t/op/sigdispatch .............................................. # Failed
test 8
> - sigpending at op/sigdispatch.t line 60
> #      got "536870912"
> # expected "0 but true"
> # Failed test 9 - SIGUSR1 is pending at op/sigdispatch.t line 61
> #      got "0"
> # expected "1"
> FAILED at test 8
>
> This is a standard (not threaded) build. I can give files to reproduce etc
> if wanted but wondered if anyone has ideas.  It's not happening on amd64:
>
> kern.version=OpenBSD 5.2-beta (GENERIC.MP) #325: Thu Jun 21 10:08:05 MDT
2012
>    [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
>
> Tests are around
http://perl5.git.perl.org/perl.git/blame/67288365cab33e76a48b697c001c11d4dc5b
1912:/t/op/sigdispatch.t#l60

Reply via email to