Commit Graph

8 Commits

Author SHA1 Message Date
Robert Marko 2116073f98 tools: libdeflate: backport fix for AVX-VNNI
Trying to compile with new new enough GCC but older binutils that dont
support AVX-VNNI will error out on the assembler, so backport an upstream
fix for it.

Fixes: 338b463e1e ("tools: libdeflate: update to 1.20")
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-04-15 13:52:37 +02:00
Robert Marko 338b463e1e tools: libdeflate: update to 1.20
Changes:
* Improved CRC-32 performance on recent x86 CPUs by adding
VPCLMULQDQ-accelerated implementations using 256-bit and 512-bit vectors.

* Improved Adler-32 performance on recent x86 CPUs by adding
VNNI-accelerated implementations using 256-bit and 512-bit vectors.

* Improved CRC-32 and Adler-32 performance on short inputs.

* Optimized the portable implementation of Adler-32.

* Added some basic optimizations for RISC-V.

* Dropped support for gcc versions older than v4.9 (released in 2014) and
clang versions older than v3.9 (released in 2016).

* Dropped support for CRC-32 acceleration on 32-bit ARM using the ARMv8 pmull or crc32 instructions.
This code only worked on CPUs that also have a 64-bit mode, and it was
already disabled on many compiler versions due to compiler limitations.
CRC-32 acceleration remains fully supported on 64-bit ARM.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-04-14 19:52:46 +02:00
Robert Marko 4c7591c426 tools: libdeflate: fetch source as tarball
libdeflate is currently intentionally being fetched via GIT.

However, with the move to using ZSTD to compress the cloned GIT repo
tarballs it means that we would first need to compile ZSTD.
But that means that we need to be able to unpack gzipped tarballs first
which we currently do by using libdeflate-gzip.
So, in order to do so lets fetch libdeflate as a tarball, use gzip to
extract it and then use libdeflate as regular for all other tools.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-04-06 11:24:18 +02:00
Nick Hainke c0f1980adf tools/libdeflate: update to 1.19
Release Notes:
https://github.com/ebiggers/libdeflate/blob/master/NEWS.md#version-119

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-10-12 00:23:03 +02:00
Nick Hainke 3547862d86
tools/libdeflate: update to 1.18
Release Notes:
https://github.com/ebiggers/libdeflate/blob/master/NEWS.md#version-118

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-04-17 19:04:18 +02:00
Olliver Schinagl 62e150949f
libdeflate: Avoid circular dependencies
CMake depends on (libdeflate-)gunzip, libdeflate depends on Cmake, so we
can't win.

Luckily libdeflate is _very_ easy to build, without any build system, so
lets just manually compile it and be done with it.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-01-17 21:01:54 +01:00
Olliver Schinagl 9a59bf3528
libdeflate: Update to v1.17
The new version of libdeflate makes it a little easier to build it
without any build system.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2023-01-17 20:55:18 +01:00
Markus Stockhausen a51ca085bf tools: Add gzip-libdeflate advanced compressor
Several devices provide U-Boot versions with only gzip compressed kernel
support (e.g. Realtek switches). This compression method produces larger
images than lzma. To save space on flash and avoid going the hard way with
lzma-loader we can make use of enhanced gzip tool based on libdeflate
compression library from https://github.com/ebiggers/libdeflate. It
keeps 100% deflate/gzip compatibility while improving compression ratio.
The image can be unpacked by the default inflate routines inside U-Boot.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
[Switched to v1.15 and made it work with cmake]
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Reviewed-by: Robert Marko <robimarko@gmail.com>
Reviewed-by: Rosen Penev <rosenp@gmail.com>
Reviewed-by: Sander Vanheule <sander@svanheule.net>
2023-01-02 10:15:37 +01:00