summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorRuben Van Boxem2020-03-21 18:49:20 +0100
committerRuben Van Boxem2020-03-21 18:49:20 +0100
commitc1dfb08fb4c4a0c45698a2414045afeb2e579333 (patch)
treef743da4520c76fe79a849d779e205e9cfcc6401c
parentb2c719a09d5e2877710805386dedd0a6a6f51b77 (diff)
downloadaur-c1dfb08fb4c4a0c45698a2414045afeb2e579333.tar.gz
add patch for compatibility of libsanitizer with recent glibc
-rw-r--r--.SRCINFO2
-rw-r--r--0004-glibc-2.31-libsanitizer.patch38
-rw-r--r--PKGBUILD9
3 files changed, 46 insertions, 3 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 1ab20990a6a1..37054d56d88b 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -22,6 +22,7 @@ pkgbase = gcc49
source = 0001-gcc-4.9-SIGSEGV.patch
source = 0002-gcc-4.9-__res_state.patch
source = 0003-gcc-4.9-ustate.patch
+ source = 0004-glibc-2.31-libsanitizer.patch
md5sums = 87c24a4090c1577ba817ec6882602491
md5sums = e039bfcfb6c2ab039b8ee69bf883e824
md5sums = e34fca0540d840e5d0f6427e98c92252
@@ -29,6 +30,7 @@ pkgbase = gcc49
md5sums = e787a03f0c38434490515a5823eca0b8
md5sums = c64d1e20274ff4fbfacdd11bef2e1273
md5sums = b27134678242f358c9b81cd73a1bcba1
+ md5sums = 931ee06584a47f3bdb5ea57fa2d5f76f
pkgname = gcc49
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)
diff --git a/PKGBUILD b/PKGBUILD
index 015fb1f97aad..2992f172458b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -22,14 +22,16 @@ source=("ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2"
"0000-gcc-4.9.ucontext.patch"
"0001-gcc-4.9-SIGSEGV.patch"
"0002-gcc-4.9-__res_state.patch"
- "0003-gcc-4.9-ustate.patch")
+ "0003-gcc-4.9-ustate.patch"
+ "0004-glibc-2.31-libsanitizer.patch")
md5sums=('87c24a4090c1577ba817ec6882602491'
'e039bfcfb6c2ab039b8ee69bf883e824'
'e34fca0540d840e5d0f6427e98c92252'
'4a0dc704f1d92ceb4dd8608811241cec'
'e787a03f0c38434490515a5823eca0b8'
'c64d1e20274ff4fbfacdd11bef2e1273'
- 'b27134678242f358c9b81cd73a1bcba1')
+ 'b27134678242f358c9b81cd73a1bcba1'
+ '931ee06584a47f3bdb5ea57fa2d5f76f')
_basedir=gcc-${pkgver}
_libdir="usr/lib/gcc/$CHOST/$pkgver"
@@ -69,8 +71,9 @@ prepare() {
fi
patch -Nbup0 -i "${srcdir}/0003-gcc-4.9-ustate.patch"
+ patch -p1 -i "${srcdir}/0004-glibc-2.31-libsanitizer.patch"
- mkdir ${srcdir}/gcc-build
+ mkdir -p ${srcdir}/gcc-build
}
build() {