Although the LP32 mips sigset_t is large enough to represent all signals, their jmp_buf is too small. This test succeeded on arm and x86 because the RT signals were never in the 'expected' sigset_t, so the equality comparison with the 'actual' sigset_t worked fine --- everyone was blind to the RT signal. On mips the tests fail because the 'expected' sigset_t does contain the RT signal but the 'actual' doesn't because the jmp_buf only saves and restores the first 32 signals. There are 32 free bits (currently used as padding) in the LP32 mips jmp_buf, and they might choose to use those to provide better support than the other two platforms, but I'll leave that to them. It will be easy to just remove the #if defined(__LP64__) from this change in that case. For mips64 it's not to late to increase the size of the jmp_buf and fix the setjmp family, but since there are decisions to be made here for LP32, I'll leave it all to Imagination folks... Bug: 16918359 Change-Id: I6b723712fce0e9210dafa165d8599d950b2d3500
4.2 KiB
4.2 KiB