mirror of
https://github.com/intel/isa-l.git
synced 2025-11-01 21:13:09 +01:00
d32d3f69022939a8de46807362d4062d5f462f15
ec_base.h has several variables, which were defined with a global scope. Exactly those global variables caused issues on linking a static compilation of libisal.a to a shared lib. Adding -fPIC to CFLAGS somehow didn't help. As all the variables in ec_base.h are only included and used by a single C file, all of these can be (file) static, which then will also helps the compiler to make further optimizations. And which also solves the issue to link the static libisal to a shared lib. Also make the variables const, as these are constants and must be modified. Change-Id: I2b8141dabc1c7a528401f2778cdbdbed6c93c36b Signed-off-by: Bernd Schubert <bschubert@ddn.com>
Intel(R) Intelligent Storage Acceleration Library
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.
Also see:
- ISA-L for updates.
- For crypto functions see isa-l_crypto on github.
- The github wiki including a list of distros/ports offering binary packages.
- ISA-L mailing list.
- Contributing.
Building ISA-L
Prerequisites
- Assembler: nasm v2.11.01 or later (nasm v2.13 or better suggested for building in AVX512 support) or yasm version 1.2.0 or later.
- Compiler: gcc, clang, icc or VC compiler.
- Make: GNU 'make' or 'nmake' (Windows).
- Optional: Building with autotools requires autoconf/automake packages.
Autotools
To build and install the library with autotools it is usually sufficient to run:
./autogen.sh
./configure
make
sudo make install
Makefile
To use a standard makefile run:
make -f Makefile.unx
Windows
On Windows use nmake to build dll and static lib:
nmake -f Makefile.nmake
Other make targets
Other targets include:
make check: create and run testsmake tests: create additional unit testsmake perfs: create included performance testsmake ex: build examplesmake other: build other utilities such as compression file testsmake doc: build API manual
Description
Languages
C
59.2%
Assembly
37.9%
Makefile
1.1%
CMake
0.8%
Shell
0.6%
Other
0.4%