summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorYurii Kolesnykov2019-04-06 12:04:26 +0200
committerYurii Kolesnykov2019-04-06 12:04:26 +0200
commit5d98f5d8142dae94ea98be16323c7bc88963522b (patch)
tree5449028c30eeabed9305feecac0e3afed3cef9e0
parent308416b0e5af2636ae42a1583ca2e5b740d6dbff (diff)
downloadaur-5d98f5d8142dae94ea98be16323c7bc88963522b.tar.gz
9.0.0_r313653.5182302a376
-rw-r--r--.SRCINFO54
-rw-r--r--PKGBUILD264
2 files changed, 111 insertions, 207 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b0845644b2e7..301525535fca 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,48 +1,42 @@
pkgbase = lib32-llvm-git
- pkgver = 8.0.0_r307160.40cd4b77e9a
+ pkgdesc = Collection of modular and reusable compiler and toolchain technologies (32-bit, git)
+ pkgver = 9.0.0_r313653.5182302a376
pkgrel = 1
url = https://llvm.org/
arch = x86_64
- license = custom:University of Illinois
+ license = custom:University of Illinois/NCSA Open Source License
makedepends = cmake
makedepends = gcc-multilib
makedepends = git
makedepends = lib32-libffi
makedepends = lib32-libxml2
- makedepends = python2
- options = staticlibs
- options = !strip
- source = llvm::git+https://github.com/llvm/llvm-project.git
- sha256sums = SKIP
-
-pkgname = lib32-llvm-git
- pkgdesc = The LLVM Compiler Infrastructure (32-bit)
- depends = lib32-llvm-libs-git=8.0.0_r307160.40cd4b77e9a-1
- depends = llvm-git
- provides = lib32-llvm-svn
- provides = lib32-llvm
- conflicts = lib32-llvm-svn
- conflicts = lib32-llvm
-
-pkgname = lib32-llvm-libs-git
- pkgdesc = The LLVM Compiler Infrastructure (runtime libraries, 32-bit)
+ makedepends = lib32-zlib
+ makedepends = ninja
+ makedepends = python
depends = lib32-gcc-libs
depends = lib32-libffi
depends = lib32-libxml2
depends = lib32-ncurses
depends = lib32-zlib
- provides = lib32-llvm-libs-svn
+ provides = lib32-clang
+ provides = lib32-clang-git
+ provides = lib32-clang-svn
provides = lib32-llvm-libs
- conflicts = lib32-llvm-libs-svn
+ provides = lib32-llvm-libs-git
+ 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-clang-git
- pkgdesc = C language family frontend for LLVM (32-bit)
- url = https://clang.llvm.org/
- depends = clang
- depends = lib32-llvm-git=8.0.0_r307160.40cd4b77e9a-1
- provides = lib32-clang-svn
- provides = lib32-clang
- conflicts = lib32-clang-svn
- conflicts = lib32-clang
+pkgname = lib32-llvm-git
diff --git a/PKGBUILD b/PKGBUILD
index ff7a9566ade6..16846bb20f9a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -9,54 +9,52 @@
# Contributor: Tomas Lindquist Olsen <tomas@famolsen.dk>
# Contributor: Tomas Wilhelmsson <tomas.wilhelmsson@gmail.com>
-pkgbase=lib32-llvm-git
-
-pkgname=(
- 'lib32-llvm-git'
- 'lib32-llvm-libs-git'
- 'lib32-clang-git'
-)
+pkgname=lib32-llvm-git
_pkgname='llvm'
-
-pkgver=8.0.0_r307160.40cd4b77e9a
+pkgdesc="Collection of modular and reusable compiler and toolchain technologies (32-bit, git)"
+pkgver=9.0.0_r313653.5182302a376
pkgrel=1
-
arch=('x86_64')
url='https://llvm.org/'
-license=('custom:University of Illinois')
-
+license=('custom:University of Illinois/NCSA Open Source License')
makedepends=(
- 'cmake'
- 'gcc-multilib'
- 'git'
- 'lib32-libffi'
- 'lib32-libxml2'
- 'python2'
-)
-
+ '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"
-)
-
+source=("${_pkgname}::git+https://github.com/llvm/llvm-project.git")
sha256sums=('SKIP')
-#
-# BEGIN INTERNAL VARIABLES AND FUNCTIONS
-#
-
-# Install the license file for a package
-# Arguments: NONE
-_install_license() {
- install -D -m 0644 "${srcdir}/${_pkgname}/LICENSE.TXT" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
-}
-
-#
-# END INTERNAL VARIABLES AND FUNCTIONS
-#
-
pkgver() {
cd "${srcdir}/${_pkgname}/${_pkgname}"
@@ -73,154 +71,66 @@ 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}/${_pkgname}/${_pkgname}/cmake/config-ix.cmake"
}
build() {
- cd "${srcdir}/build"
-
- export PKG_CONFIG_PATH='/usr/lib32/pkgconfig'
-
- # LLVM_BUILD_LLVM_DYLIB: Build the dynamic runtime libraries (e.g. libLLVM.so).
- # LLVM_LINK_LLVM_DYLIB: Link our own tools against the libLLVM dynamic library, too.
- # LLVM_BINUTILS_INCDIR: Set to binutils' plugin-api.h location in order to build LLVMgold.
- # LLVM_TARGET_ARCH: Theoretically, LLVM_BUILD_32_BITS should be used instead, which
- # would also make CMAKE_C{,XX}_FLAGS redundant, but that option
- # makes linking fail, because of incompatible architectures.
- cmake -G 'Unix Makefiles' \
- -DCMAKE_BUILD_TYPE:STRING=Release \
- -DCMAKE_INSTALL_PREFIX:PATH=/usr \
- -DLLVM_LIBDIR_SUFFIX:STRING=32 \
- -DCMAKE_C_FLAGS:STRING=-m32 \
- -DCMAKE_CXX_FLAGS:STRING=-m32 \
- -DLLVM_APPEND_VC_REV:BOOL=ON \
- -DLLVM_ENABLE_RTTI:BOOL=ON \
- -DLLVM_TARGET_ARCH:STRING=i386 \
- -DLLVM_ENABLE_FFI:BOOL=ON \
- -DFFI_INCLUDE_DIR:PATH="$(pkg-config --variable=includedir libffi)" \
- -DFFI_LIBRARY_DIR:PATH="$(pkg-config --variable=libdir libffi)" \
- -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \
- -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
- -DLLVM_BINUTILS_INCDIR:PATH=/usr/include \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- "../${_pkgname}/${_pkgname}"
-
- # Must run this target independently, or else docs/cmake_install.cmake will fail.
- #
- # NOTICE: We don't need the documentation for the multilib package, but running
- # this target is still required if ocaml-{ctypes,findlib} happen to be installed.
- # While it's always a good idea to build the packages in a clean chroot, let's be
- # a bit more user friendly (and reduce the number of complaints).
- [[ $(pacman -Qq ocaml-{ctypes,findlib} 2>/dev/null | wc -l) -eq 2 ]] && make ocaml_doc
-
- make
+ 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_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
}
-package_lib32-llvm-git() {
- pkgdesc='The LLVM Compiler Infrastructure (32-bit)'
- depends=(
- "lib32-llvm-libs-git=${pkgver}-${pkgrel}"
- 'llvm-git'
- )
- provides=('lib32-llvm-svn' 'lib32-llvm')
- conflicts=('lib32-llvm-svn' 'lib32-llvm')
-
- cd "${srcdir}/build"
-
- # Exclude the clang directory, since it'll be installed in a separate package
- sed -i \
- "s|^\([[:blank:]]*include(\"${srcdir}/build/tools/clang/cmake_install.cmake\")\)$|#\1|" \
- tools/cmake_install.cmake
-
- make DESTDIR="${pkgdir}" install
-
- # The runtime libraries get installed in llvm-libs-svn
- rm -f "${pkgdir}"/usr/lib32/lib{LLVM,LTO}{,-*}.so{,.*}
- mv -f "${pkgdir}"/usr/lib32/{BugpointPasses,LLVMgold}.so "${srcdir}/"
-
- # Clang libraries go to a separate package
- rm -rf "${srcdir}/clang"
- mv "${pkgdir}/usr/lib32/clang" "${srcdir}/clang"
-
- # Get rid of example Hello transformation
- rm -f "${pkgdir}"/usr/lib32/*LLVMHello.*
-
- # Remove all bits that we don't need in multilib
- # Note that `find` will always fail because of the non-empty directories
- echo 'NOTE: The errors "find: cannot delete ... Directory not empty"'
- echo ' that immediately follow are harmless and safe to ignore.'
- find "${pkgdir}/usr/" \
- -not -path "${pkgdir}/usr/bin/llvm-config" \
- -not -path "${pkgdir}/usr/include/llvm/Config/llvm-config.h" \
- -not -path "${pkgdir}/usr/lib32/*" \
- -delete || true
-
- # Fix names for multilib
- mv "${pkgdir}"/usr/bin/llvm-config{,32}
- mv "${pkgdir}"/usr/include/llvm/Config/llvm-config{,-32}.h
-
- _install_license
-}
+package() {
+ cd "${srcdir}/build"
-package_lib32-llvm-libs-git() {
- pkgdesc='The LLVM Compiler Infrastructure (runtime libraries, 32-bit)'
- depends=(
- 'lib32-gcc-libs'
- 'lib32-libffi'
- 'lib32-libxml2'
- 'lib32-ncurses'
- 'lib32-zlib'
- )
- provides=('lib32-llvm-libs-svn' 'lib32-llvm-libs')
- conflicts=('lib32-llvm-libs-svn' 'lib32-llvm-libs')
-
- cd "${srcdir}/build"
-
- make DESTDIR="${pkgdir}" install-{LLVM,LTO}
-
- # Moved from the llvm-svn package here
- mv "${srcdir}"/{BugpointPasses,LLVMgold}.so "${pkgdir}/usr/lib32/"
-
- # Ref: https://llvm.org/docs/GoldPlugin.html
- install -m755 -d "${pkgdir}/usr/lib32/bfd-plugins"
- ln -s {/usr/lib32,"${pkgdir}/usr/lib32/bfd-plugins"}/LLVMgold.so
-
- # Since r262066 lto.h is also installed, but we don't need it in the -libs package.
- rm -rf "${pkgdir}/usr/include"
-
- # Must have a symlink that corresponds to the output of `llvm-config --version`.
- # Without it, some builds, e.g. Mesa, might fail for "lack of shared libraries".
- _sover="$(echo ${pkgver} | cut -d . -f -1)svn"
- # libLLVM.so.3.8.0svn-r123456
- ln -s "libLLVM-${_sover}.so" "${pkgdir}/usr/lib32/libLLVM.so.$(echo ${pkgver} | tr _ -)"
- # libLLVM-3.8.0svn-r123456.so
- ln -s "libLLVM-${_sover}.so" "${pkgdir}/usr/lib32/libLLVM-$(echo ${pkgver} | tr _ -).so"
-
- _install_license
-}
+ DESTDIR="$pkgdir" ninja install
+
+ # Fix permissions of static libs
+ chmod -x "$pkgdir"/usr/lib32/*.a
+
+ 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"
-package_lib32-clang-git() {
- pkgdesc='C language family frontend for LLVM (32-bit)'
- url='https://clang.llvm.org/'
- depends=(
- 'clang'
- "lib32-llvm-git=${pkgver}-${pkgrel}"
- )
- provides=('lib32-clang-svn' 'lib32-clang')
- conflicts=('lib32-clang-svn' 'lib32-clang')
+ 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/"
- cd "${srcdir}/build/tools/clang"
+ # mv "$pkgdir/usr/lib32/llvm-config" "$pkgdir/usr/bin/llvm-config32"
- make DESTDIR="${pkgdir}" install
+ install -d "$pkgdir/usr/lib32"
- # Remove all bits that we don't need in multilib
- rm -rf "${pkgdir}"/usr/{bin,include,libexec,share}
+ # 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"
- _install_license
+ install -D -m 0644 "${srcdir}/${_pkgname}/${_pkgname}/LICENSE.TXT" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}