[Spice-devel] [PATCH spice-common] spice-deps: Make LZ4 check depending on function

Frediano Ziglio fziglio at redhat.com
Thu Nov 24 10:18:11 UTC 2016


> 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.

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?

>        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