MRVL net pmd needs rte_cfgfile to parse QoS configuration file thus librte_pmd_mrvl.a contains undefined symbols from librte_cfgfile.a.
As a result linking applications under app/ directory will fail because librte_cfgfile.a comes before librte_pmd_mrvl.a during the linking stage. Linking the whole librte_cfgfile.a solves the issue. Signed-off-by: Jacek Siuda <j...@semihalf.com> Signed-off-by: Tomasz Duszynski <t...@semihalf.com> --- v2: * Changed commit message to explain problem better. mk/rte.app.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mk/rte.app.mk b/mk/rte.app.mk index c25fdd9..94568a8 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -81,10 +81,10 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_POWER) += -lrte_power _LDLIBS-$(CONFIG_RTE_LIBRTE_TIMER) += -lrte_timer _LDLIBS-$(CONFIG_RTE_LIBRTE_EFD) += -lrte_efd -_LDLIBS-$(CONFIG_RTE_LIBRTE_CFGFILE) += -lrte_cfgfile _LDLIBS-y += --whole-archive +_LDLIBS-$(CONFIG_RTE_LIBRTE_CFGFILE) += -lrte_cfgfile _LDLIBS-$(CONFIG_RTE_LIBRTE_HASH) += -lrte_hash _LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lrte_vhost _LDLIBS-$(CONFIG_RTE_LIBRTE_KVARGS) += -lrte_kvargs -- 2.7.4