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;

Reply via email to