diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 120 |
1 files changed, 71 insertions, 49 deletions
@@ -16,19 +16,22 @@ pkgbase=llvm-minimal-git pkgname=('llvm-minimal-git' 'llvm-libs-minimal-git') -pkgver=9.0.0_r316414.c2d9cfd9250 +pkgver=9.0.0_r317352.21efe2afed7 pkgrel=1 arch=('x86_64') url="https://llvm.org/" license=('custom:University of Illinois/NCSA Open Source License') makedepends=('git' 'cmake' 'ninja' 'libffi' 'libedit' 'ncurses' 'libxml2' - 'python-sphinx' 'python-recommonmark') + 'python-sphinx' 'python-recommonmark' 'swig') source=("llvm-project::git+https://github.com/llvm/llvm-project.git" - 'llvm-config.h') + 'llvm-config.h' + 'enable-SSP-and-PIE-by-default.patch') md5sums=('SKIP' - '295c343dcd457dc534662f011d7cff1a') + '295c343dcd457dc534662f011d7cff1a' + '5e9b3822e6b7de45f0ecb0ad71b3f7d3') sha512sums=('SKIP' - '75e743dea28b280943b3cc7f8bbb871b57d110a7f2b9da2e6845c1c36bf170dd883fca54e463f5f49e0c3effe07fbd0db0f8cf5a12a2469d3f792af21a73fcdd') + '75e743dea28b280943b3cc7f8bbb871b57d110a7f2b9da2e6845c1c36bf170dd883fca54e463f5f49e0c3effe07fbd0db0f8cf5a12a2469d3f792af21a73fcdd' + '2fdbae0b62d33411beaf191920ff280f83fa80fd505a71077671027f27ed8c61c5867de3e6ee6f26734c7605037e86796404212182f8ffa71f4af6ed2c316a40') pkgver() { cd llvm-project/llvm @@ -51,8 +54,8 @@ prepare() { mkdir _build cd llvm-project - # remove code parts not needed to build llvm itself - rm -rf clang clang-tools-extra compiler-rt debuginfo-tests libclc libcxx libcxxabi libunwind lld lldb llgo openmp parallel-libs polly pstl + # remove code parts not needed for build + rm -rf debuginfo-tests libclc libcxx libcxxabi libunwind lld lldb llgo openmp parallel-libs polly pstl } build() { @@ -60,25 +63,31 @@ build() { cd _build cmake "$srcdir"/llvm-project/llvm -G Ninja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DLLVM_HOST_TRIPLE=$CHOST \ - -DLLVM_TARGETS_TO_BUILD="AMDGPU;X86" \ - -DLLVM_BUILD_LLVM_DYLIB=ON \ - -DLLVM_LINK_LLVM_DYLIB=ON \ - -DLLVM_INSTALL_UTILS=ON \ - -DLLVM_ENABLE_RTTI=ON \ - -DLLVM_ENABLE_FFI=ON \ - -DLLVM_BUILD_TESTS=ON \ - -DLLVM_BUILD_DOCS=ON \ - -DLLVM_ENABLE_SPHINX=ON \ - -DLLVM_ENABLE_DOXYGEN=OFF \ - -DSPHINX_WARNINGS_AS_ERRORS=OFF \ - -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \ - -DLLVM_BINUTILS_INCDIR=/usr/include \ - -DLLVM_VERSION_SUFFIX="" \ - -DLLVM_APPEND_VC_REV=ON \ - -DLLVM_ENABLE_BINDINGS=OFF + -D CMAKE_C_FLAGS="${CFLAGS}" \ + -D CMAKE_CXX_FLAGS="${CXXFLAGS}" \ + -D CMAKE_BUILD_TYPE=Release \ + -D CMAKE_INSTALL_PREFIX=/usr \ + -D CMAKE_POLICY_DEFAULT_CMP0075=NEW \ + -D FFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \ + -D LLVM_HOST_TRIPLE=$CHOST \ + -D LLVM_TARGETS_TO_BUILD="AMDGPU;X86" \ + -D PYTHON_EXECUTABLE=/usr/bin/python \ + -D LLVM_BUILD_LLVM_DYLIB=ON \ + -D LLVM_LINK_LLVM_DYLIB=ON \ + -D LLVM_INSTALL_UTILS=ON \ + -D LLVM_ENABLE_RTTI=ON \ + -D LLVM_ENABLE_FFI=ON \ + -D LLVM_BUILD_TESTS=ON \ + -D LLVM_BUILD_DOCS=ON \ + -D LLVM_ENABLE_SPHINX=ON \ + -D SPHINX_WARNINGS_AS_ERRORS=OFF \ + -D LLVM_ENABLE_DOXYGEN=OFF \ + -D LLVM_BINUTILS_INCDIR=/usr/include \ + -D LLVM_VERSION_SUFFIX="" \ + -D LLVM_APPEND_VC_REV=ON \ + -D LLVM_ENABLE_BINDINGS=OFF \ + -D LLVM_ENABLE_PROJECTS="compiler-rt;clang-tools-extra;clang" \ + if [[ ! $NINJAFLAGS ]]; then ninja @@ -89,44 +98,57 @@ build() { check() { cd _build - ninja check + if [[ ! $NINJAFLAGS ]]; then + ninja check check-clang check-clang-tools + else + ninja "$NINJAFLAGS" check check-clang check-clang-tools + fi } package_llvm-minimal-git() { pkgdesc="Collection of modular and reusable compiler and toolchain technologies" depends=(llvm-libs-minimal-git=$pkgver-$pkgrel 'perl') optdepends=('python-setuptools: for using lit (LLVM Integrated Tester)') - conflicts=('llvm') - provides=(llvm=$pkgver-$pkgrel llvm-git=$pkgver-$pkgrel lone_wolf-llvm-git) + conflicts=('llvm' compiler-rt-minimal-git clang-minimal-git) + provides=(llvm=$pkgver-$pkgrel lone_wolf-llvm-git) replaces=(lone_wolf-llvm-git) - cd _build + cd _build + DESTDIR="$pkgdir" ninja install - DESTDIR="$pkgdir" ninja install + # Include lit for running lit-based tests in other projects + pushd "$srcdir"/llvm-project/llvm/utils/lit + python3 setup.py install --root="$pkgdir" -O1 + popd - # Include lit for running lit-based tests in other projects - pushd "$srcdir"/llvm-project/llvm/utils/lit - python3 setup.py install --root="$pkgdir" -O1 - popd + # Remove documentation sources + rm -r "$pkgdir"/usr/share/doc/llvm/html/{_sources,.buildinfo} - # Remove documentation sources - rm -r "$pkgdir"/usr/share/doc/llvm/html/{_sources,.buildinfo} + + # The runtime libraries go into a separate package + mv -f "$pkgdir"/usr/lib/lib{LLVM-*.so,LTO.so.*} "$srcdir" + + # Remove files which conflict with llvm-libs + rm "$pkgdir"/usr/lib/{LLVMgold,lib{LLVM,LTO}}.so + + # 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 - # The runtime libraries go into a separate package - mv -f "$pkgdir"/usr/lib/lib{LLVM-*.so,LTO.so.*} "$srcdir" + if [[ $CARCH == x86_64 ]]; then + # Needed for multilib (https://bugs.archlinux.org/task/29951) + # Header stub is taken from Fedora + mv "$pkgdir"/usr/include/llvm/Config/llvm-config{,-64}.h + cp "$srcdir"/llvm-config.h "$pkgdir"/usr/include/llvm/Config/llvm-config.h + fi - # Remove files which conflict with llvm-libs - rm "$pkgdir"/usr/lib/{LLVMgold,lib{LLVM,LTO}}.so + install -Dm644 "$srcdir"/llvm-project/llvm/LICENSE.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE + install -Dm644 "$srcdir"/llvm-project/compiler-rt/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/LICENSE + install -Dm644 "$srcdir"/llvm-project/clang-tools-extra/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/clang-tools-extra-LICENSE + install -Dm644 "$srcdir"/llvm-project/clang/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/LICENSE - if [[ $CARCH == x86_64 ]]; then - # Needed for multilib (https://bugs.archlinux.org/task/29951) - # Header stub is taken from Fedora - mv "$pkgdir"/usr/include/llvm/Config/llvm-config{,-64}.h - cp "$srcdir"/llvm-config.h "$pkgdir"/usr/include/llvm/Config/llvm-config.h - fi - - install -Dm644 "$srcdir"/llvm-project/llvm/LICENSE.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE } package_llvm-libs-minimal-git() { |