From 45e4e9444d961351178ee108b20525a9c929902d Mon Sep 17 00:00:00 2001 From: Mohammed Hawari Date: Tue, 20 Sep 2022 18:44:36 +0200 Subject: rdma: unhackish build of rdma-core Change-Id: I2040b560b2a00f8bd176ae6ad46035678a2b249e Type: improvement Signed-off-by: Mohammed Hawari --- build/external/deb/debian/rules | 2 ++ build/external/packages/rdma-core.mk | 19 ++++--------------- src/plugins/dpdk/CMakeLists.txt | 8 ++------ src/plugins/rdma/CMakeLists.txt | 8 +++----- 4 files changed, 11 insertions(+), 26 deletions(-) diff --git a/build/external/deb/debian/rules b/build/external/deb/debian/rules index cddf1e9c6e8..cf4b4d989b4 100755 --- a/build/external/deb/debian/rules +++ b/build/external/deb/debian/rules @@ -28,3 +28,5 @@ override_dh_install: make $(MAKE_ARGS) install dh_install -p$(PKG) --autodest /opt +override_dh_shlibdeps: + dh_shlibdeps -l$(INSTALL_DIR)lib/ diff --git a/build/external/packages/rdma-core.mk b/build/external/packages/rdma-core.mk index cf5fa1ab30f..86b42695e63 100644 --- a/build/external/packages/rdma-core.mk +++ b/build/external/packages/rdma-core.mk @@ -32,27 +32,16 @@ define rdma-core_config_cmds -DENABLE_STATIC=1 -DENABLE_RESOLVE_NEIGH=0 -DNO_PYVERBS=1 -DENABLE_VALGRIND=0\ -DCMAKE_BUILD_TYPE=$(RDMA_BUILD_TYPE) -DCMAKE_INSTALL_PREFIX=$(rdma-core_install_dir) \ -DCMAKE_INSTALL_LIBDIR=lib \ - -DCMAKE_C_FLAGS='-fPIC -fvisibility=hidden' > $(rdma-core_config_log) + -DCMAKE_INSTALL_RUNDIR:PATH=/run \ + -DCMAKE_C_FLAGS='-fPIC' -DNO_MAN_PAGES=ON | tee $(rdma-core_config_log) endef define rdma-core_build_cmds - $(CMAKE) --build $(rdma-core_build_dir) -- libccan.a libibverbs.a librdma_util.a libmlx5.a libmlx4.a > $(rdma-core_build_log) - sed 's/^Libs.private:.*/Libs.private: -lmlx4 -lmlx5 -libverbs -lrdma_util -lccan -lpthread/' -i $(rdma-core_build_dir)/lib/pkgconfig/libibverbs.pc >> $(rdma-core_build_log) + $(CMAKE) --build $(rdma-core_build_dir) | tee $(rdma-core_build_log) endef define rdma-core_install_cmds - mkdir -p $(rdma-core_install_dir)/lib/pkgconfig - cp -avL $(rdma-core_build_dir)/include $(rdma-core_install_dir) > $(rdma-core_install_log) - cp -avL $(rdma-core_build_dir)/lib/pkgconfig/libibverbs.pc \ - $(rdma-core_build_dir)/lib/pkgconfig/libmlx5.pc \ - $(rdma-core_build_dir)/lib/pkgconfig/libmlx4.pc \ - $(rdma-core_install_dir)/lib/pkgconfig >> $(rdma-core_install_log) - cp -avL $(rdma-core_build_dir)/lib/statics/libibverbs.a \ - $(rdma-core_build_dir)/lib/statics/libmlx5.a \ - $(rdma-core_build_dir)/lib/statics/libmlx4.a \ - $(rdma-core_build_dir)/util/librdma_util.a \ - $(rdma-core_build_dir)/ccan/libccan.a \ - $(rdma-core_install_dir)/lib >> $(rdma-core_install_log) + $(CMAKE) --install $(rdma-core_build_dir) | tee $(rdma-core_install_log) endef $(eval $(call package,rdma-core)) diff --git a/src/plugins/dpdk/CMakeLists.txt b/src/plugins/dpdk/CMakeLists.txt index 91cf236ea05..a9d4f3e514c 100644 --- a/src/plugins/dpdk/CMakeLists.txt +++ b/src/plugins/dpdk/CMakeLists.txt @@ -103,12 +103,8 @@ else() list(APPEND DPDK_LINK_LIBRARIES "${MNL_LIB}") else() message(WARNING "EXPERIMENTAL: DPDK plugin without dlopen mode") - vpp_plugin_find_library(dpdk IBVERBS_LIB "libibverbs.a") - vpp_plugin_find_library(dpdk MLX5_LIB "libmlx5.a") - vpp_plugin_find_library(dpdk MLX4_LIB "libmlx4.a") - vpp_plugin_find_library(dpdk CCAN_LIB "libccan.a") - vpp_plugin_find_library(dpdk RDMA_UTIL_LIB "rdma_util") - string_append(DPDK_LINK_FLAGS "-Wl,--whole-archive,${IBVERBS_LIB},${MLX5_LIB},${MLX4_LIB},${CCAN_LIB},${RDMA_UTIL_LIB},--no-whole-archive") + vpp_plugin_find_library(dpdk IBVERBS_LIB "libibverbs.a") + string_append(DPDK_LINK_FLAGS "${IBVERBS_LIB} -Wl,--exclude-libs,ALL") endif() endif() endif() diff --git a/src/plugins/rdma/CMakeLists.txt b/src/plugins/rdma/CMakeLists.txt index f598ff8c701..ef8bc90c6dd 100644 --- a/src/plugins/rdma/CMakeLists.txt +++ b/src/plugins/rdma/CMakeLists.txt @@ -19,17 +19,16 @@ if (NOT IBVERBS_INCLUDE_DIR) endif() vpp_plugin_find_library(rdma IBVERBS_LIB libibverbs.a) -vpp_plugin_find_library(rdma RDMA_UTIL_LIB librdma_util.a) vpp_plugin_find_library(rdma MLX5_LIB libmlx5.a) -if (NOT IBVERBS_LIB OR NOT RDMA_UTIL_LIB OR NOT MLX5_LIB) +if (NOT IBVERBS_LIB OR NOT MLX5_LIB) message(WARNING "rdma plugin - ibverbs not found - rdma plugin disabled") return() endif() -string_append(RDMA_LINK_FLAGS "-Wl,--whole-archive,${MLX5_LIB},--no-whole-archive") +string_append(RDMA_LINK_FLAGS "-Wl,--whole-archive,${MLX5_LIB},--no-whole-archive -Wl,--exclude-libs,ALL") -set(CMAKE_REQUIRED_FLAGS "-fPIC -shared -pthread -Wno-unused-command-line-argument ${RDMA_LINK_FLAGS} ${IBVERBS_LIB} ${RDMA_UTIL_LIB}") +set(CMAKE_REQUIRED_FLAGS "-fPIC -shared -pthread -Wno-unused-command-line-argument ${RDMA_LINK_FLAGS} ${IBVERBS_LIB}") set(CMAKE_REQUIRED_INCLUDES "${IBVERBS_INCLUDE_DIR}") set(CMAKE_REQUIRED_LIBRARIES "c") # force linkage by including libc explicitely CHECK_C_SOURCE_COMPILES(" @@ -73,5 +72,4 @@ add_vpp_plugin(rdma LINK_LIBRARIES ${IBVERBS_LIB} - ${RDMA_UTIL_LIB} ) -- cgit 1.2.3-korg