pkgname: llvm pkgver: '22.1.8' pkgrel: '1' pkgdesc: 'Low Level Virtual Machine, collection of modular and reusable compiler and toolchain.' url: 'https://llvm.org/' arch: x86_64 depends: [] makedepends: - grep - python - cmake - ninja - libxml2 - git source: - 'https://github.com/llvm/llvm-project/releases/download/llvmorg-${pkgver}/${pkgname}-project-${pkgver}.src.tar.xz' sha256sums: - SKIP build: | # NINJAJOBS=10 na VPS (11GB RAM) wywoływał OOM: przy kompilacji clang # (Sema/Registry.cpp to najcięższe pliki, ~2-3GB cc1plus każdy) kernel # zabijał g++ ("Killed signal terminated program cc1plus"). 4 zadania # mieszczą się w pamięci; wolniej, ale stabilnie. export NINJAJOBS=4 cd ${pkgname}-${pkgver} grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/' sed 's/utility/tool/' -i llvm/utils/FileCheck/CMakeLists.txt mkdir llvm/build cd llvm/build # compiler-rt (runtimes) WYŁĄCZONE: konfiguracja jego testów builtins # padała ("compiler-rt/test/builtins/CMakeLists.txt: file failed to open"), # a rustc i tak go nie potrzebuje (używa tylko core LLVM + llvm-config). # Bez runtimes build też jest szybszy. Komentarz MUSI być przed cmake, # nie w środku kontynuacji `\` (inaczej # zjada resztę opcji). CC=gcc CXX=g++ \ cmake -DCMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D LLVM_ENABLE_FFI=ON \ -D CMAKE_BUILD_TYPE=Release \ -D LLVM_BUILD_LLVM_DYLIB=ON \ -D LLVM_LINK_LLVM_DYLIB=ON \ -D LLVM_ENABLE_RTTI=ON \ -D LLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF" \ -D LLVM_ENABLE_PROJECTS=clang \ -D LLVM_BINUTILS_INCDIR=/usr/include \ -D LLVM_INCLUDE_BENCHMARKS=OFF \ -D LLVM_BUILD_TESTS=OFF \ -W no-dev -G Ninja .. ninja DESTDIR=${PKGDIR} ninja install package: | true