about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-07-20 09:24:33 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-07-20 09:31:30 -0700
commit341681a4fe9eb585068b7a4f57ea52fa12e97a94 (patch)
tree2dcd2d54fce6a067f1ff26ba2d1c8f0dfcd78ecc
parentd87630edc49200e7892b56a6ceb116ffb8e17c38 (diff)
downloadglibc-hjl/pr18696.tar.gz
glibc-hjl/pr18696.tar.xz
glibc-hjl/pr18696.zip
Add si_addr_bnd to _sigfault in x86 struct siginfo hjl/pr18696
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--sysdeps/unix/sysv/linux/x86/bits/siginfo.h7
1 files changed, 7 insertions, 0 deletions
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