Browse Source

[trunk] -> [community-staging] 'ldc-3:1.28.0-3' add

master
Nathan Owens 10 months ago
parent
commit
b45153e667
  1. 17
      trunk/PKGBUILD
  2. 32
      trunk/keep-default-alignment-for-atomic-instructions.patch
  3. 113
      x86_64/community-staging/PKGBUILD
  4. 32
      x86_64/community-staging/keep-default-alignment-for-atomic-instructions.patch

17
trunk/PKGBUILD

@ -4,12 +4,12 @@
pkgname=('ldc' 'liblphobos')
groups=('dlang' 'dlang-ldc')
pkgver=1.27.1
_pkgcommit=4c42c050cf884bb17e6b459e694f906b7c933b30
_dversion=2.097.2
_clangversion=12.0.1 # related to where ldc2 looks for compiler-rt sanitizers
pkgver=1.28.0
_pkgcommit=6a240b66fd5fcaccd85fb50a2717767dd37ef17a
_dversion=2.098.0
_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"
@ -21,12 +21,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"
@ -37,6 +39,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
}

32
trunk/keep-default-alignment-for-atomic-instructions.patch

@ -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);

113
x86_64/community-staging/PKGBUILD

@ -0,0 +1,113 @@
# Maintainer: Dan Printzell <arch@vild.io>
# Contributor: Mihails Strasuns <public@dicebot.lv>
# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
pkgname=('ldc' 'liblphobos')
groups=('dlang' 'dlang-ldc')
pkgver=1.28.0
_pkgcommit=6a240b66fd5fcaccd85fb50a2717767dd37ef17a
_dversion=2.098.0
_clangversion=13.0.0 # related to where ldc2 looks for compiler-rt sanitizers
epoch=3
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"
license=('BSD')
makedepends=('git' 'cmake' 'llvm' 'ldc' 'ninja')
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"
"keep-default-alignment-for-atomic-instructions.patch"
)
sha256sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'7d33b18c517e7155a44efad984f8226d6bdaa7afae121e3e905727eb73299bbf')
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
# 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
}
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" \
-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"
}

32
x86_64/community-staging/keep-default-alignment-for-atomic-instructions.patch

@ -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);
Loading…
Cancel
Save