Work-around for bionic sigsetjmp bug

In versions of bionic libc up to and including Android L, the sigsetjmp
didn't properly restore the signal mask when returning from a nonlocal
goto. Add a small wrapper to make sure we call sigprocmask each time we
call sigsetjmp which ensures the SIGILL is masked.

The symptoms of this problem include receiving a SIGILL with a stack
trace or simply receiving the text "Illegal instruction" when running an
application from the command line.

Bug: 15732256
Change-Id: Ic792583da5ccf601afc10828b1a666d24b903a19
2 files changed