[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