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
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…
Reference in New Issue
Block a user