Context registers on Tiger don't have double underscores.

diff --git signal.c signal.c
index 1bbf23d..5602a2e 100644
--- signal.c
+++ signal.c
@@ -773,9 +773,9 @@ check_stack_overflow(const uintptr_t addr, const ucontext_t *ctx)
 #   endif
 # elif defined __APPLE__
 #   if defined(__LP64__)
-    const uintptr_t sp = mctx->__ss.__rsp;
+    const uintptr_t sp = mctx->ss.rsp;
 #   else
-    const uintptr_t sp = mctx->__ss.__esp;
+    const uintptr_t sp = mctx->ss.esp;
 #   endif
 # elif defined __FreeBSD__
 #   if defined(__amd64__)
diff --git vm_dump.c vm_dump.c
index 1a81f96..67e1866 100644
--- vm_dump.c
+++ vm_dump.c
@@ -13,6 +13,7 @@
 #include "addr2line.h"
 #include "vm_core.h"
 #include "iseq.h"
+#include <ucontext.h>
 
 /* see vm_insnhelper.h for the values */
 #ifndef VMDEBUG
@@ -836,7 +837,7 @@ print_machine_register(size_t reg, const char *reg_name, int col_count, int max_
 # ifdef __linux__
 #   define dump_machine_register(reg) (col_count = print_machine_register(mctx->gregs[REG_##reg], #reg, col_count, 80))
 # elif defined __APPLE__
-#   define dump_machine_register(reg) (col_count = print_machine_register(mctx->__ss.__##reg, #reg, col_count, 80))
+#   define dump_machine_register(reg) (col_count = print_machine_register(mctx->ss.reg, #reg, col_count, 80))
 # endif
 
 static void
