diff options
author | kwantam | 2018-04-02 18:33:39 -0700 |
---|---|---|
committer | kwantam | 2018-04-02 19:54:34 -0700 |
commit | d90728868cf204596e2b57f1b747ac7732fc442d (patch) | |
tree | 1f9cc84d921980099b5ebe75bb5e008c08f72f90 | |
parent | 9b28e2663d277557df482bd2346bee500001f79a (diff) | |
download | aur-d90728868cf204596e2b57f1b747ac7732fc442d.tar.gz |
unrestrict ocaml version; fix sanitizer build against recent glibc
-rw-r--r-- | D35246-Fix-sanitizer-build-against-latest-glibc.patch | 63 | ||||
-rw-r--r-- | PKGBUILD | 10 |
2 files changed, 69 insertions, 4 deletions
diff --git a/D35246-Fix-sanitizer-build-against-latest-glibc.patch b/D35246-Fix-sanitizer-build-against-latest-glibc.patch new file mode 100644 index 000000000000..00a490f71c63 --- /dev/null +++ b/D35246-Fix-sanitizer-build-against-latest-glibc.patch @@ -0,0 +1,63 @@ +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 +@@ -631,8 +631,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 +@@ -287,7 +287,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 +@@ -288,7 +288,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]; @@ -13,12 +13,11 @@ pkgname=('llvm38' 'llvm-libs38' 'llvm-ocaml38' 'lldb38' 'clang38' 'clang-tools-extra38') pkgver=3.8.1 pkgrel=4 -#_ocaml_ver=4.02.3 -_ocaml_ver=4.05.0-1 +#_ocaml_ver=4.06.0-2 arch=('i686' 'x86_64') url="http://llvm.org/" license=('custom:University of Illinois/NCSA Open Source License') -makedepends=('cmake' 'libffi' 'python2' "ocaml=$_ocaml_ver" 'python-sphinx' +makedepends=('cmake' 'libffi' 'python2' "ocaml" 'python-sphinx' 'ocaml-ctypes' 'ocaml-findlib' 'libedit' 'swig') # Use gcc-multilib to build 32-bit compiler-rt libraries on x86_64 (FS#41911) makedepends_x86_64=('gcc-multilib') @@ -30,6 +29,7 @@ source=(http://releases.llvm.org/$pkgver/llvm-$pkgver.src.tar.xz{,.sig} http://releases.llvm.org/$pkgver/lldb-$pkgver.src.tar.xz{,.sig} D17567-PR23529-Sema-part-of-attrbute-abi_tag-support.patch D18035-PR23529-Mangler-part-of-attrbute-abi_tag-support.patch + D35246-Fix-sanitizer-build-against-latest-glibc.patch llvm-Config-llvm-config.h) sha256sums=('6e82ce4adb54ff3afc18053d6981b6aed1406751b8742582ed50f04b5ab475f9' 'SKIP' @@ -43,6 +43,7 @@ sha256sums=('6e82ce4adb54ff3afc18053d6981b6aed1406751b8742582ed50f04b5ab475f9' 'SKIP' '406754764e83d58bc3b859ab4b7893abd48c760278c4619cf4341ef9b9b75c85' 'd71f8677882c86accddb8a5b720f298a4d7a2ad3bce6091951a46396b8f14da1' + '0515d1adab68f62de5528ae0c4e4e25811c472d6b4f9bd102a9811cae7ef977e' '597dc5968c695bbdbb0eac9e8eb5117fcd2773bc91edf5ec103ecffffab8bc48') validpgpkeys=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D' '11E521D646982372EB577A1F8F0871F202119294') @@ -63,6 +64,7 @@ prepare() { # https://llvm.org/bugs/show_bug.cgi?id=23529 patch -d tools/clang -Np2 <../D17567-PR23529-Sema-part-of-attrbute-abi_tag-support.patch patch -d tools/clang -Np0 <../D18035-PR23529-Mangler-part-of-attrbute-abi_tag-support.patch + patch -d projects/compiler-rt -Np0 <../D35246-Fix-sanitizer-build-against-latest-glibc.patch # fix some compile errors sed -i 's/#include <cassert>/#include <cassert>\n#include <functional>/' tools/lldb/include/lldb/Utility/TaskPool.h @@ -166,7 +168,7 @@ package_llvm-libs38() { package_llvm-ocaml38() { _pkgname=llvm-ocaml pkgdesc="OCaml bindings for LLVM" - depends=("llvm38=$pkgver-$pkgrel" "ocaml=$_ocaml_ver" 'ocaml-ctypes') + depends=("llvm38=$pkgver-$pkgrel" "ocaml" 'ocaml-ctypes') provides=("llvm-ocaml=$pkgver-$pkgrel") conflicts=('llvm-ocaml') replaces=('llvm-ocaml') |