aboutsummaryrefslogtreecommitdiffstats
path: root/main/lld/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'main/lld/APKBUILD')
-rw-r--r--main/lld/APKBUILD54
1 files changed, 30 insertions, 24 deletions
diff --git a/main/lld/APKBUILD b/main/lld/APKBUILD
index e844d5fa7c8..a7bd193d9a3 100644
--- a/main/lld/APKBUILD
+++ b/main/lld/APKBUILD
@@ -1,56 +1,57 @@
# Contributor: Eric Molitor <eric@molitor.org>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lld
-pkgver=14.0.6
-pkgrel=4
+pkgver=17.0.6
+pkgrel=0
_llvmver=${pkgver%%.*}
pkgdesc="The LLVM Linker"
url="https://llvm.org/"
-# cannot link anything and fails
-# ld.lld: error: unknown emulation: elf64_s390
-# ld.lld: error: src/gn/gn_main.o: could not infer e_machine
-# from bitcode target triple s390x-alpine-linux-musl
-# also fails hundreds of tests
-arch="all !s390x"
+arch="all"
license="Apache-2.0"
depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="
clang
cmake
+ compiler-rt
libedit-dev
+ libxml2-dev
llvm$_llvmver-dev
+ llvm$_llvmver-gtest
llvm$_llvmver-static
llvm$_llvmver-test-utils
llvm-libunwind-dev
- ninja
+ 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"
-builddir="$srcdir/$pkgname-$pkgver.src"
+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/$pkgname-${pkgver//_/}.src"
-case "$CARCH" in
-armhf)
- # for some reason they hang forever, but the actual linker works fine
- options="$options !check"
- ;;
-esac
+prepare() {
+ default_prepare
+ mv "$srcdir"/cmake-${pkgver//_/}.src "$srcdir"/cmake
+}
build() {
- CFLAGS="${CFLAGS/-g/-g1}" \
- CXXFLAGS="${CXXFLAGS/-g/-g1}" \
+ CFLAGS="$CFLAGS -O2 -DNDEBUG -g1" \
+ CXXFLAGS="$CXXFLAGS -O2 -DNDEBUG -g1" \
CC=clang CXX=clang++ \
cmake -B build -G Ninja -Wno-dev \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -Wl,-z,stack-size=2097152" \
+ -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/bin/lit \
- -DLLD_BUILT_STANDALONE=ON
+ -DLLD_BUILT_STANDALONE=ON \
+ -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -Wl,-z,stack-size=2097152"
cmake --build build
}
@@ -61,8 +62,13 @@ check() {
package() {
DESTDIR="$pkgdir" cmake --install build
install -Dm644 "$builddir"/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
}
sha512sums="
-fad97b441f9642b73edd240af2c026259de0951d5ace42779e9e0fcf5e417252a1d744e2fc51e754a45016621ba0c70088177f88695af1c6ce290dd26873b094 lld-14.0.6.src.tar.xz
+55955fc24b3fb87012486618cf227a1640ad9a6d607c898d890337aa8c28f3e6a9ed48a52bd0ed57f365f0dc5081a6b3a037cb65da9a9f2cbc53a1527cb8db60 lld-17.0.6.src.tar.xz
+b2c5e404ca36542d44e1a7f2801bbcecbcf5f1e8c63b793bb2308228483406bdfe002720aadb913c0228cd2bbe5998465eaadc4a49fad6a5eb6ff907fa5fd45a cmake-17.0.6.src.tar.xz
"