]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR sanitizer/78992 (Incorrect sigaction definition on 32-bit sparc)
authorEric Botcazou <ebotcazou@adacore.com>
Thu, 29 Jun 2017 18:57:47 +0000 (18:57 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Thu, 29 Jun 2017 18:57:47 +0000 (18:57 +0000)
Backport from mainline
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>

PR sanitizer/78532
* sanitizer_common/sanitizer_platform_limits_posix.h
(__sanitizer_sigaction): Adjust for sparc targets and various Glibc
versions.

From-SVN: r249808

libsanitizer/ChangeLog
libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h

index 995f3c93ca265fb832e6f9fd6d36a80a734fa620..f8e1a098778b2a6c98711fca90523aec07b3cf55 100644 (file)
@@ -1,3 +1,19 @@
+2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+       Backport from mainline
+       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>
+
+       PR sanitizer/78532
+       * sanitizer_common/sanitizer_platform_limits_posix.h
+       (__sanitizer_sigaction): Adjust for sparc targets and various Glibc
+       versions.
+
 2017-05-30  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
index 657cd85264e7bd036d5e2b361152cf5f6f9f5774..60867ff185b0f015218c8c23b6c4a50319ccd4eb 100644 (file)
 #include "sanitizer_internal_defs.h"
 #include "sanitizer_platform.h"
 
+#ifndef __GLIBC_PREREQ
+#define __GLIBC_PREREQ(x, y) 0
+#endif
+
 namespace __sanitizer {
   extern unsigned struct_utsname_sz;
   extern unsigned struct_stat_sz;
@@ -565,7 +569,17 @@ namespace __sanitizer {
     __sanitizer_sigset_t sa_mask;
 #ifndef __mips__
 #if defined(__sparc__)
+#if __GLIBC_PREREQ (2, 20)
+    // 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;
+#endif
 #else
     int sa_flags;
 #endif