]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR sanitizer/92154 (new glibc breaks arm bootstrap due to libsanitizer)
authorJakub Jelinek <jakub@redhat.com>
Fri, 20 Dec 2019 16:58:35 +0000 (17:58 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 20 Dec 2019 16:58:35 +0000 (17:58 +0100)
Backported from mainline
2019-11-26  Jakub Jelinek  <jakub@redhat.com>

PR sanitizer/92154
* sanitizer_common/sanitizer_platform_limits_posix.h: Cherry-pick
llvm-project revision 947f9692440836dcb8d88b74b69dd379d85974ce.
* sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise.

From-SVN: r279653

libsanitizer/ChangeLog
libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h

index 82b7b112d949bef593045048fb4bc82457bfeeb3..e96f13b4ae6ff78929238eee46b49c34644a21fd 100644 (file)
@@ -1,3 +1,13 @@
+2019-12-20  Jakub Jelinek  <jakub@redhat.com>
+
+       Backported from mainline
+       2019-11-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR sanitizer/92154
+       * sanitizer_common/sanitizer_platform_limits_posix.h: Cherry-pick
+       llvm-project revision 947f9692440836dcb8d88b74b69dd379d85974ce.
+       * sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise.
+
 2019-11-08  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
index 06a605ff4670b3dcd065514aafd0982ff75952c2..d823a12190c087689b81c1a735005c862c163936 100644 (file)
@@ -1156,12 +1156,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
 CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
 CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
 CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
-#if (!defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)) && \
-    !defined(__arm__)
-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field.  */
-/* On Arm glibc 2.31 and later provide a different mode field, this field is
-   never used by libsanitizer so we can simply ignore this assert for all glibc
-   versions.  */
+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
+   on many architectures.  */
 CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
 #endif
 
index 73af92af1e8fbab02473de186c5b105058e9bcea..6a673a7c99598ed4248eba580a23afbe3e813525 100644 (file)
@@ -211,26 +211,13 @@ namespace __sanitizer {
     u64 __unused1;
     u64 __unused2;
 #elif defined(__sparc__)
-#if defined(__arch64__)
     unsigned mode;
-    unsigned short __pad1;
-#else
-    unsigned short __pad1;
-    unsigned short mode;
     unsigned short __pad2;
-#endif
     unsigned short __seq;
     unsigned long long __unused1;
     unsigned long long __unused2;
-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__)
-    unsigned int mode;
-    unsigned short __seq;
-    unsigned short __pad1;
-    unsigned long __unused1;
-    unsigned long __unused2;
 #else
-    unsigned short mode;
-    unsigned short __pad1;
+    unsigned int mode;
     unsigned short __seq;
     unsigned short __pad2;
 #if defined(__x86_64__) && !defined(_LP64)