mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-04-19 05:36:38 +02:00
96 lines
2.6 KiB
Text
96 lines
2.6 KiB
Text
# Contributor: Eric Molitor <eric@molitor.org>
|
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
|
|
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
|
|
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
|
|
pkgver=19.1.7
|
|
pkgrel=4
|
|
_llvmver=${pkgver%%.*}
|
|
_prevllvmver=$((_llvmver - 1))
|
|
pkgname=lld$_llvmver
|
|
pkgdesc="The LLVM Linker"
|
|
url="https://llvm.org/"
|
|
arch="all"
|
|
license="Apache-2.0"
|
|
depends_dev="$pkgname=$pkgver-r$pkgrel"
|
|
makedepends="
|
|
clang$_llvmver
|
|
cmake
|
|
compiler-rt
|
|
libedit-dev
|
|
libxml2-dev
|
|
llvm$_llvmver-dev
|
|
llvm$_llvmver-gtest
|
|
llvm$_llvmver-static
|
|
llvm$_llvmver-test-utils
|
|
llvm-libunwind-dev
|
|
patchelf
|
|
samurai
|
|
scudo-malloc
|
|
zlib-dev
|
|
"
|
|
checkdepends="gtest-dev bash llvm$_llvmver-test-utils"
|
|
subpackages="$pkgname-dbg $pkgname-libs $pkgname-dev $pkgname-doc"
|
|
source="https://github.com/llvm/llvm-project/releases/download/llvmorg-${pkgver//_/-}/lld-${pkgver//_/}.src.tar.xz
|
|
https://github.com/llvm/llvm-project/releases/download/llvmorg-${pkgver//_/-}/cmake-${pkgver//_/}.src.tar.xz
|
|
"
|
|
builddir="$srcdir/lld-${pkgver//_/}.src"
|
|
|
|
# whether this is the default lld version (keep in sync with llvm)
|
|
_default_lld="no"
|
|
|
|
if [ "$_default_lld" = yes ]; then
|
|
provides="lld=$pkgver-r$pkgrel"
|
|
replaces="lld"
|
|
|
|
dev() {
|
|
default_dev
|
|
provides="lld-dev=$pkgver-r$pkgrel"
|
|
replaces="lld-dev"
|
|
}
|
|
fi
|
|
|
|
replaces="lld$_prevllvmver"
|
|
|
|
prepare() {
|
|
default_prepare
|
|
mv "$srcdir"/cmake-${pkgver//_/}.src "$srcdir"/cmake
|
|
}
|
|
|
|
build() {
|
|
CFLAGS="$CFLAGS -O2 -DNDEBUG -g1" \
|
|
CXXFLAGS="$CXXFLAGS -O2 -DNDEBUG -g1" \
|
|
CC=clang-$_llvmver CXX=clang++-$_llvmver \
|
|
cmake -B build -G Ninja -Wno-dev \
|
|
-DCMAKE_BUILD_TYPE=None \
|
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
|
-DCMAKE_SKIP_INSTALL_RPATH=ON \
|
|
-DBUILD_SHARED_LIBS=ON \
|
|
-DLLVM_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
|
|
-DLLVM_EXTERNAL_LIT=/usr/lib/llvm$_llvmver/bin/lit \
|
|
-DLLD_BUILT_STANDALONE=ON \
|
|
-DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -Wl,-z,stack-size=2097152"
|
|
cmake --build build
|
|
}
|
|
|
|
check() {
|
|
ninja -C build check-lld
|
|
}
|
|
|
|
package() {
|
|
DESTDIR="$pkgdir" cmake --install build
|
|
install -Dm644 docs/ld.lld.1 -t "$pkgdir"/usr/share/man/man1/
|
|
|
|
# we have the scudo allocator available, so link lld to it to
|
|
# significantly improve performance, especially in LTO contexts
|
|
patchelf --add-needed libscudo.so "$pkgdir"/usr/bin/lld
|
|
}
|
|
|
|
doc() {
|
|
default_doc
|
|
replaces="lld-doc lld$_prevllvmver-doc"
|
|
}
|
|
|
|
sha512sums="
|
|
346b556db83a2c50eba61e906b2255a77822a320e93b9e2b10d2d5c48e293080caa48b3eb203da13a6d94ba099766e2663aeb1e79a26c64c5396fd936bc036b5 lld-19.1.7.src.tar.xz
|
|
3ff56e1a61dbace35d8c168ad5c94c5a09d92eb683494bfe1deabcb3640cf79b7422d44903d049d2298d54c2874f9a60c4f13f6795a3949e7eaefd5d42e62621 cmake-19.1.7.src.tar.xz
|
|
"
|