diff options
author | Benoît Ganne <bganne@cisco.com> | 2019-04-08 13:45:33 +0200 |
---|---|---|
committer | Dave Wallace <dwallacelf@gmail.com> | 2019-04-08 14:33:51 +0000 |
commit | f3262a2dd0fd788b5ef3fc9592de17ef8bcbd897 (patch) | |
tree | d3df45a5a05a6b9ec374de177215fe97ff3e50c6 | |
parent | 7f6bd24f7217026131f6b8e1e55f92d2955c883b (diff) |
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>
-rw-r--r-- | build/external/packages/dpdk.mk | 3 | ||||
-rw-r--r-- | build/external/packages/rdma-core.mk | 2 | ||||
-rw-r--r-- | src/plugins/dpdk/CMakeLists.txt | 6 |
3 files changed, 3 insertions, 8 deletions
diff --git a/build/external/packages/dpdk.mk b/build/external/packages/dpdk.mk index ae9d9c5df95..a551151bba7 100644 --- a/build/external/packages/dpdk.mk +++ b/build/external/packages/dpdk.mk @@ -17,7 +17,6 @@ DPDK_DOWNLOAD_DIR ?= $(DL_CACHE_DIR) 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 @@ $(B)/custom-config: $(B)/.dpdk-patch.ok Makefile $(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 82a5f0fbdb0..9961c80364f 100644 --- a/build/external/packages/rdma-core.mk +++ b/build/external/packages/rdma-core.mk @@ -31,7 +31,7 @@ define rdma-core_config_cmds $(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 diff --git a/src/plugins/dpdk/CMakeLists.txt b/src/plugins/dpdk/CMakeLists.txt index 1818adaea61..b743d599286 100644 --- a/src/plugins/dpdk/CMakeLists.txt +++ b/src/plugins/dpdk/CMakeLists.txt @@ -106,11 +106,7 @@ if(DPDK_RTE_LIBRTE_MLX4_PMD OR DPDK_RTE_LIBRTE_MLX5_PMD) if (DPDK_RTE_IBVERBS_LINK_DLOPEN) message(STATUS "DPDK depends on libmnl (Mellanox PMD requirement)") else() - vpp_plugin_find_library(dpdk IBVERBS_LIB "ibverbs") - list(APPEND DPDK_LINK_LIBRARIES "${IBVERBS_LIB}") - vpp_plugin_find_library(dpdk MLX5_LIB "mlx5") - list(APPEND DPDK_LINK_LIBRARIES "${MLX5_LIB}") - message(STATUS "DPDK depends on libmnl, libibverbs, libmlx5 (Mellanox PMD requirement)") + message(WARNING "unsupported DPDK configuration: DPDK Mellanox PMD requires RTE_IBVERBS_LINK_DLOPEN") endif() endif() |