@@ -48,6 +48,7 @@ struct __siginfo
#define SA_RESTART 0x10000000
#define SA_NODEFER 0x40000000
#define SA_RESETHAND 0x80000000
+#define SA_RESTORER 0x04000000
#define SS_ONSTACK 1
#define SS_DISABLE 2
@@ -20,7 +20,7 @@ int __libc_sigaction(int sig, const struct sigaction *sa, struct sigaction *old)
long pksa=0, pkold=0;
if (sa) {
ksa.handler = sa->sa_handler;
- ksa.flags = sa->sa_flags;
+ ksa.flags = sa->sa_flags | SA_RESTORER;
ksa.restorer = restorer;
ksa.mask = sa->sa_mask;
pksa = (long)&ksa;