mirror of
https://github.com/intel/isa-l.git
synced 2025-02-22 07:01:10 +01:00

1. Revert "x86: Generate .note.gnu.property section for ELF output" This reverts commit 8074e3fe1b9398a9d3b717267790050fc5041594, which is a hack to work around the old nasm which doesn't support section .note.gnu.property note alloc noexec align=8 This hack doesn't work for downstream, like: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2040091 2. If Intel CET is enabled, require nasm with note section support to add section .note.gnu.property note alloc noexec align=N to assembly codes. Verified with $ CC="gcc -Wl,-z,cet-report=error -fcf-protection" CXX="g++ -Wl,-z,cet-report=error -fcf-protection" .../configure x86_64-linux $ make -j8 on Tiger Lake. Change-Id: I6d66fe6fd054420d7fde35b1508ca9f09defdeca Signed-off-by: H.J. Lu <hjl.tools@gmail.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.
- igzip - A command line application like gzip, accelerated with ISA-L.
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 as well as a list of language bindings.
- ISA-L mailing list.
- Contributing.
Building ISA-L
Prerequisites
- Make: GNU 'make' or 'nmake' (Windows).
- Optional: Building with autotools requires autoconf/automake packages.
- Optional: Manual generation requires help2man package.
x86_64:
- Assembler: nasm. Version 2.15 or later suggested (other versions of nasm and yasm may build but with limited function support.
- Compiler: gcc, clang, icc or VC compiler.
aarch64:
- Assembler: gas v2.24 or later.
- Compiler: gcc v4.7 or later.
other:
- Compiler: Portable base functions are available that build with most C compilers.
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
or see details on setting up environment here.
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.3%
Assembly
38.6%
Makefile
1%
Shell
0.6%
PHP
0.3%
Other
0.2%