Date: Monday, April 13, 2020 @ 03:18:46 Author: foutrelis Revision: 613557
archrelease: copy trunk to community-staging-x86_64 Added: ldc/repos/community-staging-x86_64/PKGBUILD (from rev 613556, ldc/trunk/PKGBUILD) ldc/repos/community-staging-x86_64/fix-llvm_prefetch-for-LLVM-10.patch (from rev 613556, ldc/trunk/fix-llvm_prefetch-for-LLVM-10.patch) Deleted: ldc/repos/community-staging-x86_64/PKGBUILD -------------------------------------+ PKGBUILD | 221 +++++++++++++++++----------------- fix-llvm_prefetch-for-LLVM-10.patch | 55 ++++++++ 2 files changed, 168 insertions(+), 108 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2020-04-13 03:18:41 UTC (rev 613556) +++ PKGBUILD 2020-04-13 03:18:46 UTC (rev 613557) @@ -1,108 +0,0 @@ -# Maintainer: Dan Printzell <a...@vild.io> -# Contributor: Mihails Strasuns <pub...@dicebot.lv> -# Contributor: Sven-Hendrik Haase <s...@lutzhaase.com> - -pkgname=('ldc' 'liblphobos') -groups=('dlang' 'dlang-ldc') -pkgver=1.20.1 -_pkgcommit=96437a25c28a2a6fbeb36dc6a46b600e56021051 -_dversion=2.090.1 -_clangversion=9.0.1 # related to where ldc2 looks for compiler-rt sanitizers -epoch=2 -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' 'llvm9' 'ldc') - -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 \ - -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=full" \ - -DADDITIONAL_DEFAULT_LDC_SWITCHES="\"-link-defaultlib-shared\"" \ - .. - make -} - -check() { - cd "$srcdir/ldc/build" - make all-test-runners -} - -package_ldc() { - depends=('liblphobos' 'llvm9-libs' 'gcc' 'compiler-rt') - backup=('etc/ldc2.conf') - provides=("d-compiler=$_dversion") - - cd "$srcdir/ldc/build" - make install DESTDIR="$pkgdir" - - # 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') - - cd "$srcdir/ldc/build" - make install DESTDIR="$pkgdir" - - # 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/PKGBUILD (from rev 613556, ldc/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2020-04-13 03:18:46 UTC (rev 613557) @@ -0,0 +1,113 @@ +# Maintainer: Dan Printzell <a...@vild.io> +# Contributor: Mihails Strasuns <pub...@dicebot.lv> +# Contributor: Sven-Hendrik Haase <s...@lutzhaase.com> + +pkgname=('ldc' 'liblphobos') +groups=('dlang' 'dlang-ldc') +pkgver=1.20.1 +_pkgcommit=96437a25c28a2a6fbeb36dc6a46b600e56021051 +_dversion=2.090.1 +_clangversion=10.0.0 # related to where ldc2 looks for compiler-rt sanitizers +epoch=2 +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') + +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" + "fix-llvm_prefetch-for-LLVM-10.patch" +) + +sha256sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'f123e482402416d262739a21de4c156cc37912c0f796f9d2239607a173680e28') + +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/issues/3397 + patch -Np1 -d runtime/druntime <../fix-llvm_prefetch-for-LLVM-10.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 \ + -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=full" \ + -DADDITIONAL_DEFAULT_LDC_SWITCHES="\"-link-defaultlib-shared\"" \ + .. + make +} + +check() { + cd "$srcdir/ldc/build" + make all-test-runners +} + +package_ldc() { + depends=('liblphobos' 'llvm-libs' 'gcc' 'compiler-rt') + backup=('etc/ldc2.conf') + provides=("d-compiler=$_dversion") + + cd "$srcdir/ldc/build" + make install DESTDIR="$pkgdir" + + # 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') + + cd "$srcdir/ldc/build" + make install DESTDIR="$pkgdir" + + # 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/fix-llvm_prefetch-for-LLVM-10.patch (from rev 613556, ldc/trunk/fix-llvm_prefetch-for-LLVM-10.patch) =================================================================== --- fix-llvm_prefetch-for-LLVM-10.patch (rev 0) +++ fix-llvm_prefetch-for-LLVM-10.patch 2020-04-13 03:18:46 UTC (rev 613557) @@ -0,0 +1,55 @@ +diff --git a/src/core/simd.d b/src/core/simd.d +index c27dc4c1..7641c8a9 100644 +--- a/src/core/simd.d ++++ b/src/core/simd.d +@@ -84,6 +84,20 @@ version (LDC) + enum dataCache = 1; + llvm_prefetch(address, writeFetch, locality, dataCache); + } ++ ++ unittest ++ { ++ float[4] data = [ 0.5, 1, 1.5, 2 ]; ++ auto ptr = &data[0]; ++ ++ prefetch!(false, 0)(ptr); ++ auto v = loadUnaligned!float4(ptr); ++ v *= 2; ++ storeUnaligned!float4(v, ptr); ++ ++ float[4] expected = [ 1, 2, 3, 4 ]; ++ assert(data == expected); ++ } + } + else version (D_SIMD) + { +diff --git a/src/ldc/intrinsics.di b/src/ldc/intrinsics.di +index 914cd5e1..091b2aac 100644 +--- a/src/ldc/intrinsics.di ++++ b/src/ldc/intrinsics.di +@@ -129,6 +129,14 @@ pragma(LDC_intrinsic, "llvm.stacksave") + pragma(LDC_intrinsic, "llvm.stackrestore") + void llvm_stackrestore(void* ptr); + ++version(INTRINSICS_FROM_1000) ++{ ++ private enum llvm_prefetch_fullname = "llvm.prefetch.p0i8"; ++} ++else ++{ ++ private enum llvm_prefetch_fullname = "llvm.prefetch"; ++} + /// The 'llvm.prefetch' intrinsic is a hint to the code generator to insert a + /// prefetch instruction if supported; otherwise, it is a noop. Prefetches have + /// no effect on the behavior of the program but can change its performance +@@ -139,8 +147,8 @@ pragma(LDC_intrinsic, "llvm.stackrestore") + /// keep in cache. The cache type specifies whether the prefetch is performed on + /// the data (1) or instruction (0) cache. The rw, locality and cache type + /// arguments must be constant integers. +-pragma(LDC_intrinsic, "llvm.prefetch") +- void llvm_prefetch(void* ptr, uint rw, uint locality, uint cachetype) pure @safe; ++pragma(LDC_intrinsic, llvm_prefetch_fullname) ++ void llvm_prefetch(const(void)* ptr, uint rw, uint locality, uint cachetype) pure @safe; + + /// The 'llvm.pcmarker' intrinsic is a method to export a Program Counter (PC) + /// in a region of code to simulators and other tools. The method is target