add zstd to fix perf issue
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
91dc09ba3e
commit
2f1878ab42
2 changed files with 106 additions and 0 deletions
64
zstd/PKGBUILD
Normal file
64
zstd/PKGBUILD
Normal 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
42
zstd/fix_perf.patch
Normal 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)
|
Loading…
Add table
Add a link
Reference in a new issue