diff options
| author | rawnix ports <ports@rawnix.org> | 2026-09-26 18:19:05 +0000 |
|---|---|---|
| committer | rawnix ports <ports@rawnix.org> | 2026-09-26 18:19:05 +0000 |
| commit | c82e88dd00d1b0b7fcfb4e5628d99611388cef6f (patch) | |
| tree | 56d864b5a5c6c145edd96178ae219a8f90e191a6 /devel/rocm-llvm/MAKEPKG | |
| download | ports-c82e88dd00d1b0b7fcfb4e5628d99611388cef6f.tar.gz | |
sync 2026-09-26 18:19 UTC
1672 files changed, 151396 insertions(+)
Diffstat (limited to 'devel/rocm-llvm/MAKEPKG')
| -rw-r--r-- | devel/rocm-llvm/MAKEPKG | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/devel/rocm-llvm/MAKEPKG b/devel/rocm-llvm/MAKEPKG new file mode 100644 index 0000000..0909f86 --- /dev/null +++ b/devel/rocm-llvm/MAKEPKG @@ -0,0 +1,164 @@ +#!/bin/mkpkg +# description: AMD ROCm LLVM fork - clang/lld, openmp/offload, device-libs, comgr, hipcc +# url: https://github.com/ROCm/llvm-project + +name=rocm-llvm +_name=therock +version=10.0 +release=1 +depends=(llvm libffi zlib zstd libedit ncurses) +makedeps=(cmake ninja python3) +source=(https://github.com/ROCm/llvm-project/archive/refs/tags/$_name-$version.tar.gz) + +sha256sums=( + "92dcfe3d2e1ca52b460c7f168d8d74e47cd17370fa8bdffb919174115f94ab0f" +) + +patch() { + # libc++ provides std::filesystem; libstdc++fs does not exist here + sed -i 's/libstdc++fs\.so//' \ + llvm-project-$_name-$version/amd/hipcc/CMakeLists.txt + + # 'uint' is a glibc/BSD typedef; the callers pass uint32_t* + sed -i 's/(uint \*rc/(uint32_t *rc/' \ + llvm-project-$_name-$version/offload/plugins-nextgen/common/src/EmissaryPrint.cpp +} + +build() { + cd llvm-project-$_name-$version + _src=$PWD + _llvm=$_src/build + + # --- LLVM / clang / lld / compiler-rt / openmp / offload -> /usr/lib/rocm/llvm + cmake -S llvm -B build -G Ninja -Wno-dev \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr/lib/rocm/llvm \ + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_CXX_COMPILER=clang++ \ + -DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON \ + -DLLVM_ENABLE_LLD=ON \ + -DLLVM_ENABLE_PROJECTS="clang;lld" \ + -DLLVM_TARGETS_TO_BUILD="AMDGPU;X86" \ + -DLLVM_HOST_TRIPLE=x86_64-unknown-linux-musl \ + -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-unknown-linux-musl \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_ENABLE_FFI=ON \ + -DLLVM_ENABLE_ZLIB=ON \ + -DLLVM_ENABLE_ZSTD=ON \ + -DLLVM_ENABLE_LIBEDIT=ON \ + -DLLVM_BUILD_LLVM_DYLIB=OFF \ + -DLLVM_LINK_LLVM_DYLIB=OFF \ + -DLLVM_INCLUDE_TESTS=OFF \ + -DLLVM_INCLUDE_BENCHMARKS=OFF \ + -DLLVM_BUILD_EXAMPLES=OFF \ + -DCLANG_BUILD_EXAMPLES=OFF \ + -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF \ + -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ + -DCLANG_DEFAULT_RTLIB=compiler-rt \ + -DCLANG_DEFAULT_UNWINDLIB=libunwind \ + -DCLANG_DEFAULT_LINKER=lld \ + -DCLANG_ENABLE_AMDCLANG=ON \ + -DLLVM_INSTALL_UTILS=OFF \ + -DLLVM_INCLUDE_UTILS=ON \ + -DLLVM_ENABLE_RUNTIMES="compiler-rt;openmp;offload" \ + -DLLVM_RUNTIME_TARGETS="default;amdgcn-amd-amdhsa" \ + -DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES=openmp \ + -DLIBOMPTARGET_PLUGINS_TO_BUILD=amdgpu \ + -DRUNTIMES_amdgcn-amd-amdhsa_AMDDeviceLibs_DIR=$_src/build-devlibs/lib/cmake/AMDDeviceLibs \ + -DRUNTIMES_amdgcn-amd-amdhsa_CMAKE_C_FLAGS="-O2" \ + -DRUNTIMES_amdgcn-amd-amdhsa_CMAKE_CXX_FLAGS="-O2" \ + -DRUNTIMES_amdgcn-amd-amdhsa_CMAKE_EXE_LINKER_FLAGS="" \ + -DRUNTIMES_amdgcn-amd-amdhsa_CMAKE_SHARED_LINKER_FLAGS="" \ + -DOPENMP_ENABLE_LIBOMPTARGET=ON \ + -DLIBOMP_OMPT_SUPPORT=ON \ + -DLIBOMP_INSTALL_ALIASES=OFF \ + -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \ + -DCOMPILER_RT_BUILD_SANITIZERS=OFF \ + -DCOMPILER_RT_BUILD_XRAY=OFF \ + -DCOMPILER_RT_BUILD_LIBFUZZER=OFF \ + -DCOMPILER_RT_BUILD_PROFILE=OFF \ + -DCOMPILER_RT_BUILD_MEMPROF=OFF \ + -DCOMPILER_RT_BUILD_GWP_ASAN=OFF \ + -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF \ + -DCOMPILER_RT_BUILD_ORC=OFF + + # stage 1: compiler, tools and compiler-rt builtins (no openmp/offload yet) + ninja -C build llvm-libraries clang lld llvm-link opt llvm-objcopy llvm-ar builtins + + # --- device-libs -> /usr/lib/rocm/amdgcn/bitcode + # built before the runtimes: the OpenMP GPU runtime links ocml/ockl + cmake -S amd/device-libs -B build-devlibs -G Ninja -Wno-dev \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr/lib/rocm \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_INSTALL_DATADIR=share \ + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_CXX_COMPILER=clang++ \ + -DCMAKE_PREFIX_PATH=$_llvm + + ninja -C build-devlibs + + # stage 2: everything else, incl. compiler-rt, openmp, offload, + # amdgcn device runtime (finds device-libs in build-devlibs) + ninja -C build + + # --- comgr -> /usr/lib + cmake -S amd/comgr -B build-comgr -G Ninja -Wno-dev \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_CXX_COMPILER=clang++ \ + -DCMAKE_PREFIX_PATH="$_llvm;$_src/build-devlibs" \ + -DClang_DIR=$_llvm/lib/cmake/clang \ + -DLLD_DIR=$_llvm/lib/cmake/lld \ + -DBUILD_TESTING=OFF + + ninja -C build-comgr + + # --- hipcc / hipconfig -> /usr/lib/rocm/bin + cmake -S amd/hipcc -B build-hipcc -G Ninja -Wno-dev \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr/lib/rocm \ + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_CXX_COMPILER=clang++ + + ninja -C build-hipcc + + # --- install everything + for b in build build-devlibs build-comgr build-hipcc; do + DESTDIR=$PKG ninja -C $b install + done + + # hipcc: Windows .bat wrappers are not installed; drop dangling links + rm -rf $PKG/usr/lib/rocm/hip + + # flang is not built; these links would run clang as a Fortran driver + rm -f $PKG/usr/lib/rocm/llvm/bin/flang \ + $PKG/usr/lib/rocm/llvm/bin/amdflang + + # hipcc expects <root>/lib/llvm/bin and HIP under the same root; + # here clang is in /usr/lib/rocm/llvm/bin and HIP (rocm-hipamd) in /usr. + # clang itself also reads HIP_PATH and ROCM_PATH from the environment. + install -d $PKG/usr/bin + for t in hipcc hipconfig; do + printf '%s\n' \ + '#!/bin/sh' \ + ': ${HIP_PATH:=/usr}' \ + ': ${ROCM_PATH:=/usr/lib/rocm}' \ + ': ${HIP_CLANG_PATH:=/usr/lib/rocm/llvm/bin}' \ + ': ${HIP_LIB_PATH:=/usr/lib}' \ + ': ${HIPCC_LINK_FLAGS_APPEND:=-unwindlib=libunwind}' \ + 'export HIP_PATH ROCM_PATH HIP_CLANG_PATH HIP_LIB_PATH HIPCC_LINK_FLAGS_APPEND' \ + "exec /usr/lib/rocm/bin/$t \"\$@\"" \ + > $PKG/usr/bin/$t + chmod 755 $PKG/usr/bin/$t + done +} + +signify() { + untrusted comment: public key + RWTZ9IduCSQ/mL8337TEUinPwT92xFEUpD92hkS7IxcOnzTt9QdpohT3 +} + +# vim: filetype=sh |
