From d4358b51c26a634eb885955aea06cad26af6f696 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Mon, 20 Jul 2015 11:54:39 -0700 Subject: Add si_addr_bnd to _sigfault in x86 struct siginfo X86 struct siginfo in kernel 3.19 has been changed by commit ee1b58d36aa1b5a79eaba11f5c3633c88231da83 Author: Qiaowei Ren Date: Fri Nov 14 07:18:19 2014 -0800 mpx: Extend siginfo structure to include bound violation information This patch adds new fields about bound violation into siginfo structure. si_lower and si_upper are respectively lower bound and upper bound when bound violation is caused. This patch updates x86 struct siginfo to enable GDB with MPX support. [BZ #18696] * sysdeps/unix/sysv/linux/x86/bits/siginfo.h (_sigfault): Add si_addr_bnd. (si_lower): New. (si_upper): Likewise. --- ChangeLog | 8 ++++++++ NEWS | 2 +- sysdeps/unix/sysv/linux/x86/bits/siginfo.h | 7 +++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 1265017..a257135 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2015-07-20 H.J. Lu + + [BZ #18696] + * sysdeps/unix/sysv/linux/x86/bits/siginfo.h (_sigfault): Add + si_addr_bnd. + (si_lower): New. + (si_upper): Likewise. + 2015-07-16 David S. Miller * sysdeps/sparc/fpu/libm-test-ulps: Regenerated. diff --git a/NEWS b/NEWS index fc84560..a2c3b48 100644 --- a/NEWS +++ b/NEWS @@ -27,7 +27,7 @@ Version 2.22 18522, 18527, 18528, 18529, 18530, 18532, 18533, 18534, 18536, 18539, 18540, 18542, 18544, 18545, 18546, 18547, 18549, 18553, 18557, 18558, 18569, 18583, 18585, 18586, 18592, 18593, 18594, 18602, 18612, 18613, - 18619, 18633, 18641, 18643, 18648, 18676. + 18619, 18633, 18641, 18643, 18648, 18676, 18696. * Cache information can be queried via sysconf() function on s390 e.g. with _SC_LEVEL1_ICACHE_SIZE as argument. diff --git a/sysdeps/unix/sysv/linux/x86/bits/siginfo.h b/sysdeps/unix/sysv/linux/x86/bits/siginfo.h index 9431869..3151bf3 100644 --- a/sysdeps/unix/sysv/linux/x86/bits/siginfo.h +++ b/sysdeps/unix/sysv/linux/x86/bits/siginfo.h @@ -108,6 +108,11 @@ typedef struct { void *si_addr; /* Faulting insn/memory ref. */ short int si_addr_lsb; /* Valid LSB of the reported address. */ + struct + { + void *_lower; + void *_upper; + } si_addr_bnd; } _sigfault; /* SIGPOLL. */ @@ -141,6 +146,8 @@ typedef struct # define si_ptr _sifields._rt.si_sigval.sival_ptr # define si_addr _sifields._sigfault.si_addr # define si_addr_lsb _sifields._sigfault.si_addr_lsb +# define si_lower _sifields._sigfault.si_addr_bnd._lower +# define si_upper _sifields._sigfault.si_addr_bnd._upper # define si_band _sifields._sigpoll.si_band # define si_fd _sifields._sigpoll.si_fd # define si_call_addr _sifields._sigsys._call_addr -- cgit v1.1