According to GCC PR 81893 the code that dumps the registers for PPC only works for little-endian. This patch fixes it to only be used in that case. Bootstrapped on x86_64-pc-linux-gnu, for what that's worth. Committed to mainline.
Ian
Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 251182) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -28e49825162465172ed706283628bf5cc1996260 +2c4a2bd826e58c8c8c51b9196c8d2c67abc4037e The first line of this file holds the git revision number of the last merge done from the gofrontend repository. Index: libgo/runtime/go-signal.c =================================================================== --- libgo/runtime/go-signal.c (revision 251127) +++ libgo/runtime/go-signal.c (working copy) @@ -343,7 +343,7 @@ dumpregs(siginfo_t *info __attribute__(( #endif #endif -#ifdef __PPC__ +#if defined(__PPC__) && defined(__LITTLE_ENDIAN__) #ifdef __linux__ { mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext; @@ -359,6 +359,9 @@ dumpregs(siginfo_t *info __attribute__(( runtime_printf("xer %X\n", m->regs->xer); } #endif +#endif + +#ifdef __PPC__ #ifdef _AIX { mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;