Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy at intel.com> --- mk/rte.app.mk | 4 ++-- mk/rte.lib.mk | 8 +++++++- mk/rte.sharelib.mk | 7 ++++++- 3 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/mk/rte.app.mk b/mk/rte.app.mk index 5e00e67..e775ad7 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -62,9 +62,9 @@ ifeq ($(NO_AUTOLIBS),) LDLIBS += --whole-archive LDLIBS += -l$(RTE_LIBNAME) LDLIBS += --no-whole-archive -LDLIBS += --start-group +LDLIBS += --as-needed LDLIBS += $(EXECENV_LDLIBS) -LDLIBS += --end-group +LDLIBS += --no-as-needed endif # ifeq ($(NO_AUTOLIBS),) diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk index e7420bf..947e17d 100644 --- a/mk/rte.lib.mk +++ b/mk/rte.lib.mk @@ -59,14 +59,20 @@ build: _postbuild exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1)))) +O_TO_S_LDLIBS := --as-needed +O_TO_S_LDLIBS += $(EXECENV_LDLIBS) +O_TO_S_LDLIBS += --no-as-needed + ifeq ($(LINK_USING_CC),1) # Override the definition of LD here, since we're linking with CC LD := $(CC) LD_MULDEFS := $(call linkerprefix,-z$(comma)muldefs) CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS)) +O_TO_S_LDLIBS := $(call linkerprefix,$(O_TO_S_LDLIBS)) endif -O_TO_S = $(LD) $(CPU_LDFLAGS) $(LD_MULDEFS) -shared $(OBJS-y) -o $(LIB) +O_TO_S = $(LD) $(CPU_LDFLAGS) $(LD_MULDEFS) -shared $(OBJS-y) \ + $(O_TO_S_LDLIBS) -o $(LIB) O_TO_S_STR = $(subst ','\'',$(O_TO_S)) #') # fix syntax highlight O_TO_S_DISP = $(if $(V),"$(O_TO_S_STR)"," LD $(@)") O_TO_S_CMD = "cmd_$@ = $(O_TO_S_STR)" diff --git a/mk/rte.sharelib.mk b/mk/rte.sharelib.mk index 8fc6548..380aa7d 100644 --- a/mk/rte.sharelib.mk +++ b/mk/rte.sharelib.mk @@ -40,11 +40,16 @@ else LIB_ONE := lib$(RTE_LIBNAME).a endif +O_TO_L_LDLIBS := --as-needed +O_TO_L_LDLIBS += $(EXECENV_LDLIBS) +O_TO_L_LDLIBS += --no-as-needed + ifeq ($(LINK_USING_CC),1) # Override the definition of LD here, since we're linking with CC LD := $(CC) LD_MULDEFS := $(call linkerprefix,-z$(comma)muldefs) CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS)) +O_TO_L_LDLIBS := $(call linkerprefix,$(O_TO_L_LDLIBS)) endif .PHONY:sharelib @@ -54,7 +59,7 @@ OBJS = $(wildcard $(RTE_OUTPUT)/build/lib/*.o) ifeq ($(RTE_BUILD_SHARED_LIB),y) O_TO_L = $(LD) $(CPU_LDFLAGS) $(LD_MULDEFS) -shared $(OBJS)\ - -o $(RTE_OUTPUT)/lib/$(LIB_ONE) + $(O_TO_L_LDLIBS) -o $(RTE_OUTPUT)/lib/$(LIB_ONE) L_DISP=LD else O_TO_L = $(AR) crus $(RTE_OUTPUT)/lib/$(LIB_ONE) $(OBJS) -- 1.9.3