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 d8d57720f95079f93277343d7211d6d87f8b1da2..2ffa23f830727e72a0012a90a4a4c0af29b6b586 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 727e28a6456bb3c20a957c9b48fd297849172ee8..fa4cd912ef32e401ae74ab54c310b89384246b8c 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 0ece8de3f7e1883714b3cc3da491cadc55f43288..e1deb98a99d99b399c2fe2162f06a2330b8cf174 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 d08731cca1c75864154fd37682a8e70a2445806c..f89ab32889d5bf521b72030998fd70c06dbbe260 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.  */