new blfs: llvm-core/llvm-20.1.8
This commit is contained in:
@@ -30,4 +30,5 @@ dev-libs/libunistring dev-libs/popt dev-libs/libtasn1 app-arch/libarchive dev-li
|
|||||||
- `app-arch/libarchive` -> `dev-db/sqlite` -> rebuild `dev-lang/python`
|
- `app-arch/libarchive` -> `dev-db/sqlite` -> rebuild `dev-lang/python`
|
||||||
- `dev-python/six` -> `dev-debug/gdb`
|
- `dev-python/six` -> `dev-debug/gdb`
|
||||||
- `dev-libs/popt` + `dev-libs/xxhash` -> `net-misc/rsync`
|
- `dev-libs/popt` + `dev-libs/xxhash` -> `net-misc/rsync`
|
||||||
- `dev-libs/pcre2` -> `sys-apps/grep`
|
- `dev-libs/pcre2` -> rebuild `sys-apps/grep`
|
||||||
|
- rebuild `sys-apps/grep` + `net-misc/curl` + `dev-build/cmake` -> `llvm-core/llvm`
|
||||||
|
|||||||
121
llvm-core/llvm-20.1.8.PKGBUILD
Normal file
121
llvm-core/llvm-20.1.8.PKGBUILD
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
pkgname=llvm
|
||||||
|
pkgver=20.1.8
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://llvm.org/"
|
||||||
|
license=('Apache-2.0 WITH LLVM-exception')
|
||||||
|
_source_base=https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver
|
||||||
|
sources=("${pkgname}-${pkgver}.src.tar.xz"
|
||||||
|
"llvm-cmake-${pkgver}.src.tar.xz"
|
||||||
|
"llvm-third-party-${pkgver}.src.tar.xz"
|
||||||
|
)
|
||||||
|
urls=("${_source_base}/llvm-${pkgver}.src.tar.xz"
|
||||||
|
"https://anduin.linuxfromscratch.org/BLFS/llvm/llvm-cmake-${pkgver}.src.tar.xz"
|
||||||
|
"https://anduin.linuxfromscratch.org/BLFS/llvm/llvm-third-party-${pkgver}.src.tar.xz"
|
||||||
|
)
|
||||||
|
md5sums=("78040509eb91309b4ec2edfe12cd20d8"
|
||||||
|
"5bfb8f4b4a2b3ccffca0d2406e4cdcc6"
|
||||||
|
"2ffd8624b3cbddf55a4e74a7d8ea89fa"
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
tar -xf ${distdir}/${sources[0]} --strip-components=1 &&
|
||||||
|
tar -xf ${distdir}/${sources[1]} &&
|
||||||
|
tar -xf ${distdir}/${sources[2]} &&
|
||||||
|
sed "/LLVM_COMMON_CMAKE_UTILS/s@../cmake@cmake-${pkgver}.src@" \
|
||||||
|
-i CMakeLists.txt &&
|
||||||
|
sed "/LLVM_THIRD_PARTY_DIR/s@../third-party@third-party-${pkgver}.src@" \
|
||||||
|
-i cmake/modules/HandleLLVMOptions.cmake &&
|
||||||
|
sed 's/utility/tool/' -i utils/FileCheck/CMakeLists.txt
|
||||||
|
}
|
||||||
|
|
||||||
|
# Utilizing LLVM_DISTRIBUTION_COMPONENTS to avoid
|
||||||
|
# installing static libraries; inspired by Gentoo
|
||||||
|
_get_distribution_components() {
|
||||||
|
local target
|
||||||
|
ninja -t targets | grep -Po 'install-\K.*(?=-stripped:)' | while read -r target; do
|
||||||
|
case $target in
|
||||||
|
llvm-libraries|distribution)
|
||||||
|
continue
|
||||||
|
;;
|
||||||
|
# shared libraries
|
||||||
|
LLVM|LLVMgold)
|
||||||
|
;;
|
||||||
|
# libraries needed for clang-tblgen
|
||||||
|
LLVMDemangle|LLVMSupport|LLVMTableGen)
|
||||||
|
;;
|
||||||
|
# used by lldb
|
||||||
|
LLVMDebuginfod)
|
||||||
|
;;
|
||||||
|
# testing libraries
|
||||||
|
LLVMTestingAnnotations|LLVMTestingSupport)
|
||||||
|
;;
|
||||||
|
# exclude static libraries
|
||||||
|
LLVM*)
|
||||||
|
continue
|
||||||
|
;;
|
||||||
|
# exclude llvm-exegesis (doesn't seem useful without libpfm)
|
||||||
|
llvm-exegesis)
|
||||||
|
continue
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo $target
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
src_build() {
|
||||||
|
mkdir -v build &&
|
||||||
|
cd build &&
|
||||||
|
|
||||||
|
# Build only minimal debug info to reduce size
|
||||||
|
CFLAGS=${CFLAGS/-g /-g1 }
|
||||||
|
CXXFLAGS=${CXXFLAGS/-g /-g1 }
|
||||||
|
|
||||||
|
local cmake_args=(
|
||||||
|
-D CMAKE_INSTALL_PREFIX=/usr
|
||||||
|
-D CMAKE_SKIP_INSTALL_RPATH=ON
|
||||||
|
-D LLVM_ENABLE_FFI=ON
|
||||||
|
-D LLVM_USE_PERF=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_ENABLE_SPHINX=OFF
|
||||||
|
-D LLVM_TARGETS_TO_BUILD="host;AMDGPU"
|
||||||
|
-D LLVM_BINUTILS_INCDIR=/usr/include
|
||||||
|
-D LLVM_INCLUDE_BENCHMARKS=OFF
|
||||||
|
-W no-dev
|
||||||
|
-G Ninja
|
||||||
|
)
|
||||||
|
|
||||||
|
CC=gcc CXX=g++ cmake .. "${cmake_args[@]}" &&
|
||||||
|
local distribution_components=$(_get_distribution_components | paste -sd\;) &&
|
||||||
|
test -n "$distribution_components" &&
|
||||||
|
cmake_args+=(-DLLVM_DISTRIBUTION_COMPONENTS="$distribution_components") &&
|
||||||
|
|
||||||
|
CC=gcc CXX=g++ cmake .. "${cmake_args[@]}" &&
|
||||||
|
|
||||||
|
ninja &&
|
||||||
|
cd .. &&
|
||||||
|
|
||||||
|
pushd utils/lit &&
|
||||||
|
pip3 wheel -w dist --no-build-isolation --no-deps $PWD &&
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
src_check() {
|
||||||
|
pushd build &&
|
||||||
|
ninja check-llvm &&
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
pushd build &&
|
||||||
|
DESTDIR="$pkgdir" ninja install-distribution &&
|
||||||
|
pushd ../utils/lit &&
|
||||||
|
pip3 install --no-deps --no-warn-script-location --no-index --find-links dist --no-cache-dir --no-user --root $pkgdir lit &&
|
||||||
|
popd &&
|
||||||
|
# Remove documentation sources
|
||||||
|
rm -r "$pkgdir"/usr/share/doc/llvm/html/{_sources,.buildinfo} || true &&
|
||||||
|
install -Dm644 ../LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" &&
|
||||||
|
popd
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user