[packages/libisal] - new
qboosh
qboosh at pld-linux.org
Tue May 26 21:49:34 CEST 2020
commit f4cd49381e604dd3e584e99c778b0b967c2c9c30
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Tue May 26 21:50:02 2020 +0200
- new
isa-l-x86.patch | 43 ++++++++++++++++++
libisal.spec | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 175 insertions(+)
---
diff --git a/libisal.spec b/libisal.spec
new file mode 100644
index 0000000..5f6a7ff
--- /dev/null
+++ b/libisal.spec
@@ -0,0 +1,132 @@
+#
+# Conditional build:
+%bcond_without static_libs # static library
+#
+Summary: Optimized low-level functions library for storage systems
+Summary(pl.UTF-8): Biblioteka zoptymalizowanych funkcji niskopoziomowych do systemów przechowywania danych
+Name: libisal
+Version: 2.29.0
+Release: 1
+License: BSD
+Group: Libraries
+#Source0Download: https://github.com/intel/isa-l/releases
+Source0: https://github.com/intel/isa-l/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: c24762075dde2a552a041d7f47c3af8a
+Patch0: isa-l-x86.patch
+URL: https://github.com/01org/isa-l
+BuildRequires: autoconf >= 2.69
+BuildRequires: automake >= 1:1.11
+BuildRequires: libtool >= 2:2
+%ifarch %{ix86} %{x8664} x32
+# nasm or yasm, whichever has higher "feature number" (max=10 for AVX512+)
+BuildRequires: nasm >= 2.13
+BuildRequires: yasm >= 1.2.0
+%endif
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+ISA-L is a collection of optimized low-level functions targeting
+storage applications. ISA-L includes:
+ - Erasure codes - fast block Reed-Solomon type erasure codes for any
+ encode/decode matrix in GF(2^8).
+ - CRC - Fast implementations of cyclic redundancy check. Six
+ different polynomials supported.
+ - iscsi32, ieee32, t10dif, ecma64, iso64, jones64.
+ - RAID - calculate and operate on XOR and P+Q parity found in common
+ RAID implementations.
+ - Compression - Fast deflate-compatible data compression.
+ - De-compression - Fast inflate-compatible data compression.
+
+%description -l pl.UTF-8
+ISA-L to zbiór zoptymalizowanych funkcji niskopoziomowych,
+przeznaczonych do zastosowań związanych z przechowywaniem danych.
+Biblioteka zawiera:
+- kody korekcyjne (erasure codes) - szybkie kody korekcyjne typu
+ Reeda-Solomona dla dowolnej macierzy kodowania/dekodowania w GF(2^8)
+- CRC - szybkie implementacje cyklicznej kontroli nadmiarowej;
+ obsługiwane jest sześć różnych wielomianów
+- iscsi32, ieee32, t10dif, ecma64, iso64, jones64
+- RAID - obliczanie i operacje na parzystości XOR oraz P+Q, używanych
+ w popularnych implementacjach RAID
+- kompresja - szybka kompresja danych zgodna z metodą deflate
+- dekompresja - szybka kompresja danych zgodna z metodą inflate
+
+%package devel
+Summary: Header files for ISA-L library
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki ISA-L
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+Header files for ISA-L library.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki ISA-L.
+
+%package static
+Summary: Static ISA-L library
+Summary(pl.UTF-8): Statyczna biblioteka ISA-L
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description static
+Static ISA-L library.
+
+%description static -l pl.UTF-8
+Statyczna biblioteka ISA-L.
+
+%prep
+%setup -q -n isa-l-%{version}
+%patch0 -p1
+
+%build
+%{__libtoolize}
+%{__aclocal}
+%{__autoconf}
+%{__automake}
+%configure \
+ --disable-silent-rules \
+ %{!?with_static_libs:--disable-static}
+%{__make} \
+%ifarch %{ix86}
+ yasm_args="-f elf32" \
+%endif
+%ifarch x32
+ yasm_args="-f elfx32"
+%endif
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+# no external dependencies, obsoleted by pkg-config
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(644,root,root,755)
+%doc LICENSE README.md Release_notes.txt
+%attr(755,root,root) %{_bindir}/igzip
+%attr(755,root,root) %{_libdir}/libisal.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libisal.so.2
+%{_mandir}/man1/igzip.1*
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libisal.so
+%{_includedir}/isa-l
+%{_includedir}/isa-l.h
+%{_pkgconfigdir}/libisal.pc
+
+%if %{with static_libs}
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libisal.a
+%endif
diff --git a/isa-l-x86.patch b/isa-l-x86.patch
new file mode 100644
index 0000000..5457ac8
--- /dev/null
+++ b/isa-l-x86.patch
@@ -0,0 +1,43 @@
+ec_encode_data_{sse,avx,avx2} refer to asm routines available only for elf64
+--- isa-l-2.29.0/erasure_code/ec_highlevel_func.c.orig 2020-02-27 02:29:49.000000000 +0100
++++ isa-l-2.29.0/erasure_code/ec_highlevel_func.c 2020-05-26 20:43:45.280001729 +0200
+@@ -29,7 +29,7 @@
+ #include <limits.h>
+ #include "erasure_code.h"
+
+-#if __x86_64__ || __i386__ || _M_X64 || _M_IX86
++#if __x86_64__ || _M_X64
+ void ec_encode_data_sse(int len, int k, int rows, unsigned char *g_tbls, unsigned char **data,
+ unsigned char **coding)
+ {
+--- isa-l-2.29.0/erasure_code/ec_multibinary.asm.orig 2020-02-27 02:29:49.000000000 +0100
++++ isa-l-2.29.0/erasure_code/ec_multibinary.asm 2020-05-26 21:01:48.970797539 +0200
+@@ -36,6 +36,9 @@
+ default rel
+ [bits 64]
+
++ extern ec_encode_data_sse
++ extern ec_encode_data_avx
++ extern ec_encode_data_avx2
+ extern ec_encode_data_update_sse
+ extern ec_encode_data_update_avx
+ extern ec_encode_data_update_avx2
+@@ -62,9 +65,6 @@
+ extern gf_vect_dot_prod_sse
+ extern gf_vect_dot_prod_avx
+ extern gf_vect_dot_prod_avx2
+-extern ec_encode_data_sse
+-extern ec_encode_data_avx
+-extern ec_encode_data_avx2
+
+ mbin_interface ec_encode_data
+ mbin_interface gf_vect_dot_prod
+@@ -73,7 +73,7 @@
+ mbin_interface gf_vect_mad
+
+ %ifidn __OUTPUT_FORMAT__, elf32
+- mbin_dispatch_init5 ec_encode_data, ec_encode_data_base, ec_encode_data_sse, ec_encode_data_avx, ec_encode_data_avx2
++ mbin_dispatch_init2 ec_encode_data, ec_encode_data_base
+ mbin_dispatch_init5 gf_vect_dot_prod, gf_vect_dot_prod_base, gf_vect_dot_prod_sse, gf_vect_dot_prod_avx, gf_vect_dot_prod_avx2
+ mbin_dispatch_init2 gf_vect_mul, gf_vect_mul_base
+ mbin_dispatch_init2 ec_encode_data_update, ec_encode_data_update_base
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/libisal.git/commitdiff/f4cd49381e604dd3e584e99c778b0b967c2c9c30
More information about the pld-cvs-commit
mailing list