Handle FreeBSD-specific AT_EHDRFLAGS and AT_HWCAP auxiliary vector types.
authorJohn Baldwin <jhb@FreeBSD.org>
Thu, 5 Oct 2017 16:50:01 +0000 (09:50 -0700)
committerJohn Baldwin <jhb@FreeBSD.org>
Thu, 5 Oct 2017 16:50:01 +0000 (09:50 -0700)
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
gdb/fbsd-tdep.c
include/ChangeLog
include/elf/common.h

index d8d5772..2ffa23f 100644 (file)
@@ -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.
index 727e28a..fa4cd91 100644 (file)
@@ -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;
index 0ece8de..e1deb98 100644 (file)
@@ -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.
index d08731c..f89ab32 100644 (file)
 #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.  */