Skip to content

Commit

Permalink
It appears that, at least with the 2.6.27.5 kernel (and maybe the 2.6.27
Browse files Browse the repository at this point in the history
kernel in general), <linux/wireless.h> includes <net/if.h> and you get
multiple-definition errors if you include <net/if.h> before it.  When
checking for linux/wireless.h, try first without net/if.h and then with
net/if.h.
  • Loading branch information
yuguy committed Dec 14, 2008
1 parent 4486bda commit ad46bc2
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 4 deletions.
71 changes: 70 additions & 1 deletion configure
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#! /bin/sh
# From configure.in Revision: 1.164 .
# From configure.in Revision: 1.165 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61.
#
Expand Down Expand Up @@ -6602,6 +6602,70 @@ echo "$as_me: error: cannot determine linux version when cross-compiling" >&2;}
echo "$as_me: error: version 2 or higher required; see the INSTALL doc for more info" >&2;}
{ (exit 1); exit 1; }; }
fi
#
# First try configuring without <net/if.h>, and then try with
# <net/if.h>; in some kernel versions, linux/wireless.h includes
# net/if.h, and in other versions, it doesn't.
#
for ac_header in linux/wireless.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
{ echo "$as_me:$LINENO: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <sys/socket.h>
#include <linux/types.h>
#include <$ac_header>
_ACEOF
rm -f conftest.$ac_objext
if { (ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_compile") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
eval "$as_ac_Header=yes"
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
eval "$as_ac_Header=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
ac_res=`eval echo '${'$as_ac_Header'}'`
{ echo "$as_me:$LINENO: result: $ac_res" >&5
echo "${ECHO_T}$ac_res" >&6; }
if test `eval echo '${'$as_ac_Header'}'` = yes; then
cat >>confdefs.h <<_ACEOF
#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
else
for ac_header in linux/wireless.h
do
Expand Down Expand Up @@ -6660,6 +6724,11 @@ if test `eval echo '${'$as_ac_Header'}'` = yes; then
#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
fi
done
fi
done
Expand Down
18 changes: 15 additions & 3 deletions configure.in
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
dnl @(#) $Header: /tcpdump/master/libpcap/configure.in,v 1.164 2008-11-19 11:13:46 guy Exp $ (LBL)
dnl @(#) $Header: /tcpdump/master/libpcap/configure.in,v 1.165 2008-12-14 20:17:14 guy Exp $ (LBL)
dnl
dnl Copyright (c) 1994, 1995, 1996, 1997
dnl The Regents of the University of California. All rights reserved.
dnl
dnl Process this file with autoconf to produce a configure script.
dnl

AC_REVISION($Revision: 1.164 $)
AC_REVISION($Revision: 1.165 $)
AC_PREREQ(2.50)
AC_INIT(pcap.c)

Expand Down Expand Up @@ -357,10 +357,22 @@ linux)
if test $ac_cv_linux_vers -lt 2 ; then
AC_MSG_ERROR(version 2 or higher required; see the INSTALL doc for more info)
fi
AC_CHECK_HEADERS(linux/wireless.h, [], [],
#
# First try configuring without <net/if.h>, and then try with
# <net/if.h>; in some kernel versions, linux/wireless.h includes
# net/if.h, and in other versions, it doesn't.
#
AC_CHECK_HEADERS(linux/wireless.h, [],
[
AC_CHECK_HEADERS(linux/wireless.h, [], [],
[
#include <sys/socket.h>
#include <net/if.h>
#include <linux/types.h>
])
],
[
#include <sys/socket.h>
#include <linux/types.h>
])
AC_LBL_TPACKET_STATS
Expand Down

0 comments on commit ad46bc2

Please sign in to comment.