summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxime Arthaud2018-08-15 10:16:54 -0700
committerMaxime Arthaud2018-08-15 10:16:54 -0700
commita12cd9de8fb79c7780612a2106184fa80add36eb (patch)
tree6f2ed071ddd40aa3b83339e49edcfadaf13d8d80
parentf459b0bad8aa3b94bc2733d79d176071a32846a6 (diff)
downloadaur-a12cd9de8fb79c7780612a2106184fa80add36eb.tar.gz
Fix for latest glibc (missing sys/ustat.h)
-rw-r--r--.SRCINFO4
-rw-r--r--D47281-Use-pre-computed-size-of-struct-ustat.patch33
-rw-r--r--PKGBUILD12
3 files changed, 45 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index e2a235db14ed..d6fda4c8dcf3 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = llvm40
pkgver = 4.0.1
- pkgrel = 6
+ pkgrel = 7
url = http://llvm.org/
arch = i686
arch = x86_64
@@ -24,6 +24,7 @@ pkgbase = llvm40
source = PR37031-Fix-Mips-breakages.patch
source = PR37032-Fix-ldd-x86_64-darwin13-build-fails.patch
source = D32089-Avoid-undefined-behavior-in-unittest.patch
+ source = D47281-Use-pre-computed-size-of-struct-ustat.patch
validpgpkeys = 11E521D646982372EB577A1F8F0871F202119294
sha256sums = da783db1f82d516791179fe103c71706046561f7972b18f0049242dee6712b51
sha256sums = SKIP
@@ -39,6 +40,7 @@ pkgbase = llvm40
sha256sums = 506bdbcb30c8bb4a8e3406f14ae972441835dceede61ece9e0117cb0f357e514
sha256sums = 6d5498068cf4f6141ee2c8abc1828cc3797e309e545a4e80fa544ac253fc619b
sha256sums = 25121be62f3213030deb7db1ddf2d200971f8111c9d72a59e45db3ddca322bb2
+ sha256sums = aa42070d84d055311d39d8020d1606e116687ef2c6d515364e55d3e1d42db98d
pkgname = llvm40
pkgdesc = Low Level Virtual Machine
diff --git a/D47281-Use-pre-computed-size-of-struct-ustat.patch b/D47281-Use-pre-computed-size-of-struct-ustat.patch
new file mode 100644
index 000000000000..9652b888bcbb
--- /dev/null
+++ b/D47281-Use-pre-computed-size-of-struct-ustat.patch
@@ -0,0 +1,33 @@
+Index: lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+===================================================================
+--- lib/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -160,7 +160,6 @@
+ # include <sys/procfs.h>
+ #endif
+ #include <sys/user.h>
+-#include <sys/ustat.h>
+ #include <linux/cyclades.h>
+ #include <linux/if_eql.h>
+ #include <linux/if_plip.h>
+@@ -253,7 +252,19 @@
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+- unsigned struct_ustat_sz = sizeof(struct ustat);
++ // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which
++ // has been removed from glibc 2.28.
++#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \
++ || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \
++ || defined(__x86_64__)
++#define SIZEOF_STRUCT_USTAT 32
++#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \
++ || defined(__powerpc__) || defined(__s390__)
++#define SIZEOF_STRUCT_USTAT 20
++#else
++#error Unknown size of struct ustat
++#endif
++ unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT;
+ unsigned struct_rlimit64_sz = sizeof(struct rlimit64);
+ unsigned struct_statvfs64_sz = sizeof(struct statvfs64);
+ #endif // SANITIZER_LINUX && !SANITIZER_ANDROID
diff --git a/PKGBUILD b/PKGBUILD
index 9d365d208d49..64ede94da426 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -11,7 +11,7 @@
pkgname=('llvm40' 'llvm40-libs' 'clang40')
pkgver=4.0.1
-pkgrel=6
+pkgrel=7
_prefix="/usr/lib/llvm-4.0"
arch=('i686' 'x86_64')
url="http://llvm.org/"
@@ -28,7 +28,8 @@ source=(https://releases.llvm.org/$pkgver/llvm-$pkgver.src.tar.xz{,.sig}
PR37486-Fix-lli-fails-to-build-with-gcc-8.patch
PR37031-Fix-Mips-breakages.patch
PR37032-Fix-ldd-x86_64-darwin13-build-fails.patch
- D32089-Avoid-undefined-behavior-in-unittest.patch)
+ D32089-Avoid-undefined-behavior-in-unittest.patch
+ D47281-Use-pre-computed-size-of-struct-ustat.patch)
sha256sums=('da783db1f82d516791179fe103c71706046561f7972b18f0049242dee6712b51'
'SKIP'
'61738a735852c23c3bdbe52d035488cdb2083013f384d67c1ba36fabebd8769b'
@@ -42,7 +43,8 @@ sha256sums=('da783db1f82d516791179fe103c71706046561f7972b18f0049242dee6712b51'
'080e90dabbd386fb8c4771ab7537acff157b72bb0f2591609805cacf684cceed'
'506bdbcb30c8bb4a8e3406f14ae972441835dceede61ece9e0117cb0f357e514'
'6d5498068cf4f6141ee2c8abc1828cc3797e309e545a4e80fa544ac253fc619b'
- '25121be62f3213030deb7db1ddf2d200971f8111c9d72a59e45db3ddca322bb2')
+ '25121be62f3213030deb7db1ddf2d200971f8111c9d72a59e45db3ddca322bb2'
+ 'aa42070d84d055311d39d8020d1606e116687ef2c6d515364e55d3e1d42db98d')
validpgpkeys=('11E521D646982372EB577A1F8F0871F202119294')
prepare() {
@@ -81,6 +83,10 @@ prepare() {
# Avoid undefined behavior in unittest by not making a named ArrayRef from a std::initializer_list
# https://reviews.llvm.org/D32089
patch -Np0 < ../D32089-Avoid-undefined-behavior-in-unittest.patch
+
+ # Use pre-computed size of struct ustat for Linux
+ # https://reviews.llvm.org/D47281
+ patch -Np0 -d projects/compiler-rt < ../D47281-Use-pre-computed-size-of-struct-ustat.patch
}
build() {