mirror of
https://github.com/openvswitch/ovs
synced 2025-08-22 09:58:01 +00:00
acinclude: Use AC_SEARCH_LIBS for linking with dl.
DPDK uses dlopen to load plugins and we need to search for library containing this function. But we should not do this in a loop because 'AC_SEARCH_LIBS' could do this for us. Also, 'AC_SEARCH_LIBS' prints user-visible messages that are useful for debuging. Also added the new 'checking' message and code normalized to be more readable. With this change we'll have following additional messages: checking for library containing dlopen... -ldl checking whether linking with dpdk works... yes Acked-by: Flavio Leitner <fbl@sysclose.org> Acked-by: Aaron Conole <aconole@redhat.com> Signed-off-by: Ilya Maximets <i.maximets@samsung.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
This commit is contained in:
parent
f0d1ead8b1
commit
e2f3751186
48
acinclude.m4
48
acinclude.m4
@ -301,36 +301,28 @@ AC_DEFUN([OVS_CHECK_DPDK], [
|
||||
], [[#include <rte_config.h>]])
|
||||
], [], [[#include <rte_config.h>]])
|
||||
|
||||
# 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
|
||||
# DPDK uses dlopen to load plugins.
|
||||
OVS_FIND_DEPENDENCY([dlopen], [dl], [libdl])
|
||||
|
||||
DPDKLIB_FOUND=false
|
||||
save_LIBS=$LIBS
|
||||
for extras in "" "-ldl"; do
|
||||
LIBS="$DPDK_LIB $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);])],
|
||||
[DPDKLIB_FOUND=true])
|
||||
if $DPDKLIB_FOUND; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
AC_MSG_CHECKING([whether linking with dpdk works])
|
||||
LIBS="$DPDK_LIB $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);])],
|
||||
[AC_MSG_RESULT([yes])
|
||||
DPDKLIB_FOUND=true],
|
||||
[AC_MSG_RESULT([no])
|
||||
if test "$DPDK_AUTO_DISCOVER" = "true"; then
|
||||
AC_MSG_ERROR(m4_normalize([
|
||||
Could not find DPDK library in default search path, Use --with-dpdk
|
||||
to specify the DPDK library installed in non-standard location]))
|
||||
else
|
||||
AC_MSG_ERROR([Could not find DPDK libraries in $DPDK_LIB_DIR])
|
||||
fi
|
||||
])
|
||||
|
||||
# If linking unsuccessful
|
||||
if test "$DPDKLIB_FOUND" = "false" ; then
|
||||
if $DPDK_AUTO_DISCOVER; then
|
||||
AC_MSG_ERROR([Could not find DPDK library in default search path, Use --with-dpdk to specify the DPDK library installed in non-standard location])
|
||||
else
|
||||
AC_MSG_ERROR([Could not find DPDK libraries in $DPDK_LIB_DIR])
|
||||
fi
|
||||
fi
|
||||
CFLAGS="$ovs_save_CFLAGS"
|
||||
LDFLAGS="$ovs_save_LDFLAGS"
|
||||
if test "$DPDK_AUTO_DISCOVER" = "false"; then
|
||||
|
Loading…
x
Reference in New Issue
Block a user