rdma: unhackish build of rdma-core

Change-Id: I2040b560b2a00f8bd176ae6ad46035678a2b249e
Type: improvement
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
diff --git a/build/external/deb/debian/rules b/build/external/deb/debian/rules
index cddf1e9..cf4b4d9 100755
--- a/build/external/deb/debian/rules
+++ b/build/external/deb/debian/rules
@@ -28,3 +28,5 @@
 	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 cf5fa1a..86b4269 100644
--- a/build/external/packages/rdma-core.mk
+++ b/build/external/packages/rdma-core.mk
@@ -32,27 +32,16 @@
 	    -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 91cf236..a9d4f3e 100644
--- a/src/plugins/dpdk/CMakeLists.txt
+++ b/src/plugins/dpdk/CMakeLists.txt
@@ -103,12 +103,8 @@
         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 f598ff8..ef8bc90 100644
--- a/src/plugins/rdma/CMakeLists.txt
+++ b/src/plugins/rdma/CMakeLists.txt
@@ -19,17 +19,16 @@
 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 @@
 
   LINK_LIBRARIES
   ${IBVERBS_LIB}
-  ${RDMA_UTIL_LIB}
 )