the fields in the mcontext_t are long long (for no good reason) even on 32-bit mips, so the offset of the instruction pointer (as a word) varies depending on endianness.
@@ -5,4 +5,4 @@ static inline struct pthread *__pthread_self()
return self;
}
-#define CANCEL_REG_IP 3
+#define CANCEL_REG_IP (3-(union {int __i; char __b;}){1}.__b)