From: Shane Kerr Date: Mon, 4 Jun 2007 14:18:08 +0000 (+0000) Subject: Fix DHCP build on Slackware with 2.4 kernel. X-Git-Tag: v4_0_0a2~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f125dc8b417a3883ed13c365afbcf12cf8248b25;p=thirdparty%2Fdhcp.git Fix DHCP build on Slackware with 2.4 kernel. See RT ticket #16918 for more information. --- diff --git a/configure b/configure index 5e00ff964..75b9504da 100755 --- a/configure +++ b/configure @@ -4345,18 +4345,23 @@ fi # figure out what IPv4 interface code to use -if test "${ac_cv_header_linux_filter_h+set}" = set; then - { echo "$as_me:$LINENO: checking for linux/filter.h" >&5 -echo $ECHO_N "checking for linux/filter.h... $ECHO_C" >&6; } -if test "${ac_cv_header_linux_filter_h+set}" = set; then + +for ac_header in linux/types.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { 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 fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_linux_filter_h" >&5 -echo "${ECHO_T}$ac_cv_header_linux_filter_h" >&6; } +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking linux/filter.h usability" >&5 -echo $ECHO_N "checking linux/filter.h usability... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4364,7 +4369,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -#include +#include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" @@ -4396,15 +4401,15 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking linux/filter.h presence" >&5 -echo $ECHO_N "checking linux/filter.h presence... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +#include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in @@ -4437,25 +4442,25 @@ echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: linux/filter.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: linux/filter.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: linux/filter.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: linux/filter.h: proceeding with the compiler's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: linux/filter.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: linux/filter.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: linux/filter.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: linux/filter.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: linux/filter.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: linux/filter.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: linux/filter.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: linux/filter.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: linux/filter.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: linux/filter.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: linux/filter.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: linux/filter.h: in the future, the compiler will take precedence" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## --------------------------------- ## ## Report this to dhcp-users@isc.org ## @@ -4464,27 +4469,90 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac +{ 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 + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + # needed for linux/filter.h on old systems + { echo "$as_me:$LINENO: checking for linux/filter.h" >&5 echo $ECHO_N "checking for linux/filter.h... $ECHO_C" >&6; } if test "${ac_cv_header_linux_filter_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_header_linux_filter_h=$ac_header_preproc + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef HAVE_LINUX_TYPES_H +#include +#endif + + +#include +_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 + ac_cv_header_linux_filter_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_linux_filter_h=no fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_linux_filter_h" >&5 -echo "${ECHO_T}$ac_cv_header_linux_filter_h" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_linux_filter_h" >&5 +echo "${ECHO_T}$ac_cv_header_linux_filter_h" >&6; } if test $ac_cv_header_linux_filter_h = yes; then + DO_LPF=1 +fi + + +if test -n "$DO_LPF" +then cat >>confdefs.h <<\_ACEOF #define USE_LPF 1 _ACEOF -fi - - -if test "${ac_cv_header_sys_dlpi_h+set}" = set; then +else + if test "${ac_cv_header_sys_dlpi_h+set}" = set; then { echo "$as_me:$LINENO: checking for sys/dlpi.h" >&5 echo $ECHO_N "checking for sys/dlpi.h... $ECHO_C" >&6; } if test "${ac_cv_header_sys_dlpi_h+set}" = set; then @@ -4615,15 +4683,19 @@ echo "${ECHO_T}$ac_cv_header_sys_dlpi_h" >&6; } fi if test $ac_cv_header_sys_dlpi_h = yes; then + DO_DLPI=1 +fi + + + if test -n "$DO_DLPI" + then cat >>confdefs.h <<\_ACEOF #define USE_DLPI 1 _ACEOF -fi - - -if test "${ac_cv_header_net_bpf_h+set}" = set; then + else + if test "${ac_cv_header_net_bpf_h+set}" = set; then { echo "$as_me:$LINENO: checking for net/bpf.h" >&5 echo $ECHO_N "checking for net/bpf.h... $ECHO_C" >&6; } if test "${ac_cv_header_net_bpf_h+set}" = set; then @@ -4754,14 +4826,21 @@ echo "${ECHO_T}$ac_cv_header_net_bpf_h" >&6; } fi if test $ac_cv_header_net_bpf_h = yes; then + DO_BPF=1 +fi + + + if test -n "$DO_BPF" + then cat >>confdefs.h <<\_ACEOF -#define USE_BPF 1 +#define USE_BPF "" _ACEOF -fi - + fi + fi +fi # Look for optional headers. if test "${ac_cv_header_net_if_dl_h+set}" = set; then diff --git a/configure.ac b/configure.ac index fd8b33e6c..e6bf322e6 100644 --- a/configure.ac +++ b/configure.ac @@ -55,16 +55,35 @@ AC_ARG_WITH(relay-pid-file, [File for dhcrelay process information.])) # figure out what IPv4 interface code to use -AC_CHECK_HEADER(linux/filter.h, +AC_CHECK_HEADERS(linux/types.h) # needed for linux/filter.h on old systems + +AC_CHECK_HEADER(linux/filter.h, DO_LPF=1, , +[ +#ifdef HAVE_LINUX_TYPES_H +#include +#endif +]) +if test -n "$DO_LPF" +then AC_DEFINE([USE_LPF], [1], - [Define to 1 to use the Linux Packet Filter interface code.])) -AC_CHECK_HEADER(sys/dlpi.h, - AC_DEFINE([USE_DLPI], [1], - [Define to 1 to use DLPI interface code.])) -AC_CHECK_HEADER(net/bpf.h, - AC_DEFINE([USE_BPF], [1], - [Define to 1 to use the - Berkeley Packet Filter interface code.])) + [Define to 1 to use the Linux Packet Filter interface code.]) +else + AC_CHECK_HEADER(sys/dlpi.h, DO_DLPI=1) + if test -n "$DO_DLPI" + then + AC_DEFINE([USE_DLPI], [1], + [Define to 1 to use DLPI interface code.]) + else + AC_CHECK_HEADER(net/bpf.h, DO_BPF=1) + if test -n "$DO_BPF" + then + AC_DEFINE([USE_BPF], [""], + [Define to 1 to use the + Berkeley Packet Filter interface code.]) + fi + fi + +fi # Look for optional headers. AC_CHECK_HEADER(net/if_dl.h, diff --git a/includes/config.h.in b/includes/config.h.in index afe88417c..cd7ca73f5 100644 --- a/includes/config.h.in +++ b/includes/config.h.in @@ -16,6 +16,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_TYPES_H + /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H