aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2021-12-07 10:29:01 -0800
committerJohn Baldwin <jhb@FreeBSD.org>2021-12-07 10:29:01 -0800
commitb4992e9990118f79764ee681dd10372bcf722ba5 (patch)
tree1d83e39dbd95c62ce34b9199af6bba4fe4b7cb32
parentc5a9fcdfeea5e961b8f73417c213fa570c8affb6 (diff)
downloadgdb-b4992e9990118f79764ee681dd10372bcf722ba5.zip
gdb-b4992e9990118f79764ee681dd10372bcf722ba5.tar.gz
gdb-b4992e9990118f79764ee681dd10372bcf722ba5.tar.bz2
Support AT_FXRNG and AT_KPRELOAD on FreeBSD.
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.
-rw-r--r--gdb/fbsd-tdep.c2
-rw-r--r--include/ChangeLog4
-rw-r--r--include/elf/common.h2
3 files changed, 8 insertions, 0 deletions
diff --git a/gdb/fbsd-tdep.c b/gdb/fbsd-tdep.c
index 4da7798..346ff7b 100644
--- a/gdb/fbsd-tdep.c
+++ b/gdb/fbsd-tdep.c
@@ -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);
diff --git a/include/ChangeLog b/include/ChangeLog
index c5b3631..d0d62bd 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -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
diff --git a/include/elf/common.h b/include/elf/common.h
index 61cfaac..66bc06f 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -1392,6 +1392,8 @@
#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. */