|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2.5 1/5] libxenguest: support zstd compressed kernels
Jan Beulich writes ("Re: [PATCH v2.5 1/5] libxenguest: support zstd compressed
kernels"):
> On 25.01.2021 14:51, Ian Jackson wrote:
> > I mean, the parts where you examine libzstd_PKG_ERRORS.
>
> The only thing I make use of is it being (non-)empty. Do you
> really think that's a problem?
It's highly unusual. Conceivably it might be empty even if
pkg-config failed.
> > AC_CHECK_LIB([lzo2], [lzo1x_decompress], [zlib="$zlib -DHAVE_LZO1X
> > -llzo2"])
> > +PKG_CHECK_MODULES([libzstd], [libzstd], [zlib="$zlib -DHAVE_ZSTD
> > $libzstd_CFLAGS $libzstd_LIBS"])
>
> No, that's what I did initially, resulting in libzstd becoming
> a strict requirement (i.e. configure failing if it's absent),
> as reported by Michael Young.
Well how about passing "true" for the fourth argument then ?
> > I mean the inclusion of $libzstd_PKG_ERRORS in the output.
>
> I see no point in the warning without including this. In fact
> I added the AC_MSG_WARN() just so that the contents of this
> variable (and hence an indication to the user of what to do)
> was easily accessible.
This is not usual autoconf practice. The usual approach is to
consider that missing features are just to be dealt with with a
minimum of fuss.
> The [true] in the 4th argument is there to prevent the default
> behavior of failing the configure process altogether. You'd
> see autoconf's default there only if the argument was absent.
I see. Thanks for correcting me. See above.
> > If you want a warning I think it should be a call to AC_MSG_WARN in
> > ACTION-IF-NOT-FOUND.
>
> I didn't to avoid the nesting of things yielding even harder
> to read code.
In your code it's nested too, just in an if rather than the in the
macro argument - but with a separate condition. Please do it the
"usual autoconf way".
> > This suggests to me that a warning for missing zstd is not necessarily
> > a good idea unless it is conditional for x86.
>
> Well, okay, I'll drop the warning then.
Thanks.
> > IDK what the zstd-defined endianness is. I guess it must be LE for
> > your patch to work on x86.
>
> This field is not part of the zstd output, but gets appended
> to the output by the Linux kernel build system. IOW its
> endianness gets defined by Linux; the text in the respective
> Makefile says "littleendian".
How odd. OK.
> > How unfortunate. I have also hunted for some existing code and also
> > didn't find anything suitably general.
> >
> > I did find this, open-coded in xg_dom_core.c:xc_dom_check_gzip:
> >
> > unziplen = (size_t)gzlen[3] << 24 | gzlen[2] << 16 | gzlen[1] << 8 |
> > gzlen[0];
>
> Okay, I'll copy that then.
Could you make a macro or inline function in xg_private.h[1] rather
than open-coding a copy, please ?
[1] Or, if you prefer, a header with wider scope.
Thanks,
Ian.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |