File sanitizer-glibc-2.31.patch of Package gcc6
diff -urEbwB gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc gcc-6.5.0.new/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
--- gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2018-09-23 10:36:14.000000000 +0200
+++ gcc-6.5.0.new/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2020-04-15 23:54:29.843070366 +0200
@@ -1130,8 +1130,9 @@
#ifndef __GLIBC_PREREQ
#define __GLIBC_PREREQ(x, y) 0
#endif
-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
+#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
diff -urEbwB gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h gcc-6.5.0.new/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
--- gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 2017-06-29 20:26:45.000000000 +0200
+++ gcc-6.5.0.new/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 2020-04-15 23:58:02.119074559 +0200
@@ -207,20 +207,13 @@
unsigned long __unused1;
unsigned long __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;
#else
- unsigned short mode;
- unsigned short __pad1;
+ unsigned int mode;
unsigned short __seq;
unsigned short __pad2;
#if defined(__x86_64__) && !defined(_LP64)