Fix build on OSX 10.5. Solves issue 44.
This commit is contained in:
parent
3368f9039b
commit
7ef88c6f7e
|
@ -177,24 +177,36 @@ namespace
|
||||||
|
|
||||||
static void * callerAddress(void * secret)
|
static void * callerAddress(void * secret)
|
||||||
{
|
{
|
||||||
# if NV_OS_DARWIN && NV_CPU_PPC
|
# if NV_OS_DARWIN
|
||||||
ucontext_t * ucp = (ucontext_t *)secret;
|
# if __DARWIN_UNIX03
|
||||||
return (void *) ucp->uc_mcontext->ss.srr0;
|
# if NV_CPU_PPC
|
||||||
# elif NV_OS_DARWIN && NV_CPU_X86
|
ucontext_t * ucp = (ucontext_t *)secret;
|
||||||
ucontext_t * ucp = (ucontext_t *)secret;
|
return (void *) ucp->uc_mcontext->__ss.__srr0;
|
||||||
return (void *) ucp->uc_mcontext->ss.eip;
|
# elif NV_CPU_X86
|
||||||
# elif NV_CPU_X86_64
|
ucontext_t * ucp = (ucontext_t *)secret;
|
||||||
// #define REG_RIP REG_INDEX(rip) // seems to be 16
|
return (void *) ucp->uc_mcontext->__ss.__eip;
|
||||||
ucontext_t * ucp = (ucontext_t *)secret;
|
# endif
|
||||||
return (void *)ucp->uc_mcontext.gregs[REG_RIP];
|
# else
|
||||||
# elif NV_CPU_X86
|
# if NV_CPU_PPC
|
||||||
ucontext_t * ucp = (ucontext_t *)secret;
|
ucontext_t * ucp = (ucontext_t *)secret;
|
||||||
return (void *)ucp->uc_mcontext.gregs[14/*REG_EIP*/];
|
return (void *) ucp->uc_mcontext->ss.srr0;
|
||||||
# elif NV_CPU_PPC
|
# elif NV_CPU_X86
|
||||||
ucontext_t * ucp = (ucontext_t *)secret;
|
ucontext_t * ucp = (ucontext_t *)secret;
|
||||||
return (void *) ucp->uc_mcontext.regs->nip;
|
return (void *) ucp->uc_mcontext->ss.eip;
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
# else
|
# else
|
||||||
return NULL;
|
# if NV_CPU_X86_64
|
||||||
|
// #define REG_RIP REG_INDEX(rip) // seems to be 16
|
||||||
|
ucontext_t * ucp = (ucontext_t *)secret;
|
||||||
|
return (void *)ucp->uc_mcontext.gregs[REG_RIP];
|
||||||
|
# elif NV_CPU_X86
|
||||||
|
ucontext_t * ucp = (ucontext_t *)secret;
|
||||||
|
return (void *)ucp->uc_mcontext.gregs[14/*REG_EIP*/];
|
||||||
|
# elif NV_CPU_PPC
|
||||||
|
ucontext_t * ucp = (ucontext_t *)secret;
|
||||||
|
return (void *) ucp->uc_mcontext.regs->nip;
|
||||||
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// How to obtain the instruction pointers in different platforms, from mlton's source code.
|
// How to obtain the instruction pointers in different platforms, from mlton's source code.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user