diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2020-06-21 17:58:29 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2020-06-21 17:58:45 +0100 |
commit | 13294ad1c51cc6f1921577c717aaba643226db08 (patch) | |
tree | 743f69c46c1412e4e47999940ec5bf3ff7515d4b /dev-lang/gnat-gpl | |
parent | net-wireless/iw: amd64 stable wrt bug #728620 (diff) | |
download | gentoo-13294ad1c51cc6f1921577c717aaba643226db08.tar.gz gentoo-13294ad1c51cc6f1921577c717aaba643226db08.tar.bz2 gentoo-13294ad1c51cc6f1921577c717aaba643226db08.zip |
dev-lang/gnat-gpl: backport libsanitizer fix to 2018
Reported-by: Agostino Sarubbo
Bug: https://bugs.gentoo.org/726752
Package-Manager: Portage-2.3.101, Repoman-2.3.22
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'dev-lang/gnat-gpl')
-rw-r--r-- | dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p1.patch | 32 | ||||
-rw-r--r-- | dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p2.patch | 59 | ||||
-rw-r--r-- | dev-lang/gnat-gpl/gnat-gpl-2018-r3.ebuild | 2 |
3 files changed, 93 insertions, 0 deletions
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p1.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p1.patch new file mode 100644 index 000000000000..80cc074d7f34 --- /dev/null +++ b/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p1.patch @@ -0,0 +1,32 @@ +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 +@@ -1147,8 +1147,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.2 + diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p2.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p2.patch new file mode 100644 index 000000000000..bdd8dcbe3d02 --- /dev/null +++ b/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p2.patch @@ -0,0 +1,59 @@ +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 +@@ -1147,12 +1147,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 + +--- 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/dev-lang/gnat-gpl/gnat-gpl-2018-r3.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2018-r3.ebuild index 7dbb27439ea7..bb4782b8d4be 100644 --- a/dev-lang/gnat-gpl/gnat-gpl-2018-r3.ebuild +++ b/dev-lang/gnat-gpl/gnat-gpl-2018-r3.ebuild @@ -123,6 +123,8 @@ src_prepare() { EPATCH_EXCLUDE+=" 95_all_libsanitizer-avoidustat.h-glibc-2.28-part-1.patch" EPATCH_EXCLUDE+=" 98_all_msp430-partial-int.patch" toolchain_src_prepare + eapply "${FILESDIR}"/${P}-libsanitizer-p1.patch + eapply "${FILESDIR}"/${P}-libsanitizer-p2.patch } src_configure() { |