summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxime Arthaud2017-10-11 22:33:51 -0700
committerMaxime Arthaud2017-10-11 22:33:51 -0700
commit88a124d23cae66bf8beafa0c13ed4edc96411f4a (patch)
tree3f83afc092d3583d889a7520d5ad4786075678a6
parente159750be32c07b51fb6afd9f24fd921942b561d (diff)
downloadaur-88a124d23cae66bf8beafa0c13ed4edc96411f4a.tar.gz
Add fix for latest glibc
-rw-r--r--.SRCINFO4
-rw-r--r--0003-Fix-sanitizer-build-against-latest-glibc.patch76
-rw-r--r--PKGBUILD8
3 files changed, 86 insertions, 2 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 2cd699186892..c564e807a604 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = llvm40
pkgver = 4.0.1
- pkgrel = 1
+ pkgrel = 2
url = http://llvm.org/
arch = i686
arch = x86_64
@@ -16,6 +16,7 @@ pkgbase = llvm40
source = https://releases.llvm.org/4.0.1/cfe-4.0.1.src.tar.xz.sig
source = 0001-GCC-compatibility-Ignore-the-fno-plt-flag.patch
source = 0002-Enable-SSP-and-PIE-by-default.patch
+ source = 0003-Fix-sanitizer-build-against-latest-glibc.patch
source = disable-llvm-symbolizer-test.patch
validpgpkeys = 11E521D646982372EB577A1F8F0871F202119294
sha256sums = da783db1f82d516791179fe103c71706046561f7972b18f0049242dee6712b51
@@ -24,6 +25,7 @@ pkgbase = llvm40
sha256sums = SKIP
sha256sums = ed4a1c3c73b31421caa0ba50d14cabc16de676a88f045d06b207bbb3006963ac
sha256sums = 79f1a409700a83d983d7237a907aeddf342c28aa810b87b28ee27b8c5560644a
+ sha256sums = 0afff7e5cf0f6df596517f63a9a9f085eab3b53f42a1eb14bbd83861c36c9fd7
sha256sums = 6fff47ab5ede79d45fe64bb4903b7dfc27212a38e6cd5d01e60ebd24b7557359
pkgname = llvm40
diff --git a/0003-Fix-sanitizer-build-against-latest-glibc.patch b/0003-Fix-sanitizer-build-against-latest-glibc.patch
new file mode 100644
index 000000000000..480c837cd5ec
--- /dev/null
+++ b/0003-Fix-sanitizer-build-against-latest-glibc.patch
@@ -0,0 +1,76 @@
+Index: lib/sanitizer_common/sanitizer_linux.h
+===================================================================
+--- lib/sanitizer_common/sanitizer_linux.h
++++ lib/sanitizer_common/sanitizer_linux.h
+@@ -21,17 +21,15 @@
+ #include "sanitizer_platform_limits_posix.h"
+
+ struct link_map; // Opaque type returned by dlopen().
+-struct sigaltstack;
+
+ namespace __sanitizer {
+ // Dirent structure for getdents(). Note that this structure is different from
+ // the one in <dirent.h>, which is used by readdir().
+ struct linux_dirent;
+
+ // Syscall wrappers.
+ uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count);
+-uptr internal_sigaltstack(const struct sigaltstack* ss,
+- struct sigaltstack* oss);
++uptr internal_sigaltstack(const void* ss, void* oss);
+ uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set,
+ __sanitizer_sigset_t *oldset);
+
+Index: lib/sanitizer_common/sanitizer_linux.cc
+===================================================================
+--- lib/sanitizer_common/sanitizer_linux.cc
++++ lib/sanitizer_common/sanitizer_linux.cc
+@@ -607,8 +607,7 @@
+ }
+ #endif
+
+-uptr internal_sigaltstack(const struct sigaltstack *ss,
+- struct sigaltstack *oss) {
++uptr internal_sigaltstack(const void *ss, void *oss) {
+ return internal_syscall(SYSCALL(sigaltstack), (uptr)ss, (uptr)oss);
+ }
+
+Index: lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
+===================================================================
+--- lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
++++ lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
+@@ -275,7 +275,7 @@
+
+ // Alternate stack for signal handling.
+ InternalScopedBuffer<char> handler_stack_memory(kHandlerStackSize);
+- struct sigaltstack handler_stack;
++ stack_t handler_stack;
+ internal_memset(&handler_stack, 0, sizeof(handler_stack));
+ handler_stack.ss_sp = handler_stack_memory.data();
+ handler_stack.ss_size = kHandlerStackSize;
+Index: lib/tsan/rtl/tsan_platform_linux.cc
+===================================================================
+--- lib/tsan/rtl/tsan_platform_linux.cc
++++ lib/tsan/rtl/tsan_platform_linux.cc
+@@ -289,7 +289,7 @@
+ int ExtractResolvFDs(void *state, int *fds, int nfd) {
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+ int cnt = 0;
+- __res_state *statp = (__res_state*)state;
++ struct __res_state *statp = (struct __res_state*)state;
+ for (int i = 0; i < MAXNS && cnt < nfd; i++) {
+ if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1)
+ fds[cnt++] = statp->_u._ext.nssocks[i];
+Index: lib/esan/esan_sideline_linux.cpp
+===================================================================
+--- lib/esan/esan_sideline_linux.cpp
++++ lib/esan/esan_sideline_linux.cpp
+@@ -70,7 +70,7 @@ int SidelineThread::runSideline(void *Arg) {
+
+ // Set up a signal handler on an alternate stack for safety.
+ InternalScopedBuffer<char> StackMap(SigAltStackSize);
+- struct sigaltstack SigAltStack;
++ stack_t SigAltStack;
+ SigAltStack.ss_sp = StackMap.data();
+ SigAltStack.ss_size = SigAltStackSize;
+ SigAltStack.ss_flags = 0;
diff --git a/PKGBUILD b/PKGBUILD
index 650c9f1689f9..64f39494da74 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -11,7 +11,7 @@
pkgname=('llvm40' 'llvm40-libs' 'clang40')
pkgver=4.0.1
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
url="http://llvm.org/"
license=('custom:University of Illinois/NCSA Open Source License')
@@ -21,6 +21,7 @@ source=(https://releases.llvm.org/$pkgver/llvm-$pkgver.src.tar.xz{,.sig}
https://releases.llvm.org/$pkgver/cfe-$pkgver.src.tar.xz{,.sig}
0001-GCC-compatibility-Ignore-the-fno-plt-flag.patch
0002-Enable-SSP-and-PIE-by-default.patch
+ 0003-Fix-sanitizer-build-against-latest-glibc.patch
disable-llvm-symbolizer-test.patch)
sha256sums=('da783db1f82d516791179fe103c71706046561f7972b18f0049242dee6712b51'
'SKIP'
@@ -28,6 +29,7 @@ sha256sums=('da783db1f82d516791179fe103c71706046561f7972b18f0049242dee6712b51'
'SKIP'
'ed4a1c3c73b31421caa0ba50d14cabc16de676a88f045d06b207bbb3006963ac'
'79f1a409700a83d983d7237a907aeddf342c28aa810b87b28ee27b8c5560644a'
+ '0afff7e5cf0f6df596517f63a9a9f085eab3b53f42a1eb14bbd83861c36c9fd7'
'6fff47ab5ede79d45fe64bb4903b7dfc27212a38e6cd5d01e60ebd24b7557359')
validpgpkeys=('11E521D646982372EB577A1F8F0871F202119294')
@@ -44,6 +46,10 @@ prepare() {
# Enable SSP and PIE by default
patch -Np1 -d tools/clang < ../0001-GCC-compatibility-Ignore-the-fno-plt-flag.patch
patch -Np1 -d tools/clang < ../0002-Enable-SSP-and-PIE-by-default.patch
+
+ # Fix sanitizer build against latest glibc
+ # https://reviews.llvm.org/D35246
+ patch -Np0 -d projects/compiler-rt < ../0003-Fix-sanitizer-build-against-latest-glibc.patch
}
build() {