Don't bother checking for gzgets(), as we don't use it, and don't even

need to use its presence in zlib as a proxy for "not the crufty old zlib
that comes with some versions of X11".

Do, however, check for inflatePrime() there, instead, just in case the
crufty old zlib that comes with some versions of X11 lack it; this is to
prevent the configure script from assuming a shiny new zlib by testing
with a non-X11 program, causing the build to fail when you build
Wireshark.

svn path=/trunk/; revision=36969
This commit is contained in:
Guy Harris 2011-05-03 04:48:02 +00:00
parent 89b6793472
commit 7eb4723184
2 changed files with 61 additions and 90 deletions

View File

@ -701,92 +701,66 @@ AC_DEFUN([AC_WIRESHARK_ZLIB_CHECK],
then
#
# Well, we at least have the zlib header file.
# We link with zlib to support uncompression of
# gzipped network traffic, e.g. in an HTTP request
# or response body.
#
# Check for "gzgets()" in zlib, because we need it, but
# some older versions of zlib don't have it. It appears
# from the zlib ChangeLog that any released version of zlib
# with "gzgets()" should have the other routines we
# depend on, such as "gzseek()", "gztell()", and "zError()".
#
# Another reason why we require "gzgets()" is that
# some versions of zlib that didn't have it, such
# as 1.0.8, had a bug in "gzseek()" that meant that it
# doesn't work correctly on uncompressed files; this
# means we cannot use version 1.0.8. (Unfortunately,
# that's the version that comes with recent X11 source,
# and many people who install XFree86 on their Slackware
# boxes don't realize that they should configure it to
# use the native zlib rather than building and installing
# the crappy old version that comes with XFree86.)
#
# I.e., we can't just avoid using "gzgets()", as
# versions of zlib without "gzgets()" are likely to have
# a broken "gzseek()".
#
AC_CHECK_LIB(z, gzgets,
[
if test "x$zlib_dir" != "x"
then
#
# Put the "-I" and "-L" flags for zlib at
# the beginning of CFLAGS, CPPFLAGS, and
# LIBS.
#
LIBS=""
AC_WIRESHARK_ADD_DASH_L(LIBS, $zlib_dir/lib)
LIBS="$LIBS -lz $wireshark_save_LIBS"
else
LIBS="-lz $LIBS"
fi
AC_DEFINE(HAVE_LIBZ, 1, [Define to use libz library])
],[
if test "x$zlib_dir" != "x"
then
#
# Restore the versions of CFLAGS, CPPFLAGS,
# and LIBS before we added the "-with-zlib="
# directory, as we didn't actually find
# zlib there, or didn't find a zlib that
# contains gzgets there.
#
CFLAGS="$wireshark_save_CFLAGS"
CPPFLAGS="$wireshark_save_CPPFLAGS"
LIBS="$wireshark_save_LIBS"
fi
want_zlib=no
])
fi
if test "x$zlib_dir" != "x"
then
#
# Put the "-I" and "-L" flags for zlib at
# the beginning of CFLAGS, CPPFLAGS, and
# LIBS.
#
LIBS=""
AC_WIRESHARK_ADD_DASH_L(LIBS, $zlib_dir/lib)
LIBS="$LIBS -lz $wireshark_save_LIBS"
else
LIBS="-lz $LIBS"
fi
AC_DEFINE(HAVE_LIBZ, 1, [Define to use libz library])
if test "x$want_zlib" != "xno"
then
#
# Well, we at least have the zlib header file and a zlib
# with "gzgets()".
# Check for "inflatePrime()" in zlib, which we need
# in order to read compressed capture files.
#
# Now check for "gzgets()" in zlib when linking with the
# linker flags for GTK+ applications; people often grab
# XFree86 source and build and install it on their systems,
# and they appear sometimes to misconfigure XFree86 so that,
# even on systems with zlib, it assumes there is no zlib,
# so the XFree86 build process builds and installs its
# own zlib in the X11 library directory.
AC_CHECK_FUNCS(inflatePrime)
if test "x$ac_cv_func_inflatePrime" = "xyes" ; then
#
# Now check for "inflatePrime()" in zlib when
# linking with the linker flags for GTK+
# applications; people often grab XFree86 source
# and build and install it on their systems,
# and they appear sometimes to misconfigure
# XFree86 so that, even on systems with zlib,
# it assumes there is no zlib, so the XFree86
# build process builds and installs its
# own zlib in the X11 library directory.
#
# The zlib in at least some versions of XFree86
# is an older version that may lack "inflatePrime()",
# and that's the zlib with which Wireshark gets
# linked, so the build of Wireshark fails.
#
AC_MSG_CHECKING([for inflatePrime missing when linking with X11])
AC_TRY_LINK_FUNC(inflatePrime, AC_MSG_RESULT(no),
[
AC_MSG_RESULT(yes)
AC_MSG_ERROR(old zlib found when linking with X11 - get rid of old zlib.)
])
fi
else
#
# The XFree86 zlib is an older version that lacks
# "gzgets()", and that's the zlib with which Wireshark
# gets linked, so the build of Wireshark fails.
# Restore the versions of CFLAGS, CPPFLAGS,
# and LIBS before we added the "-with-zlib="
# directory, as we didn't actually find
# zlib there.
#
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$GTK_LIBS -lz $LIBS"
AC_MSG_CHECKING([for gzgets missing when linking with X11])
AC_TRY_LINK_FUNC(gzgets, AC_MSG_RESULT(no),
[
AC_MSG_RESULT(yes)
AC_MSG_ERROR(old zlib found when linking with X11 - get rid of old zlib.)
])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
CFLAGS="$wireshark_save_CFLAGS"
CPPFLAGS="$wireshark_save_CPPFLAGS"
LIBS="$wireshark_save_LIBS"
want_zlib=no
fi
])

View File

@ -1235,11 +1235,11 @@ else
fi
dnl zlib check
AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
AC_ARG_WITH(zlib,
AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
[use zlib (located in directory DIR, if supplied) to read compressed data. @<:@default=yes, if available@:>@]),
[use zlib (located in directory DIR, if supplied) for gzip compression and decompression . @<:@default=yes, if available@:>@]),
[
if test $withval = no
then
@ -1264,17 +1264,14 @@ else
AC_MSG_RESULT(yes)
AC_WIRESHARK_ZLIB_CHECK
if test "x$want_zlib" = "xno" ; then
AC_MSG_RESULT(zlib not found - disabling compressed capture file support)
AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
else
if test "x$ac_cv_func_inflatePrime" = "xno" ; then
AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
fi
fi
fi
if test "x$want_zlib" != "xno" ; then
AC_CHECK_LIB(z, inflatePrime,
[
AC_DEFINE(HAVE_INFLATEPRIME, 1, [Define if we have inflatePrime])
])
fi
dnl pcre check
AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)