community/ldc to 1.28.0-3

This commit is contained in:
Kevin Mihelich 2021-11-13 16:28:02 +00:00
parent 498945379f
commit 7c92d33d90
2 changed files with 40 additions and 3 deletions

View file

@ -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
}

View file

@ -0,0 +1,32 @@
From 7e80c26eded0326e18aad2c9f906844eb0f46dc0 Mon Sep 17 00:00:00 2001
From: Martin Kinkelin <noone@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);