[PATCH 1/2] Account for padding in FreeBSD/mipsn32 NT_PRSTATUS notes.

John Baldwin jhb@FreeBSD.org
Tue Sep 19 20:48:00 GMT 2017


bfd/ChangeLog:

	* elf.c: Include "elf/mips.h".
	(elfcore_grok_freebsd_prstatus): Account for padding in MIPS N32
	NT_PRSTATUS notes.
---
 bfd/ChangeLog | 6 ++++++
 bfd/elf.c     | 5 ++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 4c8c12cd46..d7cd445b11 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2017-09-19  John Baldwin  <jhb@FreeBSD.org>
+
+	* elf.c: Include "elf/mips.h".
+	(elfcore_grok_freebsd_prstatus): Account for padding in MIPS N32
+	NT_PRSTATUS notes.
+
 2017-09-19  Alan Modra  <amodra@gmail.com>
 
 	PR 21441
diff --git a/bfd/elf.c b/bfd/elf.c
index 2aa2337724..d8d29ac70b 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -43,6 +43,7 @@ SECTION
 #include "libiberty.h"
 #include "safe-ctype.h"
 #include "elf-linux-core.h"
+#include "elf/mips.h"
 
 #ifdef CORE_HEADER
 #include CORE_HEADER
@@ -9955,7 +9956,9 @@ elfcore_grok_freebsd_prstatus (bfd *abfd, Elf_Internal_Note *note)
   offset += 4;
 
   /* Padding before pr_reg.  */
-  if (elf_elfheader (abfd)->e_ident[EI_CLASS] == ELFCLASS64)
+  if (elf_elfheader (abfd)->e_ident[EI_CLASS] == ELFCLASS64
+      || (elf_elfheader (abfd)->e_machine == EM_MIPS
+	  && (elf_elfheader (abfd)->e_flags & EF_MIPS_ABI2) != 0))
     offset += 4;
 
   /* Make sure that there is enough data remaining in the note.  */
-- 
2.13.3



More information about the Gdb-patches mailing list