This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[Patch, AArch64] Define elf_backend_grok_prstatus
- From: Yufeng Zhang <Yufeng dot Zhang at arm dot com>
- To: "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Thu, 15 Nov 2012 17:52:30 +0000
- Subject: [Patch, AArch64] Define elf_backend_grok_prstatus
Hi,
This patch defines elf_backend_grok_prstatus for the AArch64 port. OK
to commit?
Thanks,
Yufeng
bfd/
2012-11-15 Yufeng Zhang <yufeng.zhang@arm.com>
* elf64-aarch64.c (elf64_aarch64_grok_prstatus): New function.
(elf_backend_grok_prstatus): Define to elf64_aarch64_grok_prstatus.
diff --git a/bfd/elf64-aarch64.c b/bfd/elf64-aarch64.c
index 423fb9b..708b362 100644
--- a/bfd/elf64-aarch64.c
+++ b/bfd/elf64-aarch64.c
@@ -1516,11 +1516,47 @@ elf64_aarch64_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
return NULL;
}
+/* Support for core dump NOTE sections. */
+
+static bfd_boolean
+elf64_aarch64_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
+{
+ int offset;
+ size_t size;
+
+ switch (note->descsz)
+ {
+ default:
+ return FALSE;
+
+ case 408: /* sizeof(struct elf_prstatus) on Linux/arm64. */
+ /* pr_cursig */
+ elf_tdata (abfd)->core_signal
+ = bfd_get_16 (abfd, note->descdata + 12);
+
+ /* pr_pid */
+ elf_tdata (abfd)->core_lwpid
+ = bfd_get_32 (abfd, note->descdata + 32);
+
+ /* pr_reg */
+ offset = 112;
+ size = 288;
+
+ break;
+ }
+
+ /* Make a ".reg/999" section. */
+ return _bfd_elfcore_make_pseudosection (abfd, ".reg",
+ size, note->descpos + offset);
+}
+
#define TARGET_LITTLE_SYM bfd_elf64_littleaarch64_vec
#define TARGET_LITTLE_NAME "elf64-littleaarch64"
#define TARGET_BIG_SYM bfd_elf64_bigaarch64_vec
#define TARGET_BIG_NAME "elf64-bigaarch64"
+#define elf_backend_grok_prstatus elf64_aarch64_grok_prstatus
+
typedef unsigned long int insn32;
/* The linker script knows the section names for placement.