diff --git a/community/ldc/PKGBUILD b/community/ldc/PKGBUILD index d505f697a..b90fa843c 100644 --- a/community/ldc/PKGBUILD +++ b/community/ldc/PKGBUILD @@ -15,9 +15,9 @@ groups=('dlang' 'dlang-ldc') pkgver=1.28.0 _pkgcommit=6a240b66fd5fcaccd85fb50a2717767dd37ef17a _dversion=2.098.0 -_clangversion=12.0.1 # related to where ldc2 looks for compiler-rt sanitizers +_clangversion=13.0.0 # related to where ldc2 looks for compiler-rt sanitizers epoch=3 -pkgrel=1 +pkgrel=3 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" @@ -29,12 +29,14 @@ source=( "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" + "keep-default-alignment-for-atomic-instructions.patch" ) sha256sums=('SKIP' 'SKIP' 'SKIP' - 'SKIP') + 'SKIP' + '7d33b18c517e7155a44efad984f8226d6bdaa7afae121e3e905727eb73299bbf') prepare() { cd "$srcdir/ldc" @@ -45,6 +47,9 @@ prepare() { git config submodule.tests/d2/dmd-testsuite.url "$srcdir/ldc-testsuite" git submodule update + # https://github.com/ldc-developers/ldc/pull/3842 + patch -Np1 -i ../keep-default-alignment-for-atomic-instructions.patch + # Set version used for path construction in getFullClangCompilerRTLibPath() sed -i "s/ldc::llvm_version_base/\"$_clangversion\"/" driver/linker-gcc.cpp } diff --git a/community/ldc/keep-default-alignment-for-atomic-instructions.patch b/community/ldc/keep-default-alignment-for-atomic-instructions.patch new file mode 100644 index 000000000..798df12ef --- /dev/null +++ b/community/ldc/keep-default-alignment-for-atomic-instructions.patch @@ -0,0 +1,32 @@ +From 7e80c26eded0326e18aad2c9f906844eb0f46dc0 Mon Sep 17 00:00:00 2001 +From: Martin Kinkelin +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);