summaryrefslogtreecommitdiffstats
path: root/abs/extra/llvm/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'abs/extra/llvm/PKGBUILD')
-rw-r--r--abs/extra/llvm/PKGBUILD207
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"
}