gdb: support rseq auxvs
authorIlya Leoshkevich <iii@linux.ibm.com>
Wed, 21 Jun 2023 23:03:04 +0000 (01:03 +0200)
committerSimon Marchi <simon.marchi@efficios.com>
Sat, 7 Oct 2023 01:29:11 +0000 (21:29 -0400)
Linux kernel commit commit 317c8194e6ae ("rseq: Introduce feature size
and alignment ELF auxiliary vector entries") introduced two new auxvs:
AT_RSEQ_FEATURE_SIZE and AT_RSEQ_ALIGN.  Support them in GDB.  This
fixes auxv.exp on kernels >= v6.3.

Change-Id: I8966c4d5c73eb7b45de6d410a9b28a6628edad2e
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30540
Approved-By: Tom Tromey <tom@tromey.com>
gdb/auxv.c
include/elf/common.h

index 7e3efc54e4bd16c1ea2be425c7fc23abd6adb99a..8cda0b687b46ff722c09c5e8b6bdbe8b720723fb 100644 (file)
@@ -495,6 +495,10 @@ default_print_auxv_entry (struct gdbarch *gdbarch, struct ui_file *file,
           AUXV_FORMAT_STR);
       TAG (AT_RANDOM, _("Address of 16 random bytes"), AUXV_FORMAT_HEX);
       TAG (AT_HWCAP2, _("Extension of AT_HWCAP"), AUXV_FORMAT_HEX);
+      TAG (AT_RSEQ_FEATURE_SIZE, _("rseq supported feature size"),
+          AUXV_FORMAT_DEC);
+      TAG (AT_RSEQ_ALIGN, _("rseq allocation alignment"),
+          AUXV_FORMAT_DEC);
       TAG (AT_EXECFN, _("File name of executable"), AUXV_FORMAT_STR);
       TAG (AT_SECURE, _("Boolean, was exec setuid-like?"), AUXV_FORMAT_DEC);
       TAG (AT_SYSINFO, _("Special system info/entry points"), AUXV_FORMAT_HEX);
index 2edfb15efc7e2b1431aabe76cb2e7cb9ea181d57..244b13361e5e135058e582df06d339fb3b69ab82 100644 (file)
                                           may differ from AT_PLATFORM.  */
 #define AT_RANDOM      25              /* Address of 16 random bytes.  */
 #define AT_HWCAP2      26              /* Extension of AT_HWCAP.  */
+#define AT_RSEQ_FEATURE_SIZE   27      /* rseq supported feature size */
+#define AT_RSEQ_ALIGN  28              /* rseq allocation alignment */
 #define AT_EXECFN      31              /* Filename of executable.  */
 /* Pointer to the global system page used for system calls and other
    nice things.  */