--- a/src/client/CrashHandler.cpp +++ b/src/client/CrashHandler.cpp @@ -23,6 +23,9 @@ #include "../breakpad/BreakPad.h" +#if defined(__linux__) && defined(__powerpc__) +#include +#endif #ifdef NBREAKPAD @@ -320,7 +322,11 @@ public: pnt = (void*) uc->uc_mcontext.sc_iaoq[0] & ~0x3UL ; # elif (defined (__ppc__)) || (defined (__powerpc__)) ucontext_t* uc = (ucontext_t*) secret; +# if !defined(__GLIBC__) && !defined(__powerpc64__) + pnt = (void*) ((struct pt_regs *)uc->uc_regs)->nip ; +# else pnt = (void*) uc->uc_mcontext.regs->nip ; +# endif # elif defined(__sparc__) struct sigcontext* sc = (struct sigcontext*) secret; # if __WORDSIZE == 64