From ee6ddceaf54fa055ac3fc3997156f5ee0c9ca4ae Mon Sep 17 00:00:00 2001 From: Sachin Saxena Date: Thu, 10 May 2018 16:22:09 +0530 Subject: Fix broken compilation for non-numa aware platforms - The dpdk plugin always looks for libnuma library during compilation. For non-numa aware platforms compilation breaks, if third party libnuma lib is not available. - Issue is more severe with Cross Compilation scenario where one has to download and cross compile libnuma-dev package even when target platofrom is NUMA disabled. Like when cross compiling for ARM platforms, Linaro tool-chain doesn't have libnuma by default. Change-Id: Ib85b3188b787c23ba33b47e3f6123c74fd37190e Signed-off-by: Sachin Saxena --- build-data/platforms/dpaa.mk | 2 +- build-data/platforms/vpp.mk | 1 + src/configure.ac | 2 ++ src/plugins/dpdk.am | 2 ++ 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/build-data/platforms/dpaa.mk b/build-data/platforms/dpaa.mk index 3ccabefec99..e0a37fa6980 100644 --- a/build-data/platforms/dpaa.mk +++ b/build-data/platforms/dpaa.mk @@ -64,7 +64,7 @@ endif endif # Disable the unused plugins in order to decrease the VPP pacakage size. -vpp_configure_args_dpaa = --without-ipv6sr --with-pre-data=128 +vpp_configure_args_dpaa = --without-ipv6sr --with-pre-data=128 --without-libnuma # Other optional vpp_configure_args ifneq ($(VPP_CFG_ARGS),) diff --git a/build-data/platforms/vpp.mk b/build-data/platforms/vpp.mk index ad15d7e272e..c1729723624 100644 --- a/build-data/platforms/vpp.mk +++ b/build-data/platforms/vpp.mk @@ -36,6 +36,7 @@ vpp_root_packages = vpp vom # vpp_dpdk_lib_dir = /usr/lib # vpp_dpdk_shared_lib = yes +# Use '--without-libnuma' for non-numa aware architecture vpp_configure_args_vpp = # load balancer plugin is not portable on 32 bit platform diff --git a/src/configure.ac b/src/configure.ac index ca967bb0a9d..bae3fdebcfb 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -135,6 +135,7 @@ DISABLE_ARG(japi, [Disable Java API bindings]) WITHOUT_ARG(libssl, [Disable libssl]) WITHOUT_ARG(apicli, [Disable binary api CLI]) WITHOUT_ARG(mbedtls, [Disable mbedtls]) +WITHOUT_ARG(libnuma, [for non numa architectures]) AC_ARG_WITH(unix, AC_HELP_STRING([--with-unix],[Compile unix version of clib]), @@ -203,6 +204,7 @@ AC_SUBST(APICLI, [-DVPP_API_TEST_BUILTIN=${n_with_apicli}]) AC_DEFINE_UNQUOTED(DPDK_SHARED_LIB, [${n_enable_dpdk_shared}]) AC_DEFINE_UNQUOTED(WITH_LIBSSL, [${n_with_libssl}]) AC_DEFINE_UNQUOTED(WITH_MBEDTLS, [${n_with_mbedtls}]) +AC_DEFINE_UNQUOTED(WITH_LIBNUMA, [${n_with_libnuma}]) # Silence following noise: diff --git a/src/plugins/dpdk.am b/src/plugins/dpdk.am index 7c6e0058992..af7d96d7c17 100644 --- a/src/plugins/dpdk.am +++ b/src/plugins/dpdk.am @@ -26,7 +26,9 @@ if WITH_ISA_L_CRYPTO_LIB dpdk_plugin_la_LDFLAGS += -Wl,--exclude-libs,libisal_crypto.a,-l:libisal_crypto.a endif dpdk_plugin_la_CFLAGS = $(AM_CFLAGS) +if WITH_LIBNUMA dpdk_plugin_la_LDFLAGS += -Wl,-lnuma +endif dpdk_plugin_la_LDFLAGS += -Wl,-lm,-ldl dpdk_plugin_la_LIBADD = -- cgit 1.2.3-korg