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

Sergio Prado sergio.prado at e-labworks.com
Mon Apr 2 11:01:56 EDT 2018


Hello,

Anyone had the time to review this patch?

We have already integrated snort in the Buildroot buildsystem [1] with an
out-of-tree patch, but it would be good to have this patch upstream.

[1]
https://git.buildroot.net/buildroot/commit/?id=e80c892427d528253a1a69ba24db44be2eea66ba

Thanks,

Sergio Prado
Embedded Labworks
Office: +55 11 2628-3461
Mobile: +55 11 97123-3420

2018-01-13 16:20 GMT-02:00 Sergio Prado <sergio.prado at e-labworks.com>:

> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.snort.org/pipermail/snort-devel/attachments/20180402/e81501d2/attachment-0001.html>


More information about the Snort-devel mailing list