From 12c4bd7f53e9cefcf7c3a7f8cbf9e552526cb963 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Thu, 5 Oct 2017 09:50:01 -0700 Subject: [PATCH] Handle FreeBSD-specific AT_EHDRFLAGS and AT_HWCAP auxiliary vector types. FreeBSD recently added two additional ELF auxiliary vectors. FreeBSD's AT_HWCAP uses a different number compared to AT_HWCAP on Linux as the numerical value was already in use for a different vector on FreeBSD. include/ChangeLog: * elf/common.h (AT_FREEBSD_EHDRFLAGS, AT_FREEBSD_HWCAP): Define. gdb/ChangeLog: * fbsd-tdep.c (fbsd_print_auxv_entry): Handle AT_EHDRFLAGS and AT_HWCAP. --- gdb/ChangeLog | 5 +++++ gdb/fbsd-tdep.c | 2 ++ include/ChangeLog | 4 ++++ include/elf/common.h | 2 ++ 4 files changed, 13 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d8d57720f95..2ffa23f8307 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2017-10-05 John Baldwin + + * fbsd-tdep.c (fbsd_print_auxv_entry): Handle AT_EHDRFLAGS and + AT_HWCAP. + 2017-10-05 Tristan Gingold * MAINTAINERS (Misc): Update my email address. diff --git a/gdb/fbsd-tdep.c b/gdb/fbsd-tdep.c index 727e28a6456..fa4cd912ef3 100644 --- a/gdb/fbsd-tdep.c +++ b/gdb/fbsd-tdep.c @@ -392,6 +392,8 @@ fbsd_print_auxv_entry (struct gdbarch *gdbarch, struct ui_file *file, TAG (PAGESIZESLEN, _("Number of pagesizes"), AUXV_FORMAT_DEC); TAG (TIMEKEEP, _("Pointer to timehands"), AUXV_FORMAT_HEX); TAG (STACKPROT, _("Initial stack protection"), AUXV_FORMAT_HEX); + TAG (EHDRFLAGS, _("ELF header e_flags"), AUXV_FORMAT_HEX); + TAG (HWCAP, _("Machine-dependent CPU capability hints"), AUXV_FORMAT_HEX); default: default_print_auxv_entry (gdbarch, file, type, val); return; diff --git a/include/ChangeLog b/include/ChangeLog index 0ece8de3f7e..e1deb98a99d 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2017-10-05 John Baldwin + + * elf/common.h (AT_FREEBSD_EHDRFLAGS, AT_FREEBSD_HWCAP): Define. + 2017-09-22 Alexandre Oliva * dwarf2.def (DW_AT_GNU_locviews): New. diff --git a/include/elf/common.h b/include/elf/common.h index d08731cca1c..f89ab32889d 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -1144,6 +1144,8 @@ #define AT_FREEBSD_PAGESIZESLEN 21 /* Number of pagesizes. */ #define AT_FREEBSD_TIMEKEEP 22 /* Pointer to timehands. */ #define AT_FREEBSD_STACKPROT 23 /* Initial stack protection. */ +#define AT_FREEBSD_EHDRFLAGS 24 /* e_flags field from ELF header. */ +#define AT_FREEBSD_HWCAP 25 /* CPU feature flags. */ #define AT_SUN_UID 2000 /* Effective user ID. */ #define AT_SUN_RUID 2001 /* Real user ID. */ -- 2.30.2