#!/bin/mkpkg # description: Complete LLVM toolchain (clang, lld, compiler-rt, libc++, libunwind, clang-tools-extra) # url: https://llvm.org/ name=llvm version=23.1.1 release=1 provides=(llvm clang compiler-rt libunwind lld libcxx clang-extra-tools) depends=(libffi zlib zstd libedit ncurses libxml2) makedeps=(cmake ninja python3) source=(https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/llvm-project-$version.src.tar.xz) sha256sums=( "ebe9be46fe8756d58c5b198ffad0fa2a766257add81a4dc52179bfacc7888ee6" ) build() { mv llvm-project-$version.src llvm-project cmake -S llvm-project/llvm -B build -G Ninja -Wno-dev \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ -DLLVM_ENABLE_LLD=ON \ -DLLVM_ENABLE_PROJECTS="clang;lld;clang-tools-extra" \ -DLLVM_ENABLE_RUNTIMES="compiler-rt;libunwind;libcxxabi;libcxx" \ -DLLVM_TARGETS_TO_BUILD="X86;AMDGPU" \ -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=ON \ -DLLVM_LINK_LLVM_DYLIB=ON \ -DLLVM_INSTALL_UTILS=ON \ -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ -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_LINK_CLANG_DYLIB=ON \ -DLIBCLANG_BUILD_STATIC=ON \ -DCLANG_TIDY_ENABLE_STATIC_ANALYZER=OFF \ -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \ -DCOMPILER_RT_BUILD_BUILTINS=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 \ -DLIBCXX_HAS_MUSL_LIBC=ON \ -DLIBCXX_HAS_ATOMIC_LIB=OFF \ -DLIBCXX_USE_COMPILER_RT=ON \ -DLIBCXX_CXX_ABI=libcxxabi \ -DLIBCXX_ENABLE_STATIC=ON \ -DLIBCXX_ENABLE_SHARED=ON \ -DLIBCXXABI_USE_COMPILER_RT=ON \ -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ -DLIBCXXABI_ENABLE_SHARED=ON \ -DLIBUNWIND_USE_COMPILER_RT=ON \ -DLIBUNWIND_ENABLE_SHARED=ON ninja -C build DESTDIR=$PKG ninja -C build install printf '%s\n' 'INPUT(libclang_rt.builtins.a)' > $PKG/usr/lib/libatomic.a printf '%s\n' 'INPUT(-lclang_rt.builtins)' > $PKG/usr/lib/libatomic.so ln -sf clang $PKG/usr/bin/cc ln -sf clang++ $PKG/usr/bin/c++ ln -sf lld $PKG/usr/bin/ld ln -sf clang $PKG/usr/bin/ccp ln -sf clang/${version%%.*}/lib/linux/libclang_rt.builtins-x86_64.a \ $PKG/usr/lib/libclang_rt.builtins.a } signify() { untrusted comment: public key RWTZ9IduCSQ/mL8337TEUinPwT92xFEUpD92hkS7IxcOnzTt9QdpohT3 } # vim: filetype=sh