aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuis Machado <luis.machado@linaro.org>2021-08-05 13:50:17 -0300
committerLuis Machado <luis.machado@linaro.org>2021-08-11 09:42:44 -0300
commit3af2785c97622c0a64b266e18a06d735af822df9 (patch)
treefbe00b9558bf1edfaa135f3c73e333e557844f47
parent4f212c5520a7bd56b83f7e4b3feff2048d394194 (diff)
downloadfsf-binutils-gdb-3af2785c97622c0a64b266e18a06d735af822df9.zip
fsf-binutils-gdb-3af2785c97622c0a64b266e18a06d735af822df9.tar.gz
fsf-binutils-gdb-3af2785c97622c0a64b266e18a06d735af822df9.tar.bz2
Add 3 new PAC-related ARM note types
The following patch synchronizes includes/objdump/readelf with the Linux Kernel in terms of ARM regset notes. We're currently missing 3 of them: NT_ARM_PACA_KEYS NT_ARM_PACG_KEYS NT_ARM_PAC_ENABLED_KEYS We don't need GDB to bother with this at the moment, so this doesn't update bfd/elf.c. If needed, we can do it in the future. binutils/ * readelf.c (get_note_type): Handle new ARM PAC notes. include/elf/ * common.h (NT_ARM_PACA_KEYS, NT_ARM_PACG_KEYS) (NT_ARM_PAC_ENABLED_KEYS): New constants.
-rw-r--r--binutils/readelf.c6
-rw-r--r--include/elf/common.h9
2 files changed, 15 insertions, 0 deletions
diff --git a/binutils/readelf.c b/binutils/readelf.c
index bd16fcc..bedd389 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -18828,8 +18828,14 @@ get_note_type (Filedata * filedata, unsigned e_type)
return _("NT_ARM_SVE (AArch SVE registers)");
case NT_ARM_PAC_MASK:
return _("NT_ARM_PAC_MASK (AArch pointer authentication code masks)");
+ case NT_ARM_PACA_KEYS:
+ return _("NT_ARM_PACA_KEYS (ARM pointer authentication address keys)");
+ case NT_ARM_PACG_KEYS:
+ return _("NT_ARM_PACG_KEYS (ARM pointer authentication generic keys)");
case NT_ARM_TAGGED_ADDR_CTRL:
return _("NT_ARM_TAGGED_ADDR_CTRL (AArch tagged address control)");
+ case NT_ARM_PAC_ENABLED_KEYS:
+ return _("NT_ARM_PAC_ENABLED_KEYS (AArch64 pointer authentication enabled keys)");
case NT_ARC_V2:
return _("NT_ARC_V2 (ARC HS accumulator/extra registers)");
case NT_RISCV_CSR:
diff --git a/include/elf/common.h b/include/elf/common.h
index 0d381f0..95ade89 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -672,9 +672,18 @@
/* note name must be "LINUX". */
#define NT_ARM_PAC_MASK 0x406 /* AArch pointer authentication code masks */
/* note name must be "LINUX". */
+#define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication address
+ keys */
+ /* note name must be "LINUX". */
+#define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication generic
+ keys */
+ /* note name must be "LINUX". */
#define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* AArch64 tagged address control
(prctl()) */
/* note name must be "LINUX". */
+#define NT_ARM_PAC_ENABLED_KEYS 0x40a /* AArch64 pointer authentication
+ enabled keys (prctl()) */
+ /* note name must be "LINUX". */
#define NT_ARC_V2 0x600 /* ARC HS accumulator/extra registers. */
/* note name must be "LINUX". */
#define NT_RISCV_CSR 0x900 /* RISC-V Control and Status Registers */