Go to file
Ilya Leoshkevich d3cfb2fb77 Fix s390 build
The goal of this patch is to make isa-l testsuite pass on s390 with
minimal changes to the library. The one and only reason isa-l does not
work on s390 at the moment is that s390 is big-endian, and isa-l
assumes little-endian at a lot of places.

There are two flavors of this: loading/storing integers from/to
memory, and overlapping structs. Loads/stores are already helpfully
wrapped by unaligned.h header, so replace the functions there with
endianness-aware variants. Solve struct member overlap by reversing
their order on big-endian.

Also, fix a couple of usages of uninitialized memory in the testsuite
(found with MemorySanitizer).

Fixes s390x part of #188.

Change-Id: Iaf14a113bd266900192cc8b44212f8a47a8c7753
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
2022-01-04 11:06:17 -07:00
.github/workflows Fix check signoff for github actions 2021-12-30 16:49:27 -07:00
crc build: Remove unneeded file types.h 2021-06-10 09:35:43 -07:00
doc doc: Update minimum nasm recommendation and details 2021-05-27 17:44:31 -07:00
erasure_code Fix s390 build 2022-01-04 11:06:17 -07:00
examples/ec ex: Add makefile to build examples from installed lib 2021-06-03 17:53:20 -07:00
igzip Fix s390 build 2022-01-04 11:06:17 -07:00
include Fix s390 build 2022-01-04 11:06:17 -07:00
mem Fix s390 build 2022-01-04 11:06:17 -07:00
programs build: Bump revision to 2.30 2020-11-06 18:08:16 -07:00
raid build: Remove unneeded file types.h 2021-06-10 09:35:43 -07:00
tests/fuzz Fix s390 build 2022-01-04 11:06:17 -07:00
tools Add -arch to unsupported arguments in [ny]asm-filters 2021-10-12 15:53:32 -07:00
.gitignore build: Add gitignore 2019-05-01 16:48:10 -07:00
.travis.yml build: Change travis osx to use std brew 2021-05-21 19:44:39 -07:00
autogen.sh Initial commit isa-l v2.14.1 2016-02-24 14:54:34 -07:00
configure.ac build: Bump revision to 2.30 2020-11-06 18:08:16 -07:00
CONTRIBUTING.md doc: Update mailing list link 2019-10-16 17:13:54 -07:00
Doxyfile build: Remove unneeded file types.h 2021-06-10 09:35:43 -07:00
isa-l.def build: Fix missing ms function export 2021-06-07 18:30:08 -07:00
isa-l.rc build: Add ms rc file to put extra metatdata on dll 2021-09-02 18:27:51 -07:00
libisal.pc.in Initial commit isa-l v2.14.1 2016-02-24 14:54:34 -07:00
LICENSE build: Bump revision to 2.19 2017-06-26 04:47:40 -04:00
make.inc build: Change include shortcut D to not conflict with env 2021-09-14 19:18:31 -07:00
Makefile.am build: Change include shortcut D to not conflict with env 2021-09-14 19:18:31 -07:00
Makefile.nmake mem: Move new mem_zero_detect function to avx2 2021-09-30 17:47:57 -07:00
Makefile.unx build: Add auto regenerate of nmake file 2020-03-10 14:00:05 -07:00
README.md add help2man as optional package 2021-11-29 10:17:52 -07:00
Release_notes.txt Update release notes for v2.30 additions 2020-11-04 14:59:33 -07:00

Intel(R) Intelligent Storage Acceleration Library

Build Status Package on conda-forge

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:

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 tests
  • make tests : create additional unit tests
  • make perfs : create included performance tests
  • make ex : build examples
  • make other : build other utilities such as compression file tests
  • make doc : build API manual