]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Add si_addr_bnd to _sigfault in x86 struct siginfo
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 20 Jul 2015 18:54:39 +0000 (11:54 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 20 Jul 2015 18:54:53 +0000 (11:54 -0700)
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.

ChangeLog
NEWS
sysdeps/unix/sysv/linux/x86/bits/siginfo.h

index 126501718892c14961260e115b5a39afbd4c1a84..a2571352cc83175703c79fa51e2e22f2106bc5dc 100644 (file)
--- 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 fc8456051b4e4a1cfa42bf5daae24a78fd0ecc0a..a2c3b4840ab6f85c720abe7c9abe75043a333534 100644 (file)
--- 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.
index 9431869d07aa00d17e4e7b000132a1badfae5cd1..3151bf3c5ab9a45cf78886b2990bc3d85ad3cfeb 100644 (file)
@@ -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