no idea why gcc refuses to compile the C code to use a tail call, but it's best to use asm anyway so we don't have to rely on the quality of the compiler's optimizations for correct code.
@@ -0,0 +1,13 @@
+.global sigsetjmp
+.type sigsetjmp,%function
+sigsetjmp:
+ str a2,[a1,#256]
+ tst a2,a2
+ beq setjmp
+ push {a1,lr}
+ add a3,a1,#260
+ mov a2,#0
+ mov a1,#2
+ bl sigprocmask
+ pop {a1,lr}
+ b setjmp