Added ASLR info to README
[collectd.git] / configure.ac
index 94ed6e7..5b7a950 100644 (file)
@@ -2414,7 +2414,7 @@ fi
 # --with-libdpdk {{{
 AC_ARG_WITH(libdpdk, [AS_HELP_STRING([--with-libdpdk@<:@=PREFIX@:>@], [Path to the DPDK build directory.])],
 [
-  if test "x$withval" != "xno" && test "x$withval" != "xyes"
+       if test "x$withval" != "xno" && test "x$withval" != "xyes"
        then
                with_dpdk_path="$withval"
                with_libdpdk="yes"
@@ -2429,48 +2429,63 @@ AC_ARG_WITH(libdpdk, [AS_HELP_STRING([--with-libdpdk@<:@=PREFIX@:>@], [Path to t
 if test "x$with_libdpdk" = "xyes"
 then
        RTE_BUILD="$with_dpdk_path"
-       DPDK_INCLUDE="$RTE_BUILD/include/dpdk"
+       DPDK_INCLUDE="$RTE_BUILD/include"
+       AC_CHECK_FILE([$DPDK_INCLUDE/rte_config.h], [LOCAL_DPDK_INSTALL=true],
+               [AC_CHECK_FILE([$DPDK_INCLUDE/dpdk/rte_config.h],
+               [DPDK_INCLUDE=$DPDK_INCLUDE/dpdk], [])])
        DPDK_LIB_DIR="$RTE_BUILD/lib"
-       DPDK_LIB="-ldpdk"
-       DPDK_EXTRA_LIB="-ldl -lpthread -lrt -lm"
+       DPDK_EXTRA_LIB=""
 
        SAVE_CFLAGS="$CFLAGS"
        SAVE_LDFLAGS="$LDFLAGS"
-       LDFLAGS="$LDFLAGS -L$DPDK_LIB_DIR"
-       CFLAGS="$CFLAGS -I$DPDK_INCLUDE -fpic"
+       CFLAGS="$CFLAGS -mavx -I$DPDK_INCLUDE"
+       if test "x$LOCAL_DPDK_INSTALL" != "xtrue"
+        then
+            LDFLAGS="$LDFLAGS -L$DPDK_LIB_DIR"
+        fi
        FOUND_DPDK=false
        SAVE_LIBS="$LIBS"
-       LIBS="$LIBS $DPDK_LIB $DPDK_EXTRA_LIB"
+       LIBS="$DPDK_LIB $LIBS"
        AC_CHECK_LIB(dpdk, rte_eal_init,
-                     [with_libdpdk="yes"],
-                     [with_libdpdk="no"])
-       AC_LINK_IFELSE(
+                     [FOUND_DPDK=true],
+                     [AC_MSG_ERROR([did not find dpdk libs ])])
+
+       CFLAGS="$SAVE_CFLAGS"
+       LDFLAGS="$SAVE_LDFLAGS"
+       LIBS="$SAVE_LIBS"
+       if test "x$FOUND_DPDK" != "xtrue"
+        then
+           AC_MSG_ERROR([cannot link with dpdk in $DPDK_LIB_DIR])
+       fi
+       BUILD_WITH_DPDK_CFLAGS=""
+       AC_MSG_NOTICE([Checking for avx instructions])
+       AC_RUN_IFELSE(
                [AC_LANG_PROGRAM(
 [[
-#include <rte_config.h>
-#include <rte_eal.h>
+#include <immintrin.h>
 ]],
 [[
-int rte_argc;
-char ** rte_argv;
-rte_eal_init(rte_argc, rte_argv);
+__m128i zero = _mm_setzero_si128();
 ]]
        )],
-               [FOUND_DPDK=true])
-       CFLAGS="$SAVE_CFLAGS"
-       LDFLAGS="$SAVE_LDFLAGS"
-       LIBS="$SAVE_LIBS"
-       if $FOUND_DPDK; then :; else
-               AC_MSG_ERROR([cannot link with dpdk])
+               [HAVE_AVX=true], [HAVE_AVX=false])
+       if test "x$HAVE_AVX" = "xtrue"
+       then
+               BUILD_WITH_DPDK_CFLAGS="-mavx "
+               AC_MSG_NOTICE([avx instructions supported])
        fi
-       DPDK_LDFLAGS="-ldpdk"
-       BUILD_WITH_DPDK_CFLAGS="-I$DPDK_INCLUDE -fPIC"
-       BUILD_WITH_DPDK_LDFLAGS="-L$DPDK_LIB_DIR"
-       BUILD_WITH_DPDK_LIBS="$DPDK_LDFLAGS -ldl -lpthread -lrt -lm"
+
+       BUILD_WITH_DPDK_CFLAGS+="-fPIC -I$DPDK_INCLUDE"
+       if test "x$LOCAL_DPDK_INSTALL" != "xtrue"
+        then
+               BUILD_WITH_DPDK_LDFLAGS="-Wl,--no-as-needed"
+       else
+               BUILD_WITH_DPDK_LDFLAGS="-L$DPDK_LIB_DIR -Wl,--no-as-needed"
+        fi
+       BUILD_WITH_DPDK_LIBS="-Wl,-ldpdk"
        AC_SUBST(BUILD_WITH_DPDK_CFLAGS)
        AC_SUBST(BUILD_WITH_DPDK_LDFLAGS)
        AC_SUBST(BUILD_WITH_DPDK_LIBS)
-       AC_DEFINE_UNQUOTED(DPDK, [1], [System uses DPDK.])
 fi
 # }}}
 
@@ -6038,7 +6053,7 @@ AC_PLUGIN([dbi],                 [$with_libdbi],            [General database st
 AC_PLUGIN([df],                  [$plugin_df],              [Filesystem usage statistics])
 AC_PLUGIN([disk],                [$plugin_disk],            [Disk usage statistics])
 AC_PLUGIN([dns],                 [$with_libpcap],           [DNS traffic analysis])
-AC_PLUGIN([dpdkstat],    [$with_libdpdk],      [Stats & Status from DPDK])
+AC_PLUGIN([dpdkstat],            [$with_libdpdk],           [Stats & Status from DPDK])
 AC_PLUGIN([drbd],                [$plugin_drbd],            [DRBD statistics])
 AC_PLUGIN([email],               [yes],                     [EMail statistics])
 AC_PLUGIN([entropy],             [$plugin_entropy],         [Entropy statistics])
@@ -6358,13 +6373,13 @@ AC_MSG_RESULT([    PROTOC  . . . . . . . $PROTOC])
 AC_MSG_RESULT([    YACC  . . . . . . . . $YACC])
 AC_MSG_RESULT([    YFLAGS  . . . . . . . $YFLAGS])
 AC_MSG_RESULT()
-    dpdk  . . . . . . . . $with_libdpdk
 AC_MSG_RESULT([  Libraries:])
 AC_MSG_RESULT([    intel mic . . . . . . $with_mic])
 AC_MSG_RESULT([    libaquaero5 . . . . . $with_libaquaero5])
 AC_MSG_RESULT([    libatasmart . . . . . $with_libatasmart])
 AC_MSG_RESULT([    libcurl . . . . . . . $with_libcurl])
 AC_MSG_RESULT([    libdbi  . . . . . . . $with_libdbi])
+    libdpdk . . . . . . . $with_libdpdk
 AC_MSG_RESULT([    libesmtp  . . . . . . $with_libesmtp])
 AC_MSG_RESULT([    libganglia  . . . . . $with_libganglia])
 AC_MSG_RESULT([    libgcrypt . . . . . . $with_libgcrypt])