On some systems libintel_dpdk.a fails to link with libopenvswitch unless -ldl is used. This should address the issue
Signed-off-by: Daniele Di Proietto <ddiproie...@vmware.com> --- acinclude.m4 | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 230c033..8edafff 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -170,10 +170,31 @@ AC_DEFUN([OVS_CHECK_DPDK], [ DPDK_INCLUDE=$RTE_SDK/include DPDK_LIB_DIR=$RTE_SDK/lib - DPDK_LIBS="$DPDK_LIB_DIR/libintel_dpdk.a" - LIBS="$DPDK_LIBS $LIBS" - CPPFLAGS="-I$DPDK_INCLUDE $CPPFLAGS" + LDFLAGS="$LDFLAGS -L$DPDK_LIB_DIR" + CFLAGS="$CFLAGS -I$DPDK_INCLUDE" + + # On some systems we have to add -ldl to link with dpdk + # + # This code, at first, tries to link without -ldl (""), + # then adds it and tries again. + # Before each attempt the search cache must be unset, + # otherwise autoconf will stick with the old result + + found=false + save_LIBS=$LIBS + for extras in "" "-ldl"; do + LIBS="$extras $save_LIBS" + # Clear search cache + unset ac_cv_search_rte_eth_dev_configure + AC_SEARCH_LIBS([rte_eth_dev_configure], [intel_dpdk], [found=true]) + if $found; then + break + fi + done + if $found; then :; else + AC_MSG_ERROR([cannot link with dpdk]) + fi AC_DEFINE([DPDK_NETDEV], [1], [System uses the DPDK module.]) else -- 2.0.0.rc0 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev