From 8f71ab3a2b831b8fb5ea8331a8389e991f32331d Mon Sep 17 00:00:00 2001 From: Seth Howell Date: Fri, 9 Aug 2019 15:16:40 -0700 Subject: [PATCH] mk: use the env shared lib when linking apps Previously, aplications were always being linked against the spdk_env_dpdk.a file even during the shared object build. Change this to be consistent with our linking. Also, the old behavior causes issues with resolving symbols in FreeBSD. Change-Id: I96e2e6044c16e7579cff35ad46e3688ce6fa2b5a Signed-off-by: Seth Howell Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/464733 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/env_dpdk/env.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/env_dpdk/env.mk b/lib/env_dpdk/env.mk index eab339651..c08124a71 100644 --- a/lib/env_dpdk/env.mk +++ b/lib/env_dpdk/env.mk @@ -114,7 +114,11 @@ DPDK_LIB = $(DPDK_LIB_LIST:%=$(DPDK_ABS_DIR)/lib/lib%$(DPDK_LIB_EXT)) # SPDK memory registration requires experimental (deprecated) rte_memory API for DPDK 18.05 ENV_CFLAGS = $(DPDK_INC) -Wno-deprecated-declarations ENV_CXXFLAGS = $(ENV_CFLAGS) +ifeq ($(CONFIG_SHARED),y) +ENV_DPDK_FILE = $(call spdk_lib_list_to_shared_libs,env_dpdk) +else ENV_DPDK_FILE = $(call spdk_lib_list_to_static_libs,env_dpdk) +endif ENV_LIBS = $(ENV_DPDK_FILE) $(DPDK_LIB) ENV_LINKER_ARGS = $(ENV_DPDK_FILE) -Wl,--whole-archive,--no-as-needed $(DPDK_LIB) -Wl,--no-whole-archive