add zstd to fix perf issue
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
nyyu 2022-06-25 10:23:12 +02:00
parent 91dc09ba3e
commit 2f1878ab42
2 changed files with 106 additions and 0 deletions

64
zstd/PKGBUILD Normal file
View File

@ -0,0 +1,64 @@
# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Andrzej Giniewicz <gginiu@gmail.com>
# Contributor: Johan Förberg <johan@forberg.se>
pkgname=zstd
pkgver=1.5.2
pkgrel=8
pkgdesc='Zstandard - Fast real-time compression algorithm'
url='https://facebook.github.io/zstd/'
arch=(x86_64)
license=(BSD GPL2)
depends=(glibc gcc-libs zlib xz lz4)
makedepends=(cmake gtest ninja)
provides=(libzstd.so)
options=(debug)
source=(https://github.com/facebook/zstd/releases/download/v${pkgver}/zstd-${pkgver}.tar.zst{,.sig}
fix_perf.patch)
sha256sums=('3ea06164971edec7caa2045a1932d757c1815858e4c2b68c7ef812647535c23f'
'SKIP'
'07db9fe01b7164fc7180a52c43d79c1ae4d15abb5669cbf91a5c9c7f357d5f7e')
b2sums=('513e4526a92bcb59416b3457d186a30e554f9e0cf21d7114eb3e9fbcbd9d662c8d95cf0b06237f6fe3f756862c63de0aa146d6a23cb4111c16e6459608d115f1'
'SKIP'
'26e25d98485bacc8295a0add027b86ae8e386a9164c13ffd5497796c8e8da5122f0e9724c0e727e59712ab142ac62cf6fcbb4ae08e35c696874b863eead05ed4')
validpgpkeys=(4EF4AC63455FC9F4545D9B7DEF8FE99528B52FFD)
prepare() {
cd ${pkgname}-${pkgver}
patch -Np1 -i ../fix_perf.patch
# avoid error on tests without static libs, we use LD_LIBRARY_PATH
sed '/build static library to build tests/d' -i build/cmake/CMakeLists.txt
sed 's/libzstd_static/libzstd_shared/g' -i build/cmake/tests/CMakeLists.txt
}
build() {
cd ${pkgname}-${pkgver}
export CFLAGS+=' -ffat-lto-objects'
export CXXFLAGS+=' -ffat-lto-objects'
cmake -S build/cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DZSTD_BUILD_CONTRIB=ON \
-DZSTD_BUILD_STATIC=OFF \
-DZSTD_BUILD_TESTS=ON \
-DZSTD_PROGRAMS_LINK_SHARED=ON
cmake --build build
}
check() {
cd ${pkgname}-${pkgver}
export LD_LIBRARY_PATH="$(pwd)/build/lib"
ctest -VV --test-dir build
}
package() {
cd ${pkgname}-${pkgver}
DESTDIR="${pkgdir}" cmake --install build
ln -sf /usr/bin/zstd "${pkgdir}/usr/bin/zstdmt"
install -Dm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
}
# vim: ts=2 sw=2 et:

42
zstd/fix_perf.patch Normal file
View File

@ -0,0 +1,42 @@
From eceecc5b2cade40e2ffe7e4ff4c7d2e16883961a Mon Sep 17 00:00:00 2001
From: Yann Collet <cyan@fb.com>
Date: Sun, 19 Jun 2022 14:52:32 -0700
Subject: [PATCH] removed explicit compilation standard from cmake script
it's not expected to be useful
and can actually lead to subtle side effects
such as #3163.
---
.../cmake/CMakeModules/AddZstdCompilationFlags.cmake | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake
index e23b9d603e..8d04458c3e 100644
--- a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake
+++ b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake
@@ -22,10 +22,12 @@ endfunction()
macro(ADD_ZSTD_COMPILATION_FLAGS)
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" OR MINGW) #Not only UNIX but also WIN32 for MinGW
- #Set c++11 by default
- EnableCompilerFlag("-std=c++11" false true)
- #Set c99 by default
- EnableCompilerFlag("-std=c99" true false)
+ # It's possible to select the exact standard used for compilation.
+ # It's not necessary, but can be employed for specific purposes.
+ # Note that zstd source code is compatible with both C++98 and above
+ # and C-gnu90 (c90 + long long + variadic macros ) and above
+ # EnableCompilerFlag("-std=c++11" false true) # Set C++ compilation to c++11 standard
+ # EnableCompilerFlag("-std=c99" true false) # Set C compiation to c99 standard
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND MSVC)
# clang-cl normally maps -Wall to -Weverything.
EnableCompilerFlag("/clang:-Wall" true true)
@@ -48,7 +50,7 @@ macro(ADD_ZSTD_COMPILATION_FLAGS)
if (CMAKE_GENERATOR MATCHES "Visual Studio" AND ACTIVATE_MULTITHREADED_COMPILATION)
EnableCompilerFlag("/MP" true true)
endif ()
-
+
# UNICODE SUPPORT
EnableCompilerFlag("/D_UNICODE" true true)
EnableCompilerFlag("/DUNICODE" true true)