From 66c3b5f87cd9a12be6734587720bde4040819369 Mon Sep 17 00:00:00 2001 From: Gustavo Romero Date: Mon, 14 Aug 2017 10:48:04 -0400 Subject: [PATCH] Add new NT_PPC_* available since Linux 4.8 Add new note types available since Linux 4.8 to elf/common.h and make the 'readelf' tool aware of it. include/ * elf/common.h (NT_PPC_TAR): New macro. (NT_PPC_PPR): Likewise. (NT_PPC_DSCR): Likewise. (NT_PPC_EBB): Likewise. (NT_PPC_PMU): Likewise. (NT_PPC_TM_CGPR): Likewise. (NT_PPC_TM_CFPR): Likewise. (NT_PPC_TM_CVMX): Likewise. (NT_PPC_TM_CVSX): Likewise. (NT_PPC_TM_SPR): Likewise. (NT_PPC_TM_CTAR): Likewise. (NT_PPC_TM_CPPR): Likewise. (NT_PPC_TM_CDSCR): Likewise. binutils/ * readelf.c (get_note_type): Handle PPC note types available since Linux 4.8. --- binutils/ChangeLog | 5 +++++ binutils/readelf.c | 26 ++++++++++++++++++++++++++ include/ChangeLog | 16 ++++++++++++++++ include/elf/common.h | 26 ++++++++++++++++++++++++++ 4 files changed, 73 insertions(+) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 1208754d593..1e37ac6df7f 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2017-08-14 Gustavo Romero + + * readelf.c (get_note_type): Handle PPC note types available + since Linux 4.8. + 2017-08-12 Alan Modra * readelf.c (process_note): Qualify NT_GNU_BUILD_ATTRIBUTE notes diff --git a/binutils/readelf.c b/binutils/readelf.c index 0fc65625836..4bd68f28814 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -16137,6 +16137,32 @@ get_note_type (unsigned e_type) return _("NT_PPC_VMX (ppc Altivec registers)"); case NT_PPC_VSX: return _("NT_PPC_VSX (ppc VSX registers)"); + case NT_PPC_TAR: + return _("NT_PPC_TAR (ppc TAR register)"); + case NT_PPC_PPR: + return _("NT_PPC_PPR (ppc PPR register)"); + case NT_PPC_DSCR: + return _("NT_PPC_DSCR (ppc DSCR register)"); + case NT_PPC_EBB: + return _("NT_PPC_EBB (ppc EBB registers)"); + case NT_PPC_PMU: + return _("NT_PPC_PMU (ppc PMU registers)"); + case NT_PPC_TM_CGPR: + return _("NT_PPC_TM_CGPR (ppc checkpointed GPR registers)"); + case NT_PPC_TM_CFPR: + return _("NT_PPC_TM_CFPR (ppc checkpointed floating point registers)"); + case NT_PPC_TM_CVMX: + return _("NT_PPC_TM_CVMX (ppc checkpointed Altivec registers)"); + case NT_PPC_TM_CVSX: + return _("NT_PPC_TM_VSX (ppc checkpointed VSX registers)"); + case NT_PPC_TM_SPR: + return _("NT_PPC_TM_SPR (ppc TM special purpose registers)"); + case NT_PPC_TM_CTAR: + return _("NT_PPC_TM_CTAR (ppc checkpointed TAR register)"); + case NT_PPC_TM_CPPR: + return _("NT_PPC_TM_CPPR (ppc checkpointed PPR register)"); + case NT_PPC_TM_CDSCR: + return _("NT_PPC_TM_CDSCR (ppc checkpointed DSCR register)"); case NT_386_TLS: return _("NT_386_TLS (x86 TLS information)"); case NT_386_IOPERM: diff --git a/include/ChangeLog b/include/ChangeLog index 332ae9356c3..fcf8466c44a 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,19 @@ +2017-08-14 Gustavo Romero + + * elf/common.h (NT_PPC_TAR): New macro. + (NT_PPC_PPR): Likewise. + (NT_PPC_DSCR): Likewise. + (NT_PPC_EBB): Likewise. + (NT_PPC_PMU): Likewise. + (NT_PPC_TM_CGPR): Likewise. + (NT_PPC_TM_CFPR): Likewise. + (NT_PPC_TM_CVMX): Likewise. + (NT_PPC_TM_CVSX): Likewise. + (NT_PPC_TM_SPR): Likewise. + (NT_PPC_TM_CTAR): Likewise. + (NT_PPC_TM_CPPR): Likewise. + (NT_PPC_TM_CDSCR): Likewise. + 2017-08-06 H.J. Lu PR ld/21903: diff --git a/include/elf/common.h b/include/elf/common.h index 3a144f03bc4..d08731cca1c 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -570,6 +570,32 @@ /* note name must be "LINUX". */ #define NT_PPC_VSX 0x102 /* PowerPC VSX registers */ /* note name must be "LINUX". */ +#define NT_PPC_TAR 0x103 /* PowerPC Target Address Register */ + /* note name must be "LINUX". */ +#define NT_PPC_PPR 0x104 /* PowerPC Program Priority Register */ + /* note name must be "LINUX". */ +#define NT_PPC_DSCR 0x105 /* PowerPC Data Stream Control Register */ + /* note name must be "LINUX". */ +#define NT_PPC_EBB 0x106 /* PowerPC Event Based Branch Registers */ + /* note name must be "LINUX". */ +#define NT_PPC_PMU 0x107 /* PowerPC Performance Monitor Registers */ + /* note name must be "LINUX". */ +#define NT_PPC_TM_CGPR 0x108 /* PowerPC TM checkpointed GPR Registers */ + /* note name must be "LINUX". */ +#define NT_PPC_TM_CFPR 0x109 /* PowerPC TM checkpointed FPR Registers */ + /* note name must be "LINUX". */ +#define NT_PPC_TM_CVMX 0x10a /* PowerPC TM checkpointed VMX Registers */ + /* note name must be "LINUX". */ +#define NT_PPC_TM_CVSX 0x10b /* PowerPC TM checkpointed VSX Registers */ + /* note name must be "LINUX". */ +#define NT_PPC_TM_SPR 0x10c /* PowerPC TM Special Purpose Registers */ + /* note name must be "LINUX". */ +#define NT_PPC_TM_CTAR 0x10d /* PowerPC TM checkpointed TAR */ + /* note name must be "LINUX". */ +#define NT_PPC_TM_CPPR 0x10e /* PowerPC TM checkpointed PPR */ + /* note name must be "LINUX". */ +#define NT_PPC_TM_CDSCR 0x10f /* PowerPC TM checkpointed Data SCR */ + /* note name must be "LINUX". */ #define NT_386_TLS 0x200 /* x86 TLS information */ /* note name must be "LINUX". */ #define NT_386_IOPERM 0x201 /* x86 io permissions */ -- 2.30.2