diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2020-03-21 14:11:10 +0000 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2020-03-21 14:11:10 +0000 |
commit | 560867ab09420fd475ff0151d1fa58b4aa83e725 (patch) | |
tree | b0435d87fb2a8c6b2010cb28dd5d30f5711edb8b /5.5.0 | |
parent | 6.5.0: backport glibc-2.31 libsanitizer fixes (diff) | |
download | gcc-patches-560867ab09420fd475ff0151d1fa58b4aa83e725.tar.gz gcc-patches-560867ab09420fd475ff0151d1fa58b4aa83e725.tar.bz2 gcc-patches-560867ab09420fd475ff0151d1fa58b4aa83e725.zip |
5.5.0: backport glibc-2.31 libsanitizer fixes
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to '5.5.0')
-rw-r--r-- | 5.5.0/gentoo/36_all_libsanitizer-p1.patch | 33 | ||||
-rw-r--r-- | 5.5.0/gentoo/37_all_libsanitizer-p2.patch | 63 | ||||
-rw-r--r-- | 5.5.0/gentoo/README.history | 4 |
3 files changed, 100 insertions, 0 deletions
diff --git a/5.5.0/gentoo/36_all_libsanitizer-p1.patch b/5.5.0/gentoo/36_all_libsanitizer-p1.patch new file mode 100644 index 0000000..9bc5426 --- /dev/null +++ b/5.5.0/gentoo/36_all_libsanitizer-p1.patch @@ -0,0 +1,33 @@ +From 54d87ffe4b34052f159ac5b72b250129ce813b2a Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek <jakub@redhat.com> +Date: Fri, 14 Feb 2020 12:33:27 +0100 +Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm + bootstrap due to libsanitizer) + + Backported from mainline + 2019-10-22 Tamar Christina <tamar.christina@arm.com> + + PR sanitizer/92154 + * sanitizer_common/sanitizer_platform_limits_posix.cc: + Cherry-pick compiler-rt revision r375220. +--- +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -1128,12 +1128,16 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, gid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); + #ifndef __GLIBC_PREREQ + #define __GLIBC_PREREQ(x, y) 0 + #endif +-#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 + + CHECK_TYPE_SIZE(shmid_ds); + CHECK_SIZE_AND_OFFSET(shmid_ds, shm_perm); diff --git a/5.5.0/gentoo/37_all_libsanitizer-p2.patch b/5.5.0/gentoo/37_all_libsanitizer-p2.patch new file mode 100644 index 0000000..dea9073 --- /dev/null +++ b/5.5.0/gentoo/37_all_libsanitizer-p2.patch @@ -0,0 +1,63 @@ +From dbdf86838aaaef76620c00c53096cfe157d5af6e Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek <jakub@redhat.com> +Date: Fri, 14 Feb 2020 12:38:30 +0100 +Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm + bootstrap due to libsanitizer) + + 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. +--- +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -1128,16 +1128,13 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, gid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); + #ifndef __GLIBC_PREREQ + #define __GLIBC_PREREQ(x, y) 0 + #endif +-#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 + + CHECK_TYPE_SIZE(shmid_ds); + CHECK_SIZE_AND_OFFSET(shmid_ds, shm_perm); +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -210,20 +210,13 @@ namespace __sanitizer { + 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) +-- +2.25.2 + diff --git a/5.5.0/gentoo/README.history b/5.5.0/gentoo/README.history index 237416d..4fcc795 100644 --- a/5.5.0/gentoo/README.history +++ b/5.5.0/gentoo/README.history @@ -1,3 +1,7 @@ +2 TODO + + 36_all_libsanitizer-p1.patch + + 37_all_libsanitizer-p2.patch + 1.0 10 Dec 2018 + 01_all_gcc-spec-env.patch + 02_all_default-ssp.patch |