aboutsummaryrefslogtreecommitdiffstats
path: root/signal.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-09-22 20:13:08 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-09-22 20:13:08 +0000
commit55c7b8541ad7f06ceb52abeb34ec6bd414fdde0a (patch)
treed3232e04421924e5e361d91bafcb07dd465ada42 /signal.c
parent50c16d52a9b9048c38ac429a5f429fc280d4a385 (diff)
downloadruby-55c7b8541ad7f06ceb52abeb34ec6bd414fdde0a.tar.gz
Fix for old names of mcontext registers
c.f. https://github.com/mistydemeo/tigerbrew/issues/473 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/signal.c b/signal.c
index 588802604a..d24bda07f0 100644
--- a/signal.c
+++ b/signal.c
@@ -854,12 +854,17 @@ check_stack_overflow(int sig, const uintptr_t addr, const ucontext_t *ctx)
const greg_t bp = mctx->gregs[REG_EBP];
# endif
# elif defined __APPLE__
+# if __DARWIN_UNIX03
+# define MCTX_SS_REG(reg) __ss.__##reg
+# else
+# define MCTX_SS_REG(reg) ss.reg
+# endif
# if defined(__LP64__)
- const uintptr_t sp = mctx->__ss.__rsp;
- const uintptr_t bp = mctx->__ss.__rbp;
+ const uintptr_t sp = mctx->MCTX_SS_REG(rsp);
+ const uintptr_t bp = mctx->MCTX_SS_REG(rbp);
# else
- const uintptr_t sp = mctx->__ss.__esp;
- const uintptr_t bp = mctx->__ss.__ebp;
+ const uintptr_t sp = mctx->MCTX_SS_REG(esp);
+ const uintptr_t bp = mctx->MCTX_SS_REG(ebp);
# endif
# elif defined __FreeBSD__
# if defined(__amd64__)