This patch mainly makes use of the LDLIBS variable when linking shared libraries, setting proper DT_NEEDED entries.
This patch also fixes a few nits like syntax highlighting, the command string (O_TO_S_CMD) used for linking shared libraries and the displayed of dependencies when debugging is enable (D). Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy at intel.com> --- mk/rte.lib.mk | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk index d96101a..603badf 100644 --- a/mk/rte.lib.mk +++ b/mk/rte.lib.mk @@ -62,16 +62,19 @@ build: _postbuild exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1)))) +_LDLIBS := --as-needed $(LDLIBS) $(EXECENV_LDLIBS) --no-as-needed + ifeq ($(LINK_USING_CC),1) # Override the definition of LD here, since we're linking with CC LD := $(CC) $(CPU_CFLAGS) _CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS)) +_LDLIBS := $(call linkerprefix,$(_LDLIBS)) else _CPU_LDFLAGS := $(CPU_LDFLAGS) endif O_TO_A = $(AR) crus $(LIB) $(OBJS-y) -O_TO_A_STR = $(subst ','\'',$(O_TO_A)) #'# fix syntax highlight +O_TO_A_STR = $(subst ','\'',$(O_TO_A)) #')# fix syntax highlight O_TO_A_DISP = $(if $(V),"$(O_TO_A_STR)"," AR $(@)") O_TO_A_CMD = "cmd_$@ = $(O_TO_A_STR)" O_TO_A_DO = @set -e; \ @@ -79,9 +82,11 @@ O_TO_A_DO = @set -e; \ $(O_TO_A) && \ echo $(O_TO_A_CMD) > $(call exe2cmd,$(@)) -O_TO_S = $(LD) $(_CPU_LDFLAGS) -shared $(OBJS-y) -Wl,-soname,$(LIB) -o $(LIB) -O_TO_S_STR = $(subst ','\'',$(O_TO_S)) #'# fix syntax highlight +O_TO_S = $(LD) $(_CPU_LDFLAGS) -L $(RTE_OUTPUT)/lib -Wl,-soname,$(LIB) \ + -shared $(OBJS-y) $(_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)" O_TO_S_DO = @set -e; \ echo $(O_TO_S_DISP); \ $(O_TO_S) && \ @@ -100,7 +105,7 @@ ifeq ($(LIBABIVER),) endif @[ -d $(dir $@) ] || mkdir -p $(dir $@) $(if $(D),\ - @echo -n "$< -> $@ " ; \ + @echo -n "$? -> $@ " ; \ echo -n "file_missing=$(call boolean,$(file_missing)) " ; \ echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_S_STR))) " ; \ echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \ @@ -115,7 +120,7 @@ else $(LIB): $(OBJS-y) $(DEP_$(LIB)) FORCE @[ -d $(dir $@) ] || mkdir -p $(dir $@) $(if $(D),\ - @echo -n "$< -> $@ " ; \ + @echo -n "$? -> $@ " ; \ echo -n "file_missing=$(call boolean,$(file_missing)) " ; \ echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_A_STR))) " ; \ echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \ -- 1.9.3