#if defined(GLIBC231_STYLE_UCONTEXT)
return &((context->uc_mcontext.regs)->gpr[offset]);
#elif defined(GLIBC232_STYLE_UCONTEXT)
- return &((context->uc_regs->gregs)[offset]);
+ return &((context->uc_mcontext.uc_regs->gregs)[offset]);
#endif
}
#if defined(GLIBC231_STYLE_UCONTEXT)
return &((context->uc_mcontext.regs)->nip);
#elif defined(GLIBC232_STYLE_UCONTEXT)
- return &((context->uc_regs->gregs)[PT_NIP]);
+ return &((context->uc_mcontext.uc_regs->gregs)[PT_NIP]);
#endif
}
#if defined(GLIBC231_STYLE_UCONTEXT)
return &((context->uc_mcontext.regs)->link);
#elif defined(GLIBC232_STYLE_UCONTEXT)
- return &((context->uc_regs->gregs)[PT_LNK]);
+ return &((context->uc_mcontext.uc_regs->gregs)[PT_LNK]);
#endif
}
#if defined(GLIBC231_STYLE_UCONTEXT)
return &context->uc_sigmask;
#elif defined(GLIBC232_STYLE_UCONTEXT)
- return &context->uc_oldsigmask;
+ return &context->uc_sigmask;
#endif
}
#if defined(GLIBC231_STYLE_UCONTEXT)
return context->uc_mcontext.regs->gpr[PT_FPSCR];
#elif defined(GLIBC232_STYLE_UCONTEXT)
- return context->uc_regs->gregs[PT_FPSCR];
+ return context->uc_mcontext.uc_regs->gregs[PT_FPSCR];
#endif
}
#ifndef PPC_LINUX_MCONTEXT_H\n\
#define PPC_LINUX_MCONTEXT_H\n\n");
- switch (offsetof(ucontext_t,uc_mcontext)) {
- case 192:
+ if (offsetof(ucontext_t,uc_mcontext) > 40) {
printf("#define GLIBC232_STYLE_UCONTEXT\n\n");
- break;
- case 20:
+ } else {
printf("#define GLIBC231_STYLE_UCONTEXT\n\n");
- break;
- default:
- printf("#error \"Unknown PPC/Linux ucontext layout\"\n\n");
}
printf("\
#endif /* PPC_LINUX_MCONTEXT_H */\n");
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.7.11"
+"0.8.7.12"