Make soft-float powerpc swapcontext restore the signal mask (bug 21045).
commitb040e1b0842c35ab444e8502db6ae59389d1e3d5
authorJoseph Myers <joseph@codesourcery.com>
Mon, 16 Jan 2017 21:34:48 +0000 (16 21:34 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 16 Jan 2017 21:34:48 +0000 (16 21:34 +0000)
tree0a16223224cd1a2defdfb03773bec88883ab87af
parent502697713f4f129b602d7213253a9982ee1989f1
Make soft-float powerpc swapcontext restore the signal mask (bug 21045).

The soft-float powerpc version of swapcontext does not restore the
signal mask, resulting in stdlib/tst-setcontext2 failing:

after getcontext
after setcontext
after swapcontext
FAIL: SIGUSR2 is blocked after swapcontext.

This patch fixes this by adjusting the arguments passed to
__sigprocmask so that it restores the saved signal mask as well as
saving the existing one.  (For hard-float, this code is only used for
a compat symbol, not for the current version of swapcontext.)

Tested for soft-float powerpc.

[BZ #21045]
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
(__CONTEXT_FUNC_NAME): Pass address of signal mask to be restored
to __sigprocmask.
ChangeLog
sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S