* Extract out common portion of `lib/Makefile` into `lib/libzstd.mk`. Most relevantly, the way we find library files. * Use `lib/libzstd.mk` in the other Makefiles instead of repeating the same code. * Add a test `tests/test-variants.sh` that checks that the builds of `make -C programs allVariants` are correct, and run it in Actions. * Adds support for ASM files in the CMake build. The Meson build is not updated because it lists every file in zstd, and supports ASM off the bat, so the Huffman ASM commit will just add the ASM file to the list. The Visual Studios build is not updated because I'm not adding ASM support to Visual Studios yet.
Zstd in the Linux Kernel
This directory contains the scripts needed to transform upstream zstd into the version imported into the kernel. All the transforms are automated and tested by our continuous integration.
Upgrading Zstd in the Linux Kernel
cdinto this directory.- Run
make libzstdand read the output. Make sure that all the diffs printed and changes made by the script are correct. - Run
make testand ensure that it passes. - Import zstd into the Linux Kernel
make import LINUX=/path/to/linux/repo - Inspect the diff for sanity.
- Check the Linux Kernel history for zstd. If any patches were made to the kernel version of zstd, but not to upstream zstd, then port them upstream if necessary.
- Test the diff. Benchmark if necessary. Make sure to test multiple architectures: At least x86, i386, and arm.
- Submit the patch to the LKML.