From c94c546e005f022b2f1c262432f74e7f7ef0b624 Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Wed, 21 Oct 2020 02:17:46 +0000 Subject: [PATCH] build: force shared library dependencies We use some implicit depdendencies in our subsystem libraries. With at least some linkers, these dependencies are not written into the shared library file if there is no actual symbol dependency found. So use --no-as-needed to ensure the dependencies stick. Signed-off-by: Jim Harris Change-Id: Idb476efb50b00ff04f5640b4e5a1362a1f096fa7 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4796 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Reviewed-by: Changpeng Liu Reviewed-by: Aleksey Marchuk Reviewed-by: Maciej Wawryk --- mk/spdk.common.mk | 2 +- mk/spdk.lib.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mk/spdk.common.mk b/mk/spdk.common.mk index 3fc04792f..2b97bf689 100644 --- a/mk/spdk.common.mk +++ b/mk/spdk.common.mk @@ -272,7 +272,7 @@ define spdk_build_realname_shared_lib -Wl,--soname,$(notdir $@) \ -Wl,--whole-archive $(1) -Wl,--no-whole-archive \ -Wl,--version-script=$(2) \ - $(3) + $(3) -Wl,--no-as-needed $(4) -Wl,--as-needed endef BUILD_LINKERNAME_LIB=\ diff --git a/mk/spdk.lib.mk b/mk/spdk.lib.mk index 39bf907ff..805576fb0 100644 --- a/mk/spdk.lib.mk +++ b/mk/spdk.lib.mk @@ -91,7 +91,7 @@ $(SHARED_LINKED_LIB): $(SHARED_REALNAME_LIB) $(SHARED_REALNAME_LIB): $(LIB) $(Q)echo " SO $(notdir $@)"; \ - $(call spdk_build_realname_shared_lib,$^,$(SPDK_MAP_FILE),$(LOCAL_SYS_LIBS) $(SPDK_DEP_LIBS)) + $(call spdk_build_realname_shared_lib,$^,$(SPDK_MAP_FILE),$(LOCAL_SYS_LIBS),$(SPDK_DEP_LIBS)) $(LIB): $(OBJS) $(LIB_C)