Author: jhibbits
Date: Fri Oct 11 14:17:31 2019
New Revision: 353437
URL: https://svnweb.freebsd.org/changeset/base/353437

Log:
  gcore: Add powerpc64 32-bit gcore support
  
  Summary: Add the necessary bits for taking 32-bit gcore coredumps on 
powerpc64.
  
  Reviewed by:  luporl
  Differential Revision:        https://reviews.freebsd.org/D21954

Modified:
  head/usr.bin/gcore/Makefile
  head/usr.bin/gcore/elf32core.c

Modified: head/usr.bin/gcore/Makefile
==============================================================================
--- head/usr.bin/gcore/Makefile Fri Oct 11 14:15:50 2019        (r353436)
+++ head/usr.bin/gcore/Makefile Fri Oct 11 14:17:31 2019        (r353437)
@@ -5,7 +5,8 @@ PROG=   gcore
 SRCS=  elfcore.c gcore.c
 LIBADD=        sbuf util
 
-.if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "amd64"
+.if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "amd64" || \
+    ${MACHINE_ARCH} == "powerpc64"
 SRCS+= elf32core.c
 .endif
 

Modified: head/usr.bin/gcore/elf32core.c
==============================================================================
--- head/usr.bin/gcore/elf32core.c      Fri Oct 11 14:15:50 2019        
(r353436)
+++ head/usr.bin/gcore/elf32core.c      Fri Oct 11 14:17:31 2019        
(r353437)
@@ -41,6 +41,17 @@ elf_convert_gregset(elfcore_gregset_t *rd, struct reg 
        rd->r_lr = rs->x[14];
        rd->r_pc = rs->elr;
        rd->r_cpsr = rs->spsr;
+#elif defined(__powerpc64__)
+       int i;
+
+       for (i = 0; i < 32; i++)
+               rd->fixreg[i] = rs->fixreg[i];
+       rd->lr = rs->lr;
+       rd->cr = rs->cr;
+       rd->xer = rs->xer;
+       rd->ctr = rs->ctr;
+       rd->pc = rs->pc;
+#else
 #error Unsupported architecture
 #endif
 }
@@ -53,6 +64,8 @@ elf_convert_fpregset(elfcore_fpregset_t *rd, struct fp
        memcpy(rd, rs, sizeof(*rd));
 #elif defined(__aarch64__)
        /* ARM64TODO */
+#elif defined(__powerpc64__)
+       memcpy(rd, rs, sizeof(*rd));
 #else
 #error Unsupported architecture
 #endif
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to