[Spice-devel] [PATCH spice-common] spice-deps: Make LZ4 check depending on function
Frediano Ziglio
fziglio at redhat.com
Thu Nov 24 11:25:57 UTC 2016
>
> On Thu, 2016-11-24 at 05:18 -0500, Frediano Ziglio wrote:
> > > LZ4 changed versioning scheme from r131 to v1.7.3 making our
> > > configure
> > > fail with (1.7.3 < 129).
> > >
> > > Switch from version checking to checking that the necessary
> > > function
> > > is available.
> > > ---
> > > m4/spice-deps.m4 | 6 ++++--
> > > 1 file changed, 4 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/m4/spice-deps.m4 b/m4/spice-deps.m4
> > > index adedec4..43a7d4a 100644
> > > --- a/m4/spice-deps.m4
> > > +++ b/m4/spice-deps.m4
> > > @@ -185,12 +185,14 @@ AC_DEFUN([SPICE_CHECK_LZ4], [
> > >
> > > have_lz4="no"
> > > if test "x$enable_lz4" != "xno"; then
> > > - PKG_CHECK_MODULES([LZ4], [liblz4 >= 129], [have_lz4="yes"],
> > > [have_lz4="no"])
> > > + PKG_CHECK_MODULES([LZ4], [liblz4], [
> > > + AC_SEARCH_LIBS([LZ4_compress_default], [lz4],
> > > [have_lz4="yes"],
> > > [have_lz4="no"])],
> > > + [have_lz4="no"])
> > >
> >
> > have_lz4 by default is defined no so you could remove the assignment
> > to "no", but that's not a problem.
>
> ok
>
> >
> > Using AC_SEARCH_LIBS and [lz4] as library you are assuming you can
> > link lz4 library with -llz4 (more or less) but this can be a problem
> > if you are using MingW or another cross compiler that needs other
> > options. Maybe this is hidden by the fact that we just require a
> > library path and is already included by another library.
> > Did you try to cross compile the client for Windows?
>
> lz4 is not available for mingw so I haven't tried it
>
Mumble... but probably is worth adding in the future.
As far as I know the code should be something like
https://cgit.freedesktop.org/spice/spice-gtk/commit/?id=f697933524b19186cb078b5fca43f748fd68cf9f
replacing LIBS and CFLAGS temporarily before doing the function
check but it's quite ugly (well, lot of configure code looks ugly
to me...)
> >
> > > if test "x$have_lz4" = "xyes"; then
> > > AC_DEFINE(USE_LZ4, [1], [Define to build with lz4
> > > support])
> > > elif test "x$enable_lz4" = "xyes"; then
> > > - AC_MSG_ERROR([lz4 support requested but liblz4 could not
> > > be found])
> > > + AC_MSG_ERROR([lz4 support requested but liblz4 >= 129
> > > could not be
> > > found])
> > > fi
> > > fi
> > > AM_CONDITIONAL(HAVE_LZ4, test "x$have_lz4" = "xyes")
> >
> > Beside the cross compilation issue patch works for me.
> >
Frediano
More information about the Spice-devel
mailing list