98 lines
3.7 KiB
Bash
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"
|
|
}
|