rdma: fix DPDK MLX driver conflict
VPP rdma driver relies on an internal rdma-core not compatible with DPDK
MLX driver. Force the use of external rdma-core through
RTE_IBVERBS_LINK_DLOPEN DPDK build option and make sure internal
rdma-core symbols are not leaked outside of the rdma plugin.
Change-Id: I5b2281259f517c4e109d388d172b72eadd69986f
Signed-off-by: Benoît Ganne <bganne@cisco.com>
diff --git a/build/external/packages/dpdk.mk b/build/external/packages/dpdk.mk
index ae9d9c5..a551151 100644
--- a/build/external/packages/dpdk.mk
+++ b/build/external/packages/dpdk.mk
@@ -17,7 +17,6 @@
DPDK_DEBUG ?= n
DPDK_MLX4_PMD ?= n
DPDK_MLX5_PMD ?= n
-DPDK_MLX_IBVERBS_DLOPEN ?= n
DPDK_TAP_PMD ?= n
DPDK_FAILSAFE_PMD ?= n
@@ -189,7 +188,7 @@
$(call set,RTE_LIBRTE_MLX4_PMD,$(DPDK_MLX4_PMD))
$(call set,RTE_LIBRTE_MLX5_PMD,$(DPDK_MLX5_PMD))
$(call set,RTE_LIBRTE_PMD_SOFTNIC,n)
- $(call set,RTE_IBVERBS_LINK_DLOPEN,$(DPDK_MLX_IBVERBS_DLOPEN))
+ $(call set,RTE_IBVERBS_LINK_DLOPEN,y)
$(call set,RTE_LIBRTE_PMD_TAP,$(DPDK_TAP_PMD))
$(call set,RTE_LIBRTE_GSO,$(DPDK_TAP_PMD))
$(call set,RTE_LIBRTE_PMD_FAILSAFE,$(DPDK_FAILSAFE_PMD))
diff --git a/build/external/packages/rdma-core.mk b/build/external/packages/rdma-core.mk
index 82a5f0f..9961c80 100644
--- a/build/external/packages/rdma-core.mk
+++ b/build/external/packages/rdma-core.mk
@@ -31,7 +31,7 @@
$(CMAKE) -G Ninja $(rdma-core_src_dir) \
-DENABLE_STATIC=1 -DENABLE_RESOLVE_NEIGH=0 -DNO_PYVERBS=1 -DENABLE_VALGRIND=0 \
-DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_C_FLAGS=-fPIC > $(rdma-core_config_log)
+ -DCMAKE_C_FLAGS='-fPIC -fvisibility=hidden' > $(rdma-core_config_log)
endef
define rdma-core_build_cmds