Hi, On Fri, 2020-09-18 at 15:17 +0200, Mark Wielaard wrote: > Newer kernels might be compressed using ZSTD add support to libdwfl > open so we can can automatically read ZSTD compressed files and > kernel images. > > The support is very similar to the bzip2 and lzma support, but > slightly different. With a bit more macros it could maybe have used > the gzip.c USE_INFLATE code path. But I felt that the many macros > didn't really help understand the code. So the unzip routine has a > slightly different code path for ZSTD.
This seems to work as intended. I pushed it with one small tweak we discussed on irc: diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 253ae069..344db7c1 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -8,6 +8,7 @@ (unzip): Change pread_retry failure from zlib_fail to fail. Add ZSTD support. * open.c (decompress): Also try __libdw_unzstd. + * linux-kernel-modules.c (check_suffix): Also TRY ".ko.zst". 2020-08-20 Dmitry V. Levin <l...@altlinux.org> diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c index 548cb56f..6edb27f2 100644 --- a/libdwfl/linux-kernel-modules.c +++ b/libdwfl/linux-kernel-modules.c @@ -357,6 +357,9 @@ check_suffix (const FTSENT *f, size_t namelen) #if USE_LZMA TRY (".ko.xz"); #endif +#if USE_ZSTD + TRY (".ko.zst"); +#endif return 0; This makes sure that once kernel modules are also zstd compressed we'll pick them up automagically (they currently aren't but the check is a simple memcmp and the extension is standard). Cheers, Mark