packages/rocm-llvm/PKGBUILD

98 lines
3.7 KiB
Bash

# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Torsten Keßler <tpkessler at archlinux dot org>
# Contributor: acxz <akashpatel2008 at yahoo dot com>
pkgname=rocm-llvm
pkgdesc='Radeon Open Compute - LLVM toolchain (llvm, clang, lld)'
pkgver=6.0.2
pkgrel=1
arch=(x86_64 powerpc64le powerpc64 riscv64)
url='https://rocm.docs.amd.com/en/latest/reference/rocmcc/rocmcc.html'
license=('Apache-2.0 WITH LLVM-exception')
makedepends=('cmake' 'python' 'ninja')
_git='https://github.com/ROCm/llvm-project'
source=("${pkgname}-${pkgver}.tar.gz::$_git/archive/rocm-$pkgver.tar.gz"
"${pkgname}-fix-segfault.patch"
"llvm-ppc64-elfv2.patch"
"clang-ppc64-dynamic-linker-path.patch"
"clang-ppc64-elfv2.patch"
"rocm-llvm-riscv-uleb128.patch")
sha256sums=('7d35acc84de1adee65406f92a369a30364703f84279241c444cd93a48c7eeb76'
'4d3f198c5422e9987f442c20963223c39b1548ffa00b6c9db81af5070278ce03'
'8c4e8db0b80b1a86f8cff9aa678b70458503bc8926ecc41e0df953ea14ab3559'
'654b9eafcd20125319b3c319ab6674a940ddef400821c80813c16011ef8b6086'
'f80157e9ef2bfea9dcb8560e17b76b7e4e9de72bab0c83b1802734ff83293411'
'a4dc17071cfc8248f33c74dca14df715710b375e8e1aefc46c4e505334f4bf9b')
options=(!debug staticlibs !lto)
_dirname="$(basename "$_git")-$(basename "${source[0]}" .tar.gz)"
prepare() {
cd "$_dirname"
patch -Np1 -i ../"${pkgname}-fix-segfault.patch"
patch -Np1 -i ../"${pkgname}-riscv-uleb128.patch"
cd ${srcdir}/${_dirname}/llvm
patch -Np2 -i ${srcdir}/llvm-ppc64-elfv2.patch
cd ${srcdir}/${_dirname}/clang
patch -Np1 -i ${srcdir}/clang-ppc64-elfv2.patch
patch -Np2 -i ${srcdir}/clang-ppc64-dynamic-linker-path.patch
}
build() {
case "${CARCH}" in
powerpc*) _target=PowerPC ;;
riscv64) _target=RISCV ;;
x86_64) _target=X86 ;;
esac
local cmake_args=(
-G Ninja
-B build
-S "$_dirname/llvm"
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX='/opt/rocm/lib/llvm'
-DLLVM_HOST_TRIPLE=$CHOST
-DLLVM_ENABLE_PROJECTS='llvm;clang;lld;compiler-rt;clang-tools-extra'
-DCLANG_ENABLE_AMDCLANG=ON
-DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi;libunwind'
-DLIBCXX_ENABLE_STATIC=ON
-DLIBCXXABI_ENABLE_STATIC=ON
-DLLVM_TARGETS_TO_BUILD="AMDGPU;NVPTX;${_target}"
-DCLANG_DEFAULT_LINKER=lld
-DLLVM_INSTALL_UTILS=ON
-DLLVM_ENABLE_BINDINGS=OFF
-DLLVM_LINK_LLVM_DYLIB=OFF
-DLLVM_BUILD_LLVM_DYLIB=OFF
-DLLVM_ENABLE_ASSERTIONS=ON
-DOCAMLFIND=NO
-DLLVM_ENABLE_OCAMLDOC=OFF
-DLLVM_INCLUDE_BENCHMARKS=OFF
-DLLVM_BUILD_TESTS=OFF
-DLLVM_INCLUDE_TESTS=OFF
-DCLANG_INCLUDE_TESTS=OFF
-DLLVM_BINUTILS_INCDIR=/usr/include
)
cmake "${cmake_args[@]}"
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
# Provide symlink to old LLVM location, pre ROCm 6.0.0
ln -s /opt/rocm/lib/llvm "$pkgdir/opt/rocm/llvm"
# https://bugs.archlinux.org/task/28479
install -d "$pkgdir/opt/rocm/lib/llvm/lib/bfd-plugins"
ln -s /opt/rocm/lib/llvm/lib/LLVMgold.so "$pkgdir/opt/rocm/lib/llvm/lib/bfd-plugins/LLVMgold.so"
cd "$_dirname"
install -Dm644 llvm/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/llvm-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 -Dm644 lld/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/lld-LICENSE"
}