[Snort-devel] [PATCH] snort: fix cross compilation errors

Sergio Prado sergio.prado at e-labworks.com
Sat Jan 13 13:20:52 EST 2018


Prevent configure script from trying to run programs in a cross
compilation environment.

Also prevent usage of unsafe libpcap header path when cross compiling.

Signed-off-by: Sergio Prado <sergio.prado at e-labworks.com>
---
 configure.in | 58 ++++++++++++++++++++++++++++++----------------------------
 1 file changed, 30 insertions(+), 28 deletions(-)

diff --git a/configure.in b/configure.in
index 4b3a5dbbf450..6dff6fad6157 100644
--- a/configure.in
+++ b/configure.in
@@ -70,8 +70,10 @@ case "$host" in
   *-linux*)
     linux="yes"
     AC_DEFINE([LINUX],[1],[Define if Linux])
-    AC_SUBST(extra_incl)
-    extra_incl="-I/usr/include/pcap"
+    if test -z "x$with_libpcap_includes"; then
+        AC_SUBST(extra_incl)
+        extra_incl="-I/usr/include/pcap"
+    fi
     ;;
   *-hpux10*|*-hpux11*)
     AC_DEFINE([HPUX],[1],[Define if HP-UX 10 or 11])
@@ -282,8 +284,8 @@ AC_CHECK_TYPES([int8_t,int16_t,int32_t,int64_t])
 AC_CHECK_TYPES([boolean])
 
 # In case INADDR_NONE is not defined (like on Solaris)
+AC_CACHE_CHECK([for INADDR_NONE], [have_inaddr_none], [
 have_inaddr_none="no"
-AC_MSG_CHECKING([for INADDR_NONE])
 AC_RUN_IFELSE(
 [AC_LANG_PROGRAM(
 [[
@@ -296,7 +298,7 @@ AC_RUN_IFELSE(
     return 0;
 ]])],
 [have_inaddr_none="yes"],
-[have_inaddr_none="no"])
+[have_inaddr_none="no"])])
 AC_MSG_RESULT($have_inaddr_none)
 if test "x$have_inaddr_none" = "xno"; then
 	AC_DEFINE([INADDR_NONE],[-1],[For INADDR_NONE definition])
@@ -428,7 +430,7 @@ if test "x$LPCAP" = "xno"; then
   fi
 fi
 
-AC_MSG_CHECKING([for pcap_lex_destroy])
+AC_CACHE_CHECK([for pcap_lex_destroy], [have_pcap_lex_destroy], [
 AC_RUN_IFELSE(
 [AC_LANG_PROGRAM(
 [[
@@ -438,7 +440,7 @@ AC_RUN_IFELSE(
    pcap_lex_destroy();
 ]])],
 [have_pcap_lex_destroy="yes"],
-[have_pcap_lex_destroy="no"])
+[have_pcap_lex_destroy="no"])])
 AC_MSG_RESULT($have_pcap_lex_destroy)
 if test "x$have_pcap_lex_destroy" = "xyes"; then
     AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter])
@@ -715,7 +717,7 @@ fi
 
 AC_CHECK_FUNCS([daq_hup_apply] [daq_acquire_with_meta] [daq_dp_add_dc])
 
-AC_MSG_CHECKING([for daq real addresses])
+AC_CACHE_CHECK([for daq real addresses], [have_daq_real_addresses], [
 AC_RUN_IFELSE(
 [AC_LANG_PROGRAM(
 [[
@@ -726,7 +728,7 @@ AC_RUN_IFELSE(
    hdr.n_real_dPort = 0;
 ]])],
 [have_daq_real_addresses="yes"],
-[have_daq_real_addresses="no"])
+[have_daq_real_addresses="no"])])
 AC_MSG_RESULT($have_daq_real_addresses)
 if test "x$have_daq_real_addresses" = "xyes"; then
     AC_DEFINE([HAVE_DAQ_REAL_ADDRESSES],[1],
@@ -753,7 +755,7 @@ if test "x$ac_cv_func_daq_dp_add_dc" = "xyes"; then
 
 fi
 
-AC_MSG_CHECKING([for daq address space ID])
+AC_CACHE_CHECK([for daq address space ID], [have_daq_address_space_id], [
 AC_RUN_IFELSE(
 [AC_LANG_PROGRAM(
 [[
@@ -764,14 +766,14 @@ AC_RUN_IFELSE(
    hdr.address_space_id = 0;
 ]])],
 [have_daq_address_space_id="yes"],
-[have_daq_address_space_id="no"])
+[have_daq_address_space_id="no"])])
 AC_MSG_RESULT($have_daq_address_space_id)
 if test "x$have_daq_address_space_id" = "xyes"; then
     AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1],
         [DAQ version supports address space ID in header.])
 fi
 
-AC_MSG_CHECKING([for daq flow ID])
+AC_CACHE_CHECK([for daq flow ID], [have_daq_flow_id], [
 AC_RUN_IFELSE(
 [AC_LANG_PROGRAM(
 [[
@@ -782,14 +784,14 @@ AC_RUN_IFELSE(
    hdr.flow_id = 0;
 ]])],
 [have_daq_flow_id="yes"],
-[have_daq_flow_id="no"])
+[have_daq_flow_id="no"])])
 AC_MSG_RESULT($have_daq_flow_id)
 if test "x$have_daq_flow_id" = "xyes"; then
     AC_DEFINE([HAVE_DAQ_FLOW_ID],[1],
         [DAQ version supports flow ID in header.])
 fi
 
-AC_MSG_CHECKING([for daq extended flow modifiers])
+AC_CACHE_CHECK([for daq extended flow modifiers], [have_daq_ext_modflow], [
 AC_RUN_IFELSE(
 [AC_LANG_PROGRAM(
 [[
@@ -802,7 +804,7 @@ AC_RUN_IFELSE(
    mod.value = NULL;
 ]])],
 [have_daq_ext_modflow="yes"],
-[have_daq_ext_modflow="no"])
+[have_daq_ext_modflow="no"])])
 AC_MSG_RESULT($have_daq_ext_modflow)
 if test "x$have_daq_ext_modflow" = "xyes"; then
     CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_EXT_MODFLOW"
@@ -810,7 +812,7 @@ if test "x$have_daq_ext_modflow" = "xyes"; then
         [DAQ version supports extended flow modifiers.])
 fi
 
-AC_MSG_CHECKING([for daq query flow])
+AC_CACHE_CHECK([for daq query flow], [have_daq_queryflow], [
 AC_RUN_IFELSE(
 [AC_LANG_PROGRAM(
 [[
@@ -823,7 +825,7 @@ AC_RUN_IFELSE(
    mod.value = NULL;
 ]])],
 [have_daq_queryflow="yes"],
-[have_daq_queryflow="no"])
+[have_daq_queryflow="no"])])
 AC_MSG_RESULT($have_daq_queryflow)
 if test "x$have_daq_queryflow" = "xyes"; then
     CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_QUERYFLOW"
@@ -831,7 +833,7 @@ if test "x$have_daq_queryflow" = "xyes"; then
         [DAQ version supports query flow.])
 fi
 
-AC_MSG_CHECKING([for daq data channel flags])
+AC_CACHE_CHECK([for daq data channel flags], [have_daq_data_channel_flags], [
 AC_RUN_IFELSE(
 [AC_LANG_PROGRAM(
 [[
@@ -841,7 +843,7 @@ AC_RUN_IFELSE(
    DAQ_Data_Channel_Params_t params;
 ]])],
 [have_daq_data_channel_flags="yes"],
-[have_daq_data_channel_flags="no"])
+[have_daq_data_channel_flags="no"])])
 AC_MSG_RESULT($have_daq_data_channel_flags)
 if test "x$have_daq_data_channel_flags" = "xyes"; then
     CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_PARAMS"
@@ -849,7 +851,7 @@ if test "x$have_daq_data_channel_flags" = "xyes"; then
         [DAQ version supports data channel.])
 fi
 
-AC_MSG_CHECKING([for separate IP versions on pinhole endpoints])
+AC_CACHE_CHECK([for separate IP versions on pinhole endpoints], [have_daq_data_channel_separate_ip_versions], [
 AC_RUN_IFELSE(
 [AC_LANG_PROGRAM(
 [[
@@ -860,7 +862,7 @@ AC_RUN_IFELSE(
    dpKey.src_af = 0;
 ]])],
 [have_daq_data_channel_separate_ip_versions="yes"],
-[have_daq_data_channel_separate_ip_versions="no"])
+[have_daq_data_channel_separate_ip_versions="no"])])
 AC_MSG_RESULT($have_daq_data_channel_separate_ip_versions)
 if test "x$have_daq_data_channel_separate_ip_versions" = "xyes"; then
     CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_SEPARATE_IP_VERSIONS"
@@ -868,7 +870,7 @@ if test "x$have_daq_data_channel_separate_ip_versions" = "xyes"; then
         [DAQ version supports separate IP versions on pinhole endpoints.])
 fi
 
-AC_MSG_CHECKING([for DAQ_VERDICT_RETRY])
+AC_CACHE_CHECK([for DAQ_VERDICT_RETRY], [have_daq_verdict_retry], [
 AC_RUN_IFELSE(
 [AC_LANG_PROGRAM(
 [[
@@ -879,14 +881,14 @@ AC_RUN_IFELSE(
    verdict = DAQ_VERDICT_RETRY;
 ]])],
 [have_daq_verdict_retry="yes"],
-[have_daq_verdict_retry="no"])
+[have_daq_verdict_retry="no"])])
 AC_MSG_RESULT($have_daq_verdict_retry)
 if test "x$have_daq_verdict_retry" = "xyes"; then
     AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1],
         [DAQ version supports DAQ_VERDICT_RETRY in DAQ_Verdict.])
 fi
 
-AC_MSG_CHECKING([for daq packet trace])
+AC_CACHE_CHECK([for daq packet trace], [have_daq_packet_trace], [
 AC_RUN_IFELSE(
 [AC_LANG_PROGRAM(
 [[
@@ -897,7 +899,7 @@ AC_RUN_IFELSE(
    hdr.flags = DAQ_PKT_FLAG_TRACE_ENABLED;
 ]])],
 [have_daq_packet_trace="yes"],
-[have_daq_packet_trace="no"])
+[have_daq_packet_trace="no"])])
 AC_MSG_RESULT($have_daq_packet_trace)
 if test "x$have_daq_packet_trace" = "xyes"; then
     AC_DEFINE([HAVE_DAQ_PKT_TRACE],[1],
@@ -906,7 +908,7 @@ else
     echo "DAQ version doesn't support packet trace."
 fi
 
-AC_MSG_CHECKING([for daq verdict reason])
+AC_CACHE_CHECK([for daq verdict reason], [have_daq_verdict_reason], [
 AC_RUN_IFELSE(
 [AC_LANG_PROGRAM(
 [[
@@ -917,7 +919,7 @@ AC_RUN_IFELSE(
    fl.type = DAQ_MODFLOW_TYPE_VER_REASON;
 ]])],
 [have_daq_verdict_reason="yes"],
-[have_daq_verdict_reason="no"])
+[have_daq_verdict_reason="no"])])
 AC_MSG_RESULT($have_daq_verdict_reason)
 if test "x$have_daq_verdict_reason" = "xyes"; then
     AC_DEFINE([HAVE_DAQ_VERDICT_REASON],[1],
@@ -944,7 +946,7 @@ fi
 if eval "echo $host_cpu|grep -i sparc >/dev/null"; then
     OLD_CFLAGS="$CFLAGS"
     CFLAGS="$CFLAGS -mcpu=v9 "
-    AC_MSG_CHECKING([for sparc %time register])
+    AC_CACHE_CHECK([for sparc %time register], [sparcv9], [
     AC_RUN_IFELSE(
     [AC_LANG_PROGRAM(
     [[]],
@@ -953,7 +955,7 @@ if eval "echo $host_cpu|grep -i sparc >/dev/null"; then
         __asm__ __volatile__("rd %%tick, %0" : "=r"(val));
     ]])],
     [sparcv9="yes"],
-    [sparcv9="no"])
+    [sparcv9="no"])])
     AC_MSG_RESULT($sparcv9)
     if test "x$sparcv9" = "xyes"; then
         AC_DEFINE([SPARCV9],[1],[For sparc v9 with %time register])
-- 
1.9.1



More information about the Snort-devel mailing list