Update siginfo constants from Linux kernel (bug 21286).

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.
This commit is contained in:
Joseph Myers 2018-09-17 12:41:14 +00:00
parent 3f7f1d180d
commit 89983cb37c
3 changed files with 46 additions and 17 deletions

View File

@ -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]

View 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

View 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