diff options
Diffstat (limited to 'abs/extra/llvm/PKGBUILD')
-rw-r--r-- | abs/extra/llvm/PKGBUILD | 207 |
1 files changed, 35 insertions, 172 deletions
diff --git a/abs/extra/llvm/PKGBUILD b/abs/extra/llvm/PKGBUILD index 64ba5b2..d6e630c 100644 --- a/abs/extra/llvm/PKGBUILD +++ b/abs/extra/llvm/PKGBUILD @@ -1,80 +1,45 @@ -# $Id$ # Maintainer: Evangelos Foutras <evangelos@foutrelis.com> # Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com> -# Contributor: Sebastian Nowicki <sebnow@gmail.com> -# Contributor: Devin Cofer <ranguvar{AT]archlinux[DOT}us> -# Contributor: Tobias Kieslich <tobias@justdreams.de> -# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org> -# Contributor: Tomas Lindquist Olsen <tomas@famolsen.dk> -# Contributor: Roberto Alsina <ralsina@kde.org> -# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> -pkgname=('llvm' 'llvm-libs' 'llvm-ocaml' 'lld' 'lldb' 'clang' 'clang-tools-extra') -pkgver=5.0.1 +pkgname=('llvm' 'llvm-libs' 'llvm-ocaml') +pkgver=7.0.1 pkgrel=2 -_ocaml_ver=4.06.0 +_ocaml_ver=4.07.1 arch=('x86_64') -url="http://llvm.org/" +url="https://llvm.org/" license=('custom:University of Illinois/NCSA Open Source License') -makedepends=('cmake' 'libffi' 'python2' "ocaml=$_ocaml_ver" 'python-sphinx' - 'ocaml-ctypes' 'ocaml-findlib' 'libedit' 'swig') -# Build 32-bit compiler-rt libraries on x86_64 (FS#41911) -makedepends_x86_64=('lib32-gcc-libs') +makedepends=('cmake' 'ninja' 'libffi' 'libedit' 'ncurses' 'libxml2' 'python-sphinx' + "ocaml=$_ocaml_ver" 'ocaml-ctypes' 'ocaml-findlib') options=('staticlibs') source=(https://releases.llvm.org/$pkgver/llvm-$pkgver.src.tar.xz{,.sig} - https://releases.llvm.org/$pkgver/cfe-$pkgver.src.tar.xz{,.sig} - https://releases.llvm.org/$pkgver/clang-tools-extra-$pkgver.src.tar.xz{,.sig} - https://releases.llvm.org/$pkgver/compiler-rt-$pkgver.src.tar.xz{,.sig} - https://releases.llvm.org/$pkgver/lld-$pkgver.src.tar.xz{,.sig} - https://releases.llvm.org/$pkgver/lldb-$pkgver.src.tar.xz{,.sig} - 0001-GCC-compatibility-Ignore-the-fno-plt-flag.patch - 0002-Enable-SSP-and-PIE-by-default.patch - disable-llvm-symbolizer-test.patch + rusty-discriminator-thingy.patch + add-discriminator-to-debuginfo-test.patch llvm-config.h) -sha256sums=('5fa7489fc0225b11821cab0362f5813a05f2bcf2533e8a4ea9c9c860168807b0' +sha256sums=('a38dfc4db47102ec79dcc2aa61e93722c5f6f06f0a961073bd84b78fb949419b' 'SKIP' - '135f6c9b0cd2da1aff2250e065946258eb699777888df39ca5a5b4fe5e23d0ff' - 'SKIP' - '9aada1f9d673226846c3399d13fab6bba4bfd38bcfe8def5ee7b0ec24f8cd225' - 'SKIP' - '4edd1417f457a9b3f0eb88082530490edf3cf6a7335cdce8ecbc5d3e16a895da' - 'SKIP' - 'd5b36c0005824f07ab093616bdff247f3da817cae2c51371e1d1473af717d895' - 'SKIP' - 'b7c1c9e67975ca219089a3a6a9c77c2d102cead2dc38264f2524aa3326da376a' - 'SKIP' - 'a1ba7fb859ac157c4b4342435cd656e29b1e1d9bddcb8ae0158a91c0a8ba6203' - '186f2d10b013395f2dd6e1fd3baf4961a2e40c403f115517c9b253682934f50f' - '6fff47ab5ede79d45fe64bb4903b7dfc27212a38e6cd5d01e60ebd24b7557359' + '4abaef845abb899628deb62a3f184fb8433555620648150dc346a74ef134fd68' + '1d2ea3a07e94f4c826706a452e93ed8a2301b5eed5715d22eab19a5ea3f3d0a7' '597dc5968c695bbdbb0eac9e8eb5117fcd2773bc91edf5ec103ecffffab8bc48') -validpgpkeys=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D' - '11E521D646982372EB577A1F8F0871F202119294') +validpgpkeys+=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg <hans@chromium.org> +validpgpkeys+=('474E22316ABF4785A88C6E8EA2C794A986419D8A') # Tom Stellard <tstellar@redhat.com> prepare() { cd "$srcdir/llvm-$pkgver.src" mkdir build - mv "$srcdir/cfe-$pkgver.src" tools/clang - mv "$srcdir/clang-tools-extra-$pkgver.src" tools/clang/tools/extra - mv "$srcdir/compiler-rt-$pkgver.src" projects/compiler-rt - mv "$srcdir/lld-$pkgver.src" tools/lld - mv "$srcdir/lldb-$pkgver.src" tools/lldb - - # Disable test that fails when compiled as PIE - # https://bugs.llvm.org/show_bug.cgi?id=31870 - patch -Np1 <../disable-llvm-symbolizer-test.patch - - # 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 rust 1.32 segfaults with LTO being enabled + # https://github.com/rust-lang/rust/issues/54614 + patch -Np1 -i ../rusty-discriminator-thingy.patch + patch -Np1 -i ../add-discriminator-to-debuginfo-test.patch } build() { cd "$srcdir/llvm-$pkgver.src/build" - cmake \ + cmake .. -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ + -DLLVM_HOST_TRIPLE=$CHOST \ -DLLVM_BUILD_LLVM_DYLIB=ON \ -DLLVM_LINK_LLVM_DYLIB=ON \ -DLLVM_INSTALL_UTILS=ON \ @@ -86,30 +51,28 @@ build() { -DLLVM_ENABLE_DOXYGEN=OFF \ -DSPHINX_WARNINGS_AS_ERRORS=OFF \ -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \ - -DLLVM_BINUTILS_INCDIR=/usr/include \ - .. - - make - make ocaml_doc - - # Disable automatic installation of components that go into subpackages - sed -i '/\(clang\|lld\|lldb\)\/cmake_install.cmake/d' tools/cmake_install.cmake - sed -i '/extra\/cmake_install.cmake/d' tools/clang/tools/cmake_install.cmake - sed -i '/compiler-rt\/cmake_install.cmake/d' projects/cmake_install.cmake + -DLLVM_BINUTILS_INCDIR=/usr/include + ninja all ocaml_doc } check() { cd "$srcdir/llvm-$pkgver.src/build" - make check-{llvm,clang,clang-tools,lld} + ninja check } package_llvm() { - pkgdesc="Low Level Virtual Machine" + pkgdesc="Collection of modular and reusable compiler and toolchain technologies" depends=('llvm-libs' 'perl') + optdepends=('python-setuptools: for using lit (LLVM Integrated Tester)') - cd "$srcdir/llvm-$pkgver.src" + cd "$srcdir/llvm-$pkgver.src/build" - make -C build DESTDIR="$pkgdir" install + DESTDIR="$pkgdir" ninja install + + # Include lit for running lit-based tests in other projects + pushd ../utils/lit + python3 setup.py install --root="$pkgdir" -O1 + popd # Remove documentation sources rm -r "$pkgdir"/usr/share/doc/$pkgname/html/{_sources,.buildinfo} @@ -130,12 +93,12 @@ package_llvm() { cp "$srcdir/llvm-config.h" "$pkgdir/usr/include/llvm/Config/llvm-config.h" fi - install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + install -Dm644 ../LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } package_llvm-libs() { - pkgdesc="Low Level Virtual Machine (runtime libraries)" - depends=('gcc-libs' 'zlib' 'libffi' 'libedit' 'ncurses') + pkgdesc="LLVM runtime libraries" + depends=('gcc-libs' 'zlib' 'libffi' 'libedit' 'ncurses' 'libxml2') install -d "$pkgdir/usr/lib" cp -P \ @@ -156,111 +119,11 @@ package_llvm-ocaml() { pkgdesc="OCaml bindings for LLVM" depends=('llvm' "ocaml=$_ocaml_ver" 'ocaml-ctypes') - cd "$srcdir/llvm-$pkgver.src" - install -d "$pkgdir"/{usr/lib,usr/share/doc/$pkgname} cp -a "$srcdir/ocaml.lib" "$pkgdir/usr/lib/ocaml" cp -a "$srcdir/ocaml.doc" "$pkgdir/usr/share/doc/$pkgname/html" - install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" -} - -package_lld() { - pkgdesc="Linker from the LLVM project" - url="http://lld.llvm.org/" - depends=('llvm-libs') - - cd "$srcdir/llvm-$pkgver.src" - - make -C build/tools/lld DESTDIR="$pkgdir" install - - # Remove documentation sources - rm -r "$pkgdir"/usr/share/doc/$pkgname/html/{_sources,.buildinfo} - - install -Dm644 tools/$pkgname/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" -} - -package_lldb() { - pkgdesc="Next generation, high-performance debugger" - url="http://lldb.llvm.org/" - depends=('llvm-libs' 'libxml2' 'python2' 'python2-six') - - cd "$srcdir/llvm-$pkgver.src" - - make -C build/tools/lldb DESTDIR="$pkgdir" install - - # https://bugs.archlinux.org/task/50759 - sed -i "/import_module('_lldb')/s/_lldb/lldb.&/" \ - "$pkgdir/usr/lib/python2.7/site-packages/lldb/__init__.py" - - # Remove bundled six library - rm "$pkgdir/usr/lib/python2.7/site-packages/six.py" - - # Compile Python scripts - python2 -m compileall "$pkgdir/usr/lib/python2.7/site-packages/lldb" - python2 -O -m compileall "$pkgdir/usr/lib/python2.7/site-packages/lldb" - - install -Dm644 tools/$pkgname/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" -} - -package_clang() { - pkgdesc="C language family frontend for LLVM" - url="http://clang.llvm.org/" - depends=('llvm-libs' 'gcc' 'libxml2') - optdepends=('openmp: OpenMP support in clang with -fopenmp' - 'python2: for scan-view and git-clang-format') - provides=("clang-analyzer=$pkgver") - conflicts=('clang-analyzer') - replaces=('clang-analyzer') - - cd "$srcdir/llvm-$pkgver.src" - - make -C build/tools/clang DESTDIR="$pkgdir" install - make -C build/projects/compiler-rt DESTDIR="$pkgdir" install - - # Remove documentation sources - rm -r "$pkgdir"/usr/share/doc/$pkgname/html/{_sources,.buildinfo} - - # Move analyzer scripts out of /usr/libexec - mv "$pkgdir"/usr/libexec/{ccc,c++}-analyzer "$pkgdir/usr/lib/clang/" - rmdir "$pkgdir/usr/libexec" - sed -i 's|libexec|lib/clang|' "$pkgdir/usr/bin/scan-build" - - # Install Python bindings - install -d "$pkgdir/usr/lib/python2.7/site-packages" - cp -a tools/clang/bindings/python/clang "$pkgdir/usr/lib/python2.7/site-packages/" - - # Use Python 2 - sed -i 's|/usr/bin/env python|&2|' \ - "$pkgdir/usr/bin/scan-view" \ - "$pkgdir/usr/bin/git-clang-format" \ - "$pkgdir/usr/share/$pkgname/clang-format-diff.py" - - # Compile Python scripts - python2 -m compileall "$pkgdir" - python2 -O -m compileall "$pkgdir" - - install -Dm644 tools/$pkgname/LICENSE.TXT \ - "$pkgdir/usr/share/licenses/$pkgname/LICENSE" -} - -package_clang-tools-extra() { - pkgdesc="Extra tools built using clang's tooling APIs" - url="http://clang.llvm.org/" - depends=('clang') - - cd "$srcdir/llvm-$pkgver.src" - - make -C build/tools/clang/tools/extra DESTDIR="$pkgdir" install - - # Remove documentation sources - rm -r "$pkgdir"/usr/share/doc/clang-tools/html/{_sources,.buildinfo} - - # Use Python 2 - sed -i 's|/usr/bin/env python|&2|' \ - "$pkgdir"/usr/share/clang/{clang-tidy-diff,run-clang-tidy,run-find-all-symbols}.py - - install -Dm644 tools/clang/tools/extra/LICENSE.TXT \ + install -Dm644 "$srcdir/llvm-$pkgver.src/LICENSE.TXT" \ "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } |