about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--NEWS6
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigaction.h4
3 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ccce486c9d..d9cbce76d5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-07-21  Mike Frysinger  <vapier@gentoo.org>
+
+	[BZ #18694]
+	* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Include
+	bits/wordsize.h.
+	(sigaction): Declare __glibc_reserved0 only when __WORDSIZE is 64.
+
 2015-02-16  Paul Pluzhnikov  <ppluzhnikov@google.com>
 
 	[BZ #16618]
diff --git a/NEWS b/NEWS
index 976f2ea023..b469ad2b50 100644
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,7 @@ Version 2.20.1
 * The following bugs are resolved with this release:
 
   16009, 16617, 16618, 17266, 17370, 17371, 17460, 17485, 17555, 17625,
-  17630, 17801.
+  17630, 17801, 18694.
 
 * CVE-2015-1472 Under certain conditions wscanf can allocate too little
   memory for the to-be-scanned arguments and overflow the allocated
@@ -29,6 +29,10 @@ Version 2.20.1
 * CVE-2014-9402 The nss_dns implementation of getnetbyname could run into an
   infinite loopif the DNS response contained a PTR record of an unexpected
   format.
+
+* The 32-bit sparc sigaction ABI was inadvertently broken in the 2.20 release.
+  It has been fixed to match 2.19 and older, but binaries built against 2.20
+  might need to be recompiled.  See BZ#18694.
 
 Version 2.20
 
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h b/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
index 7a0ca7eea2..b1b121d9b7 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
@@ -20,6 +20,8 @@
 # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
 #endif
 
+#include <bits/wordsize.h>
+
 /* Structure describing the action to be taken when a signal arrives.  */
 struct sigaction
   {
@@ -43,7 +45,9 @@ struct sigaction
     __sigset_t sa_mask;
 
     /* Special flags.  */
+#if __WORDSIZE == 64
     int __glibc_reserved0;
+#endif
     int sa_flags;
 
     /* Not used by Linux/Sparc yet.  */