summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorLW-archlinux2019-05-03 15:50:39 +0200
committerLW-archlinux2019-05-03 15:50:39 +0200
commit78277a4c2e64259d67e74d6bde6aeb52a2032cee (patch)
treeb4f29164768fe12f74290f3243cdd2263a4377b7
parentd2aba7d38b57ec3436f8a612b22811ad6ee09d6b (diff)
downloadaur-78277a4c2e64259d67e74d6bde6aeb52a2032cee.tar.gz
many changes to get package working with lib32-mesa-git and closer to llvm-git
-rw-r--r--.SRCINFO41
-rw-r--r--PKGBUILD202
2 files changed, 126 insertions, 117 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 94700c35c0d8..3f16294df6b4 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,42 +1,41 @@
pkgbase = lib32-llvm-git
pkgdesc = Collection of modular and reusable compiler and toolchain technologies (32-bit, git)
- pkgver = 9.0.0_r313674.af7314b3179
+ pkgver = 9.0.0_r315633.d3cfaae2430
pkgrel = 1
url = https://llvm.org/
arch = x86_64
license = custom:University of Illinois/NCSA Open Source License
makedepends = cmake
- makedepends = gcc-multilib
+ makedepends = lib32-gcc-libs
makedepends = git
makedepends = lib32-libffi
makedepends = lib32-libxml2
makedepends = lib32-zlib
makedepends = ninja
makedepends = python
+ source = llvm-project::git+https://github.com/llvm/llvm-project.git
+ sha512sums = SKIP
+
+pkgname = lib32-llvm-git
+ depends = lib32-llvm-libs-git
+ depends = llvm-git
+ provides = llvm=9.0.0_r315633.d3cfaae2430-1
+ provides = clang=9.0.0_r315633.d3cfaae2430-1
+ provides = lib32-clang-git
+ provides = lib32-clang-svn
+ provides = lib32-llvm-svn
+ conflicts = lib32-llvm
+ conflicts = lib32-clang
+ conflicts = lib32-llvm-svn
+ conflicts = lib32-clang-svn
+
+pkgname = lib32-llvm-libs-git
depends = lib32-gcc-libs
depends = lib32-libffi
depends = lib32-libxml2
depends = lib32-ncurses
depends = lib32-zlib
- provides = lib32-clang
- provides = lib32-clang-git
- provides = lib32-clang-svn
- provides = lib32-llvm-libs
- provides = lib32-llvm-libs-git
+ provides = lib32-llvm-libs=9.0.0_r315633.d3cfaae2430-1
provides = lib32-llvm-libs-svn
- provides = lib32-llvm-svn
- conflicts = lib32-clang
- conflicts = lib32-clang-git
- conflicts = lib32-clang-svn
- conflicts = lib32-llvm
conflicts = lib32-llvm-libs
- conflicts = lib32-llvm-libs-git
- conflicts = lib32-llvm-libs-svn
- conflicts = lib32-llvm-svn
- options = staticlibs
- options = !strip
- source = llvm::git+https://github.com/llvm/llvm-project.git
- sha256sums = SKIP
-
-pkgname = lib32-llvm-git
diff --git a/PKGBUILD b/PKGBUILD
index 51f57fb32767..98b8d405ef21 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -9,54 +9,21 @@
# Contributor: Tomas Lindquist Olsen <tomas@famolsen.dk>
# Contributor: Tomas Wilhelmsson <tomas.wilhelmsson@gmail.com>
-pkgname=lib32-llvm-git
+pkgbase=lib32-llvm-git
+pkgname=(lib32-llvm-git lib32-llvm-libs-git)
_pkgname='llvm'
pkgdesc="Collection of modular and reusable compiler and toolchain technologies (32-bit, git)"
-pkgver=9.0.0_r313674.af7314b3179
+pkgver=9.0.0_r315633.d3cfaae2430
pkgrel=1
arch=('x86_64')
url='https://llvm.org/'
license=('custom:University of Illinois/NCSA Open Source License')
-makedepends=(
- 'cmake'
- 'gcc-multilib'
- 'git'
- 'lib32-libffi'
- 'lib32-libxml2'
- 'lib32-zlib'
- 'ninja'
- 'python')
-depends=(
- 'lib32-gcc-libs'
- 'lib32-libffi'
- 'lib32-libxml2'
- 'lib32-ncurses'
- 'lib32-zlib')
-provides=(
- 'lib32-clang'
- 'lib32-clang-git'
- 'lib32-clang-svn'
- 'lib32-llvm-libs'
- 'lib32-llvm-libs-git'
- 'lib32-llvm-libs-svn'
- 'lib32-llvm-svn')
-conflicts=(
- 'lib32-clang'
- 'lib32-clang-git'
- 'lib32-clang-svn'
- 'lib32-llvm'
- 'lib32-llvm-libs'
- 'lib32-llvm-libs-git'
- 'lib32-llvm-libs-svn'
- 'lib32-llvm-svn')
-# this is always the latest svn so debug info can be useful
-options=('staticlibs' '!strip')
-
-source=("${_pkgname}::git+https://github.com/llvm/llvm-project.git")
-sha256sums=('SKIP')
+makedepends=('cmake' 'lib32-gcc-libs' 'git' 'lib32-libffi' 'lib32-libxml2' 'lib32-zlib' 'ninja' 'python')
+source=("llvm-project::git+https://github.com/llvm/llvm-project.git")
+sha512sums=('SKIP')
pkgver() {
- cd "${srcdir}/${_pkgname}/${_pkgname}"
+ cd llvm-project/llvm
# This will almost match the output of `llvm-config --version` when the
# LLVM_APPEND_VC_REV cmake flag is turned on. The only difference is
@@ -70,73 +37,116 @@ pkgver() {
}
prepare() {
- mkdir -p "${srcdir}/build"
+ # Somehow CMake finds the 64-bit library in /lib first,
+ # so let's preseed CMAKE_LIBRARY_PATH with /lib32.
+ sed -i \
+ '/^[[:blank:]]*find_library(FFI_LIBRARY_PATH/i\
+ list(INSERT CMAKE_LIBRARY_PATH 0 /usr/lib32)' \
+ "$srcdir"/llvm-project/llvm/cmake/config-ix.cmake
}
build() {
- export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
-
- cd "${srcdir}/build"
- cmake -G Ninja \
- -DLLVM_ENABLE_PROJECTS='clang' \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DPYTHON_EXECUTABLE=/usr/bin/python \
- -DLLVM_LIBDIR_SUFFIX=32 \
- -DCMAKE_C_FLAGS:STRING=-m32 \
- -DCMAKE_CXX_FLAGS:STRING=-m32 \
- -DLLVM_TARGET_ARCH:STRING=i686 \
- -DLLVM_CONFIG="/usr/bin/llvm-config32" \
- -DLLVM_HOST_TRIPLE=$CHOST \
- -DLLVM_DEFAULT_TARGET_TRIPLE="i686-pc-linux-gnu" \
- -DLLVM_BUILD_LLVM_DYLIB=ON \
- -DLLVM_LINK_LLVM_DYLIB=ON \
- -DLLVM_ENABLE_BINDINGS=OFF \
- -DLLVM_ENABLE_RTTI=ON \
- -DLLVM_ENABLE_FFI=ON \
- -DLLVM_BUILD_TESTS=ON \
- -DLLVM_BUILD_DOCS=OFF \
- -DLLVM_ENABLE_SPHINX=OFF \
- -DLLVM_ENABLE_DOXYGEN=OFF \
- -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \
- -DLLVM_BINUTILS_INCDIR=/usr/include \
- "../${_pkgname}/${_pkgname}"
-
- ninja all
+ if [ -d _build ]; then
+ rm -rf _build
+ fi
+ mkdir _build
+ cd _build
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cmake "$srcdir"/llvm-project/llvm -G Ninja \
+ -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLLVM_LIBDIR_SUFFIX=32 \
+ -DCMAKE_C_FLAGS:STRING=-m32 \
+ -DCMAKE_CXX_FLAGS:STRING=-m32 \
+ -DLLVM_TARGET_ARCH:STRING=i686 \
+ -DLLVM_HOST_TRIPLE=$CHOST \
+ -DLLVM_DEFAULT_TARGET_TRIPLE="i686-pc-linux-gnu" \
+ -DLLVM_BUILD_LLVM_DYLIB=ON \
+ -DLLVM_LINK_LLVM_DYLIB=ON \
+ -DLLVM_ENABLE_BINDINGS=OFF \
+ -DLLVM_ENABLE_RTTI=ON \
+ -DLLVM_ENABLE_FFI=ON \
+ -DLLVM_BUILD_TESTS=ON \
+ -DLLVM_BUILD_DOCS=OFF \
+ -DLLVM_ENABLE_SPHINX=OFF \
+ -DLLVM_ENABLE_DOXYGEN=OFF \
+ -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \
+ -DLLVM_BINUTILS_INCDIR=/usr/include \
+ -DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
+ -DLLVM_APPEND_VC_REV=ON
+
+ if [[ ! $NINJAFLAGS ]]; then
+ ninja all
+ else
+ ninja "$NINJAFLAGS" all
+ fi
}
check() {
- cd "${srcdir}/build"
- ninja check
+ cd _build
+ ninja check-llvm
+ ninja check-clang
}
-package() {
- cd "${srcdir}/build"
+package_lib32-llvm-git() {
+depends=('lib32-llvm-libs-git' 'llvm-git')
+provides=(llvm=$pkgver-$pkgrel clang=$pkgver-$pkgrel 'lib32-clang-git'
+ 'lib32-clang-svn' 'lib32-llvm-svn')
+conflicts=('lib32-llvm' 'lib32-clang'
+ 'lib32-llvm-svn' 'lib32-clang-svn')
- DESTDIR="$pkgdir" ninja install
+ cd _build
- # Fix permissions of static libs
- chmod -x "$pkgdir"/usr/lib32/*.a
+ DESTDIR="$pkgdir" ninja install
- mv "$pkgdir/usr/bin/llvm-config" "$pkgdir/usr/lib32/llvm-config"
- mv "$pkgdir/usr/include/llvm/Config/llvm-config.h" \
- "$pkgdir/usr/lib32/llvm-config-32.h"
+ # The runtime library goes into lib32-llvm-libs
+ mv "$pkgdir"/usr/lib32/lib{LLVM,LTO}*.so* "$srcdir"
+ mv -f "$pkgdir"/usr/lib32/LLVMgold.so "$srcdir"
- rm -rf "$pkgdir"/usr/{bin,include,libexec,share/{doc,man,llvm,opt-viewer,scan-build,scan-view,clang}}
-
- # Needed for multilib (https://bugs.archlinux.org/task/29951)
- # Header stub is taken from Fedora
- install -d "$pkgdir/usr/include/llvm/Config"
- mv "$pkgdir/usr/lib32/llvm-config-32.h" "$pkgdir/usr/include/llvm/Config/"
-
- # mv "$pkgdir/usr/lib32/llvm-config" "$pkgdir/usr/bin/llvm-config32"
-
- install -d "$pkgdir/usr/lib32"
+
+ mv "$pkgdir"/usr/bin/llvm-config "$pkgdir"/usr/lib32/llvm-config
+ mv "$pkgdir"/usr/include/llvm/Config/llvm-config.h \
+ "$pkgdir"/usr/lib32/llvm-config-32.h
- # Symlink LLVMgold.so from /usr/lib/bfd-plugins
- # https://bugs.archlinux.org/task/28479
- install -d "$pkgdir/usr/lib32/bfd-plugins"
- ln -s ../LLVMgold.so "$pkgdir/usr/lib32/bfd-plugins/LLVMgold.so"
+ rm -rf "$pkgdir"/usr/{bin,include,libexec,share/{doc,man,llvm,opt-viewer,scan-build,scan-view,clang}}
+
+ # Needed for multilib (https://bugs.archlinux.org/task/29951)
+ # Header stub is taken from Fedora
+ install -d "$pkgdir"/usr/include/llvm/Config
+ mv "$pkgdir"/usr/lib32/llvm-config-32.h "$pkgdir"/usr/include/llvm/Config/
+
+ install -d "$pkgdir"/usr/bin
+ mv "$pkgdir"/usr/lib32/llvm-config "$pkgdir"/usr/bin/llvm-config32
+
+ cd "$srcdir"/llvm-project/
+ install -D -m 0644 llvm/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 clang/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/clang-LICENSE
+ install -Dm644 clang-tools-extra/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/clang-tools-extra-LICENSE
+ install -Dm644 compiler-rt/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/compiler-rt-LICENSE
+}
- install -D -m 0644 "${srcdir}/${_pkgname}/${_pkgname}/LICENSE.TXT" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
-} \ No newline at end of file
+package_lib32-llvm-libs-git() {
+ depends=('lib32-gcc-libs' 'lib32-libffi' 'lib32-libxml2' 'lib32-ncurses' 'lib32-zlib')
+provides=(lib32-llvm-libs=$pkgver-$pkgrel 'lib32-llvm-libs-svn')
+conflicts=('lib32-llvm-libs')
+
+ install -d "$pkgdir/usr/lib32"
+
+ cp -P \
+ "$srcdir"/lib{LLVM,LTO}*.so* \
+ "$srcdir"/LLVMgold.so \
+ "$pkgdir/usr/lib32/"
+
+ # Symlink LLVMgold.so from /usr/lib/bfd-plugins
+ # https://bugs.archlinux.org/task/28479
+ install -d "$pkgdir/usr/lib32/bfd-plugins"
+ ln -s ../LLVMgold.so "$pkgdir/usr/lib32/bfd-plugins/LLVMgold.so"
+
+ cd "$srcdir"/llvm-project/
+ install -D -m 0644 llvm/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 clang/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/clang-LICENSE
+ install -Dm644 clang-tools-extra/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/clang-tools-extra-LICENSE
+ install -Dm644 compiler-rt/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/compiler-rt-LICENSE
+ }