From b4992e9990118f79764ee681dd10372bcf722ba5 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 7 Dec 2021 10:29:01 -0800 Subject: [PATCH] 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. --- gdb/fbsd-tdep.c | 2 ++ include/ChangeLog | 4 ++++ include/elf/common.h | 2 ++ 3 files changed, 8 insertions(+) diff --git a/gdb/fbsd-tdep.c b/gdb/fbsd-tdep.c index 4da7798544b..346ff7b602b 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 c5b3631ae83..d0d62bd538f 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2021-12-07 John Baldwin + + * elf/common.h (AT_FREEBSD_FXRNG, AT_FREEBSD_KPRELOAD): Define. + 2021-12-01 Nick Clifton PR 28630 diff --git a/include/elf/common.h b/include/elf/common.h index 61cfaacfe6c..66bc06ff326 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. */ -- 2.30.2