]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update siginfo constants from Linux kernel (bug 21286).
authorJoseph Myers <joseph@codesourcery.com>
Mon, 17 Sep 2018 12:41:14 +0000 (12:41 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 17 Sep 2018 12:41:14 +0000 (12:41 +0000)
As of Linux 4.17, siginfo headers in the Linux kernel have been
largely unified across architectures (so various constants are defined
with common values in include/uapi/asm-generic/siginfo.h even if not
all architectures can generate those particular constants).

This patch makes glibc reflect that unification and the current set of
constants in that header as of Linux 4.18.  Various constants are
added to bits/siginfo-consts.h (under the same feature test macro
conditions as the other constants with the same prefix), and removed
from the ia64 bits/siginfo-consts-arch.h where they were previously
there - this is not limited to constants added by the unification.
Nothing is done about macros that are defined in
include/uapi/asm-generic/siginfo.h with names with leading '__' (some
of those are ia64-specific ones that remain in the ia64
bits/siginfo-consts-arch.h without the leading '__' there).

A consequence of these changes is that TRAP_HWBKPT becomes available
on AArch64 and all other architectures as requested in bug 21286.

Tested for x86_64; tested with build-many-glibcs.py for ia64.

[BZ #21286]
* sysdeps/unix/sysv/linux/bits/siginfo-consts.h (SI_DETHREAD): New
constant.
[__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (ILL_BADIADDR): Likewise.
[__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (FPE_FLTUNK): Likewise.
[__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (FPE_CONDTRAP): Likewise.
[__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (SEGV_ACCADI): Likewise.
[__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (SEGV_ADIDERR): Likewise.
[__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (SEGV_ADIPERR): Likewise.
[__USE_XOPEN_EXTENDED] (TRAP_BRANCH): Likewise.
[__USE_XOPEN_EXTENDED] (TRAP_HWBKPT): Likewise.
[__USE_XOPEN_EXTENDED] (TRAP_UNK): Likweise.
* sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h
(ILL_BADIADDR): Remove constant.
(TRAP_BRANCH): Likewise.
(TRAP_HWBKPT): Likewise.

ChangeLog
sysdeps/unix/sysv/linux/bits/siginfo-consts.h
sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h

index 99a560f233e8e1f685f3c0c306d51a740583e8d2..1532d35b9400a253da505d6f2f1059895c3e6080 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2018-09-17  Joseph Myers  <joseph@codesourcery.com>
+
+       [BZ #21286]
+       * sysdeps/unix/sysv/linux/bits/siginfo-consts.h (SI_DETHREAD): New
+       constant.
+       [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (ILL_BADIADDR): Likewise.
+       [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (FPE_FLTUNK): Likewise.
+       [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (FPE_CONDTRAP): Likewise.
+       [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (SEGV_ACCADI): Likewise.
+       [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (SEGV_ADIDERR): Likewise.
+       [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (SEGV_ADIPERR): Likewise.
+       [__USE_XOPEN_EXTENDED] (TRAP_BRANCH): Likewise.
+       [__USE_XOPEN_EXTENDED] (TRAP_HWBKPT): Likewise.
+       [__USE_XOPEN_EXTENDED] (TRAP_UNK): Likweise.
+       * sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h
+       (ILL_BADIADDR): Remove constant.
+       (TRAP_BRANCH): Likewise.
+       (TRAP_HWBKPT): Likewise.
+
 2018-09-14  Joseph Myers  <joseph@codesourcery.com>
 
        [BZ #23656]
index 193bd9c471994fa7b7bc708b616cca9adf84faba..d69d27d922c5c85fe4f8588d13f62352ebbb23ed 100644 (file)
@@ -35,7 +35,9 @@
 enum
 {
   SI_ASYNCNL = -60,            /* Sent by asynch name lookup completion.  */
-  SI_TKILL = -6,               /* Sent by tkill.  */
+  SI_DETHREAD = -7,            /* Sent by execve killing subsidiary
+                                  threads.  */
+  SI_TKILL,                    /* Sent by tkill.  */
   SI_SIGIO,                    /* Sent by queued SIGIO. */
 #if __SI_ASYNCIO_AFTER_SIGIO
   SI_ASYNCIO,                  /* Sent by AIO completion.  */
@@ -51,6 +53,7 @@ enum
   SI_KERNEL = 0x80             /* Send by kernel.  */
 
 #define SI_ASYNCNL     SI_ASYNCNL
+#define SI_DETHREAD    SI_DETHREAD
 #define SI_TKILL       SI_TKILL
 #define SI_SIGIO       SI_SIGIO
 #define SI_ASYNCIO     SI_ASYNCIO
@@ -81,8 +84,10 @@ enum
 #  define ILL_PRVREG   ILL_PRVREG
   ILL_COPROC,                  /* Coprocessor error.  */
 #  define ILL_COPROC   ILL_COPROC
-  ILL_BADSTK                   /* Internal stack error.  */
+  ILL_BADSTK,                  /* Internal stack error.  */
 #  define ILL_BADSTK   ILL_BADSTK
+  ILL_BADIADDR                 /* Unimplemented instruction address.  */
+#  define ILL_BADIADDR ILL_BADIADDR
 };
 
 /* `si_code' values for SIGFPE signal.  */
@@ -102,8 +107,12 @@ enum
 #  define FPE_FLTRES   FPE_FLTRES
   FPE_FLTINV,                  /* Floating point invalid operation.  */
 #  define FPE_FLTINV   FPE_FLTINV
-  FPE_FLTSUB                   /* Subscript out of range.  */
+  FPE_FLTSUB,                  /* Subscript out of range.  */
 #  define FPE_FLTSUB   FPE_FLTSUB
+  FPE_FLTUNK = 14,             /* Undiagnosed floating-point exception.  */
+#  define FPE_FLTUNK   FPE_FLTUNK
+  FPE_CONDTRAP                 /* Trap on condition.  */
+#  define FPE_CONDTRAP FPE_CONDTRAP
 };
 
 /* `si_code' values for SIGSEGV signal.  */
@@ -115,8 +124,14 @@ enum
 #  define SEGV_ACCERR  SEGV_ACCERR
   SEGV_BNDERR,                 /* Bounds checking failure.  */
 #  define SEGV_BNDERR  SEGV_BNDERR
-  SEGV_PKUERR                  /* Protection key checking failure.  */
+  SEGV_PKUERR,                 /* Protection key checking failure.  */
 #  define SEGV_PKUERR  SEGV_PKUERR
+  SEGV_ACCADI,                 /* ADI not enabled for mapped object.  */
+#  define SEGV_ACCADI  SEGV_ACCADI
+  SEGV_ADIDERR,                        /* Disrupting MCD error.  */
+#  define SEGV_ADIDERR SEGV_ADIDERR
+  SEGV_ADIPERR                 /* Precise MCD exception.  */
+#  define SEGV_ADIPERR SEGV_ADIPERR
 };
 
 /* `si_code' values for SIGBUS signal.  */
@@ -141,8 +156,14 @@ enum
 {
   TRAP_BRKPT = 1,              /* Process breakpoint.  */
 #  define TRAP_BRKPT   TRAP_BRKPT
-  TRAP_TRACE                   /* Process trace trap.  */
+  TRAP_TRACE,                  /* Process trace trap.  */
 #  define TRAP_TRACE   TRAP_TRACE
+  TRAP_BRANCH,                 /* Process taken branch trap.  */
+#  define TRAP_BRANCH  TRAP_BRANCH
+  TRAP_HWBKPT,                 /* Hardware breakpoint/watchpoint.  */
+#  define TRAP_HWBKPT  TRAP_HWBKPT
+  TRAP_UNK                     /* Undiagnosed trap.  */
+#  define TRAP_UNK     TRAP_UNK
 };
 # endif
 
index 4c5c4da5160b110cfdc3cdcbd79fc04d7b9ffe84..5ef8af4ac7a03b2163a21e5cf1128f560c4b710a 100644 (file)
@@ -5,9 +5,7 @@
 /* `si_code' values for SIGILL signal.  */
 enum
 {
-  ILL_BADIADDR = ILL_BADSTK + 1, /* Unimplemented instruction address. */
-#define ILL_BADIADDR ILL_BADIADDR
-  ILL_BREAK
+  ILL_BREAK = ILL_BADIADDR + 1
 #define ILL_BREAK ILL_BREAK
 };
 
@@ -33,13 +31,4 @@ enum
 #define SEGV_PSTKOVF SEGV_PSTKOVF
 };
 
-/* `si_code' values for SIGTRAP signal.  */
-enum
-{
-  TRAP_BRANCH = TRAP_TRACE + 1,
-#define TRAP_BRANCH TRAP_BRANCH
-  TRAP_HWBKPT
-#define TRAP_HWBKPT TRAP_HWBKPT
-};
-
 #endif