Support AT_FXRNG and AT_KPRELOAD on FreeBSD.
authorJohn Baldwin <jhb@FreeBSD.org>
Tue, 7 Dec 2021 18:29:01 +0000 (10:29 -0800)
committerJohn Baldwin <jhb@FreeBSD.org>
Tue, 7 Dec 2021 18:29:01 +0000 (10:29 -0800)
FreeBSD's kernel has recently added two new ELF auxiliary vector
entries.  AT_FXRNG points to a root seed version for the kernel's
PRNG.  Userland can use this to reseed a userland PRNG after the
kernel's PRNG has reseeded.  AT_KPRELOAD is the base address of a
kernel-provided vDSO.

This change displays the proper name and description of these entries
in 'info auxv'.

include/ChangeLog:

* elf/common.h (AT_FREEBSD_FXRNG, AT_FREEBSD_KPRELOAD): Define.

gdb/fbsd-tdep.c
include/ChangeLog
include/elf/common.h

index 4da7798544b95a0c1d1739cd382b18e86adeba91..346ff7b602bff915d7303b05a255fc70812446ae 100644 (file)
@@ -1565,6 +1565,8 @@ fbsd_print_auxv_entry (struct gdbarch *gdbarch, struct ui_file *file,
       TAG (ENVC, _("Environment count"), AUXV_FORMAT_DEC);
       TAG (ENVV, _("Environment vector"), AUXV_FORMAT_HEX);
       TAG (PS_STRINGS, _("Pointer to ps_strings"), AUXV_FORMAT_HEX);
+      TAG (FXRNG, _("Pointer to root RNG seed version"), AUXV_FORMAT_HEX);
+      TAG (KPRELOAD, _("Base address of vDSO"), AUXV_FORMAT_HEX);
     }
 
   fprint_auxv_entry (file, name, description, format, type, val);
index c5b3631ae831643d26782f3b136577a23f9e422b..d0d62bd538f582a052501aa138c9e7e52f525595 100644 (file)
@@ -1,3 +1,7 @@
+2021-12-07  John Baldwin  <jhb@FreeBSD.org>
+
+       * elf/common.h (AT_FREEBSD_FXRNG, AT_FREEBSD_KPRELOAD): Define.
+
 2021-12-01  Nick Clifton  <nickc@redhat.com>
 
        PR 28630
index 61cfaacfe6c12b5b12015f610225de399a0ffd2b..66bc06ff3262ee3ef840db9905cc92f77c430113 100644 (file)
 #define AT_FREEBSD_ENVC         30      /* Environment count. */
 #define AT_FREEBSD_ENVV         31      /* Environment vvector. */
 #define AT_FREEBSD_PS_STRINGS   32      /* struct ps_strings. */
+#define AT_FREEBSD_FXRNG        33      /* Pointer to root RNG seed version. */
+#define AT_FREEBSD_KPRELOAD     34      /* Base of vdso. */
 
 #define AT_SUN_UID      2000    /* Effective user ID.  */
 #define AT_SUN_RUID     2001    /* Real user ID.  */