aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2017-10-05 09:50:01 -0700
committerJohn Baldwin <jhb@FreeBSD.org>2017-10-05 09:50:01 -0700
commit12c4bd7f53e9cefcf7c3a7f8cbf9e552526cb963 (patch)
treef02505e3e580b47d64c1db0b07c96fc7833f9234
parent2bfa0cdfadd313f3cc35329a17ba3c62865208a3 (diff)
downloadgdb-12c4bd7f53e9cefcf7c3a7f8cbf9e552526cb963.zip
gdb-12c4bd7f53e9cefcf7c3a7f8cbf9e552526cb963.tar.gz
gdb-12c4bd7f53e9cefcf7c3a7f8cbf9e552526cb963.tar.bz2
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.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/fbsd-tdep.c2
-rw-r--r--include/ChangeLog4
-rw-r--r--include/elf/common.h2
4 files changed, 13 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d8d5772..2ffa23f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2017-10-05 John Baldwin <jhb@FreeBSD.org>
+
+ * fbsd-tdep.c (fbsd_print_auxv_entry): Handle AT_EHDRFLAGS and
+ AT_HWCAP.
+
2017-10-05 Tristan Gingold <tgingold@free.fr>
* MAINTAINERS (Misc): Update my email address.
diff --git a/gdb/fbsd-tdep.c b/gdb/fbsd-tdep.c
index 727e28a..fa4cd91 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 0ece8de..e1deb98 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2017-10-05 John Baldwin <jhb@FreeBSD.org>
+
+ * elf/common.h (AT_FREEBSD_EHDRFLAGS, AT_FREEBSD_HWCAP): Define.
+
2017-09-22 Alexandre Oliva <aoliva@redhat.com>
* dwarf2.def (DW_AT_GNU_locviews): New.
diff --git a/include/elf/common.h b/include/elf/common.h
index d08731c..f89ab32 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. */