[dpdk-dev] [PATCH v3 6/6] mk: prevent overlinking in applications
Ferruh Yigit
ferruh.yigit at intel.com
Fri Jun 10 20:32:30 CEST 2016
Replace --no-as-needed linker flag with --as-needed flag, which will
only link libraries directly called by application.
It can be achieved now that the libraries dependencies are handled
properly.
Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
---
mk/exec-env/linuxapp/rte.vars.mk | 3 ---
mk/rte.app.mk | 8 ++++++++
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/mk/exec-env/linuxapp/rte.vars.mk b/mk/exec-env/linuxapp/rte.vars.mk
index d51bd17..a8a1ee4 100644
--- a/mk/exec-env/linuxapp/rte.vars.mk
+++ b/mk/exec-env/linuxapp/rte.vars.mk
@@ -45,9 +45,6 @@ else
EXECENV_CFLAGS = -pthread
endif
-# Workaround lack of DT_NEEDED entry
-EXECENV_LDFLAGS = --no-as-needed
-
EXECENV_LDLIBS =
EXECENV_ASFLAGS =
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index f60e5bf..aa794bc 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -50,6 +50,14 @@ ifeq ($(NO_LDSCRIPT),)
LDSCRIPT = $(RTE_LDSCRIPT)
endif
+ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
+# Workaround to eal <-> mempool cyclic dependency
+_LDLIBS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += -lrte_mempool
+endif
+
+# Link only the libraries used in the application
+_LDLIBS-y += --as-needed
+
# default path for libs
_LDLIBS-y += -L$(RTE_SDK_BIN)/lib
--
2.5.5
More information about the dev
mailing list