[dpdk-dev] [PATCH 01/11] mk: use whole-archive option when creating dpdk binaries

Olivier Matz olivier.matz at 6wind.com
Fri Feb 28 18:25:40 CET 2014


To fully support dpdk extensions (loading of .so), all symbols provided
by dpdk libraries must be available in the binaries: before this patch,
unused functions/variables from dpdk static libraries could be stripped
by the linker because they are not used. These symbols can be used by a
dpdk extension that is loaded at runtime with the -d option.

Adding --whole-archive when generating a binary solves this issue.

Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
---
 mk/rte.app.mk | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index d90a0b0..6f21e16 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -1,6 +1,7 @@
 #   BSD LICENSE
 # 
 #   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+#   Copyright(c) 2014 6WIND S.A.
 #   All rights reserved.
 # 
 #   Redistribution and use in source and binary forms, with or without
@@ -58,6 +59,8 @@ LDLIBS += -L$(RTE_SDK_BIN)/lib
 #
 ifeq ($(NO_AUTOLIBS),)
 
+LDLIBS += --whole-archive
+
 ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
 ifeq ($(CONFIG_RTE_EXEC_ENV_LINUXAPP),y)
 LDLIBS += -lrte_kni
@@ -180,6 +183,8 @@ LDLIBS += $(EXECENV_LDLIBS)
 
 LDLIBS += --end-group
 
+LDLIBS += --no-whole-archive
+
 endif # ifeq ($(NO_AUTOLIBS),)
 
 LDLIBS += $(CPU_LDLIBS)
-- 
1.8.5.3



More information about the dev mailing list