diff options
author | Daniele Di Proietto <ddiproietto@vmware.com> | 2014-06-03 11:29:53 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2014-06-09 11:28:59 -0700 |
commit | c1223b11d498b66f27c889f4438ad88394299fc0 (patch) | |
tree | 7a919cdf5f7b635d1ec2fa1239f898cbb8338893 /acinclude.m4 | |
parent | 3a208109f5e91b0cfbc387877b81aba743eab5f3 (diff) | |
download | openvswitch-c1223b11d498b66f27c889f4438ad88394299fc0.tar.gz |
acinclude.m4: dpdk: link with -ldl if necessary
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 <ddiproietto@vmware.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'acinclude.m4')
-rw-r--r-- | acinclude.m4 | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/acinclude.m4 b/acinclude.m4 index bd71a82a7..69d65f052 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -170,10 +170,34 @@ 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="-lintel_dpdk $extras $save_LIBS" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([#include <rte_config.h> + #include <rte_eal.h>], + [int rte_argc; char ** rte_argv; + rte_eal_init(rte_argc, rte_argv);])], + [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 |