re PR sanitizer/78992 (Incorrect sigaction definition on 32-bit sparc)
authorJames Clarke <jrtc27@jrtc27.com>
Tue, 10 Jan 2017 15:22:56 +0000 (15:22 +0000)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 10 Jan 2017 15:22:56 +0000 (16:22 +0100)
PR sanitizer/78992
* sanitizer_common/sanitizer_platform_limits_posix.h
(struct __sanitizer_sigaction): Cherry-pick upstream r291561.

From-SVN: r244275

libsanitizer/ChangeLog
libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h

index 3dc49d3..db9221c 100644 (file)
@@ -1,3 +1,9 @@
+2017-01-10  James Clarke  <jrtc27@jrtc27.com>
+
+       PR sanitizer/78992
+       * sanitizer_common/sanitizer_platform_limits_posix.h
+       (struct __sanitizer_sigaction): Cherry-pick upstream r291561.
+
 2016-11-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
 
        * LOCAL_PATCHES: Add revision.
index 066bf41..c139322 100644 (file)
@@ -633,9 +633,12 @@ namespace __sanitizer {
 #ifndef __mips__
 #if defined(__sparc__)
 #if __GLIBC_PREREQ (2, 20)
-    // On sparc glibc 2.19 and earlier sa_flags was unsigned long, and
-    // __glibc_reserved0 didn't exist.
+    // On sparc glibc 2.19 and earlier sa_flags was unsigned long.
+#if defined(__arch64__)
+    // To maintain ABI compatibility on sparc64 when switching to an int,
+    // __glibc_reserved0 was added.
     int __glibc_reserved0;
+#endif
     int sa_flags;
 #else
     unsigned long sa_flags;