summarylogtreecommitdiffstats
path: root/0004-glibc-2.31-libsanitizer.patch
diff options
context:
space:
mode:
Diffstat (limited to '0004-glibc-2.31-libsanitizer.patch')
-rw-r--r--0004-glibc-2.31-libsanitizer.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/0004-glibc-2.31-libsanitizer.patch b/0004-glibc-2.31-libsanitizer.patch
new file mode 100644
index 000000000000..2a3465ab2f29
--- /dev/null
+++ b/0004-glibc-2.31-libsanitizer.patch
@@ -0,0 +1,38 @@
+--- gcc-4.9.4/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2020-03-21 17:37:23.620440276 +0100
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2020-03-21 17:36:36.520276053 +0100
+@@ -939,7 +939,11 @@ 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 !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
+ CHECK_SIZE_AND_OFFSET(ipc_perm, __seq);
+
+ CHECK_TYPE_SIZE(shmid_ds);
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 2014-10-14 21:26:42.000000000 +0200
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 2020-03-21 13:03:32.238797548 +0100
+@@ -154,20 +154,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;
+ #else
+- unsigned short mode;
+- unsigned short __pad1;
++ unsigned int mode;
+ unsigned short __seq;
+ unsigned short __pad2;
+ #if defined(__x86_64__) && !defined(_LP64)