mk: check shared library dependencies
authorPanu Matilainen <pmatilai@redhat.com>
Tue, 21 Jun 2016 08:11:49 +0000 (11:11 +0300)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 29 Jun 2016 11:33:01 +0000 (13:33 +0200)
Require all symbols used by a DSO to be resolvable via LDLIBS at
build-time. Previously it was possible to build a library with
incomplete dependencies which could then fail at run-time.

Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
mk/rte.lib.mk

index 924dfb5..0187ae8 100644 (file)
@@ -94,7 +94,7 @@ O_TO_A_DO = @set -e; \
        echo $(O_TO_A_CMD) > $(call exe2cmd,$(@))
 
 O_TO_S = $(LD) -L$(RTE_SDK_BIN)/lib $(_CPU_LDFLAGS) $(EXTRA_LDFLAGS) \
-         -shared $(OBJS-y) $(LDLIBS) -Wl,-soname,$(LIB) -o $(LIB)
+         -shared $(OBJS-y) -z defs $(LDLIBS) -Wl,-soname,$(LIB) -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_DO = @set -e; \