diff options
Diffstat (limited to 'main/lld/APKBUILD')
-rw-r--r-- | main/lld/APKBUILD | 54 |
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 " |