about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-07-20 11:54:39 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-07-20 11:54:53 -0700
commitd4358b51c26a634eb885955aea06cad26af6f696 (patch)
tree20a5274fdefd2546ea6814be00ae764556d1c701
parentd87630edc49200e7892b56a6ceb116ffb8e17c38 (diff)
downloadglibc-d4358b51c26a634eb885955aea06cad26af6f696.tar.gz
glibc-d4358b51c26a634eb885955aea06cad26af6f696.tar.xz
glibc-d4358b51c26a634eb885955aea06cad26af6f696.zip
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 <qiaowei.ren@intel.com>
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.
-rw-r--r--ChangeLog8
-rw-r--r--NEWS2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/siginfo.h7
3 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 1265017188..a2571352cc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2015-07-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[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  <davem@davemloft.net>
 
 	* sysdeps/sparc/fpu/libm-test-ulps: Regenerated.
diff --git a/NEWS b/NEWS
index fc8456051b..a2c3b4840a 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 9431869d07..3151bf3c5a 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