Date: Wednesday, June 22, 2022 @ 17:29:54 Author: foutrelis Revision: 1238985
archrelease: copy trunk to community-staging-x86_64 Added: ldc/repos/community-staging-x86_64/ ldc/repos/community-staging-x86_64/PKGBUILD (from rev 1238984, ldc/trunk/PKGBUILD) ldc/repos/community-staging-x86_64/keep-default-alignment-for-atomic-instructions.patch (from rev 1238984, ldc/trunk/keep-default-alignment-for-atomic-instructions.patch) ------------------------------------------------------+ PKGBUILD | 110 +++++++++++++++++ keep-default-alignment-for-atomic-instructions.patch | 32 ++++ 2 files changed, 142 insertions(+) Copied: ldc/repos/community-staging-x86_64/PKGBUILD (from rev 1238984, ldc/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2022-06-22 17:29:54 UTC (rev 1238985) @@ -0,0 +1,110 @@ +# Maintainer: Dan Printzell <w...@archlinux.org> +# Contributor: Mihails Strasuns <pub...@dicebot.lv> +# Contributor: Sven-Hendrik Haase <s...@lutzhaase.com> + +pkgname=('ldc' 'liblphobos') +groups=('dlang' 'dlang-ldc') +pkgver=1.29.0 +_pkgcommit=6aa350a1cf000db263db36a2bc5624935adfde71 +_dversion=2.099.1 +_clangversion=14.0.5 # related to where ldc2 looks for compiler-rt sanitizers +epoch=3 +pkgrel=2 +pkgdesc="A D Compiler based on the LLVM Compiler Infrastructure including D runtime and libphobos2" +arch=('x86_64') +url="https://github.com/ldc-developers/ldc" +license=('BSD') +makedepends=('git' 'cmake' 'llvm' 'ldc' 'ninja' 'llvm13-libs') +# Disable lto as linking the ldc2 binary fails +options=(!lto) + +source=( + "git+https://github.com/ldc-developers/ldc#commit=$_pkgcommit" + "ldc-druntime::git+https://github.com/ldc-developers/druntime.git" + "ldc-phobos::git+https://github.com/ldc-developers/phobos.git" + "ldc-testsuite::git+https://github.com/ldc-developers/dmd-testsuite.git" +) + +sha256sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP') + +prepare() { + cd "$srcdir/ldc" + + git submodule init + git config submodule.druntime.url "$srcdir/ldc-druntime" + git config submodule.phobos.url "$srcdir/ldc-phobos" + git config submodule.tests/d2/dmd-testsuite.url "$srcdir/ldc-testsuite" + git submodule update + + # Set version used for path construction in getFullClangCompilerRTLibPath() + sed -i "s/ldc::llvm_version_base/\"$_clangversion\"/" driver/linker-gcc.cpp +} + +build() { + cd "$srcdir/ldc" + + mkdir -p build && cd build + + cmake -GNinja \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SKIP_RPATH=ON \ + -DINCLUDE_INSTALL_DIR=/usr/include/dlang/ldc \ + -DBUILD_SHARED_LIBS=BOTH \ + -DBUILD_LTO_LIBS=ON \ + -DLDC_WITH_LLD=OFF \ + -DD_COMPILER_FLAGS="-link-defaultlib-shared=false -linker=gold --flto=thin" \ + -DADDITIONAL_DEFAULT_LDC_SWITCHES="\"-link-defaultlib-shared\"" \ + .. + ninja +} + +check() { + cd "$srcdir/ldc/build" + ninja all-test-runners +} + +package_ldc() { + depends=('liblphobos' 'llvm-libs' 'gcc' 'compiler-rt') + backup=('etc/ldc2.conf') + provides=("d-compiler=$_dversion") + + cd "$srcdir/ldc/build" + DESTDIR="$pkgdir" ninja install + + # move bash-completion + mkdir -p "$pkgdir/usr/share/bash-completion/completions/" + mv "$pkgdir/etc/bash_completion.d/ldc2" "$pkgdir/usr/share/bash-completion/completions/" + rm -rf "$pkgdir/etc/bash_completion.d" + + # remove liblphobos files + rm -rf "$pkgdir/usr/include" + rm -rf "$pkgdir/usr/lib" + + # symlinks + ln -s /usr/share/bash-completion/completions/ldc2 "$pkgdir/usr/share/bash-completion/completions/ldc" + ln -s /usr/bin/ldc2 "$pkgdir/usr/bin/ldc" + ln -s /usr/bin/ldmd2 "$pkgdir/usr/bin/ldmd" + + # licenses + install -D -m644 "$srcdir/ldc/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +package_liblphobos() { + provides=('d-runtime' 'd-stdlib') + depends=('curl') + options=('staticlibs' '!strip') + + cd "$srcdir/ldc/build" + DESTDIR="$pkgdir" ninja install + + # remove ldc files + rm -rf "$pkgdir/usr/bin/" + rm -rf "$pkgdir/etc/" + + # licenses + install -D -m644 "$srcdir/ldc/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} Copied: ldc/repos/community-staging-x86_64/keep-default-alignment-for-atomic-instructions.patch (from rev 1238984, ldc/trunk/keep-default-alignment-for-atomic-instructions.patch) =================================================================== --- community-staging-x86_64/keep-default-alignment-for-atomic-instructions.patch (rev 0) +++ community-staging-x86_64/keep-default-alignment-for-atomic-instructions.patch 2022-06-22 17:29:54 UTC (rev 1238985) @@ -0,0 +1,32 @@ +From 7e80c26eded0326e18aad2c9f906844eb0f46dc0 Mon Sep 17 00:00:00 2001 +From: Martin Kinkelin <no...@nowhere.com> +Date: Wed, 6 Oct 2021 18:47:28 +0200 +Subject: [PATCH] Keep default alignment for atomic instructions, for LLVM 13+ + too + +--- + gen/tocall.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gen/tocall.cpp b/gen/tocall.cpp +index 385133015b..28967a64c3 100644 +--- a/gen/tocall.cpp ++++ b/gen/tocall.cpp +@@ -511,7 +511,7 @@ bool DtoLowerMagicIntrinsic(IRState *p, FuncDeclaration *fndecl, CallExp *e, + auto ret = + p->ir->CreateAtomicCmpXchg(ptr, cmp, val, + #if LDC_LLVM_VER >= 1300 +- LLMaybeAlign(getABITypeAlign(val->getType())), ++ llvm::MaybeAlign(), // default alignment + #endif + successOrdering, failureOrdering); + ret->setWeak(isWeak); +@@ -559,7 +559,7 @@ bool DtoLowerMagicIntrinsic(IRState *p, FuncDeclaration *fndecl, CallExp *e, + LLValue *ret = + p->ir->CreateAtomicRMW(llvm::AtomicRMWInst::BinOp(op), ptr, val, + #if LDC_LLVM_VER >= 1300 +- LLMaybeAlign(getABITypeAlign(val->getType())), ++ llvm::MaybeAlign(), // default alignment + #endif + llvm::AtomicOrdering(atomicOrdering)); + result = new DImValue(exp2->type, ret);