From 7d1022a04284035ab567d85e356e14e06aab121d Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Thu, 6 Feb 2020 22:19:38 +0000 Subject: 9.2.0: backport libsanitizer tweaks for glibc-2.31 Reported-by: Mike Lothian Bug: https://bugs.gentoo.org/708346 Signed-off-by: Sergei Trofimovich --- .../gentoo/35_all_glibc-2.31-libsanitizer-1.patch | 40 ++++++++++++ .../gentoo/36_all_glibc-2.31-libsanitizer-2.patch | 76 ++++++++++++++++++++++ 9.2.0/gentoo/README.history | 2 + 3 files changed, 118 insertions(+) create mode 100644 9.2.0/gentoo/35_all_glibc-2.31-libsanitizer-1.patch create mode 100644 9.2.0/gentoo/36_all_glibc-2.31-libsanitizer-2.patch diff --git a/9.2.0/gentoo/35_all_glibc-2.31-libsanitizer-1.patch b/9.2.0/gentoo/35_all_glibc-2.31-libsanitizer-1.patch new file mode 100644 index 0000000..4906ae0 --- /dev/null +++ b/9.2.0/gentoo/35_all_glibc-2.31-libsanitizer-1.patch @@ -0,0 +1,40 @@ +https://bugs.gentoo.org/708346 + +From ce9568e9e9cf6094be30e748821421e703754ffc Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek +Date: Fri, 8 Nov 2019 19:53:18 +0100 +Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm + bootstrap due to libsanitizer) + + Backported from mainline + 2019-10-22 Tamar Christina + + PR sanitizer/92154 + * sanitizer_common/sanitizer_platform_limits_posix.cc: + Cherry-pick compiler-rt revision r375220. + +From-SVN: r277981 +--- + libsanitizer/ChangeLog | 9 +++++++++ + .../sanitizer_common/sanitizer_platform_limits_posix.cc | 6 +++++- + 2 files changed, 14 insertions(+), 1 deletion(-) + +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -1156,8 +1156,12 @@ 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) ++#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. */ + CHECK_SIZE_AND_OFFSET(ipc_perm, mode); + #endif + +-- +2.25.0 + diff --git a/9.2.0/gentoo/36_all_glibc-2.31-libsanitizer-2.patch b/9.2.0/gentoo/36_all_glibc-2.31-libsanitizer-2.patch new file mode 100644 index 0000000..1960a11 --- /dev/null +++ b/9.2.0/gentoo/36_all_glibc-2.31-libsanitizer-2.patch @@ -0,0 +1,76 @@ +https://bugs.gentoo.org/708346 + +From 75003cdd23c310ec385344e8040d490e8dd6d2be Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek +Date: Fri, 20 Dec 2019 17:58:35 +0100 +Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm + bootstrap due to libsanitizer) + + Backported from mainline + 2019-11-26 Jakub Jelinek + + 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 | 10 ++++++++++ + .../sanitizer_platform_limits_posix.cc | 9 +++------ + .../sanitizer_platform_limits_posix.h | 15 +-------------- + 3 files changed, 14 insertions(+), 20 deletions(-) + +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -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 + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +index 73af92af1e8..6a673a7c995 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -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) +-- +2.25.0 + diff --git a/9.2.0/gentoo/README.history b/9.2.0/gentoo/README.history index 0ac54f3..01df09a 100644 --- a/9.2.0/gentoo/README.history +++ b/9.2.0/gentoo/README.history @@ -1,5 +1,7 @@ 5 TODO + 34_all_ia64-neg-insn-cost.patch + + 35_all_glibc-2.31-libsanitizer-1.patch + + 36_all_glibc-2.31-libsanitizer-2.patch 4 22 Dec 2012 + 31_all_openmp-for-SEGV.patch -- cgit v1.2.3-65-gdbad