Some applications doesn't have the pcap link flag when shared libraries are enabled. Indeed in such case, pcap PMD must not be linked but pcap library should.
Actually -lpcap is always needed if pcap PMD is used, and -lrte_pmd_pcap must be set only with static PMD library. So the flags -lrte_pmd_pcap and -lpcap are enabled separately. Workarounds in test-pmd/ and test-pipeline/ can be removed. Reported-by: Stepan Sojka <stepan.sojka at adaptivemobile.com> Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com> --- v2: fix in rte.app.mk v1 from Stepan: fix every applications app/test-pipeline/Makefile | 4 ---- app/test-pmd/Makefile | 4 ---- mk/rte.app.mk | 6 +++++- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/app/test-pipeline/Makefile b/app/test-pipeline/Makefile index b81652f..aa6df0c 100644 --- a/app/test-pipeline/Makefile +++ b/app/test-pipeline/Makefile @@ -41,10 +41,6 @@ APP = testpipeline CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) -ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y) -LDFLAGS += -lpcap -endif - # # all source are stored in SRCS-y # diff --git a/app/test-pmd/Makefile b/app/test-pmd/Makefile index 97dc2e6..dcf26f4 100644 --- a/app/test-pmd/Makefile +++ b/app/test-pmd/Makefile @@ -41,10 +41,6 @@ APP = testpmd CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) -ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y) -LDFLAGS += -lpcap -endif - # # all source are stored in SRCS-y # diff --git a/mk/rte.app.mk b/mk/rte.app.mk index 84ec4df..c5eaf82 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -119,6 +119,10 @@ LDLIBS += -lm LDLIBS += -lrt endif +ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y) +LDLIBS += -lpcap +endif + LDLIBS += --start-group ifeq ($(CONFIG_RTE_LIBRTE_KVARGS),y) @@ -207,7 +211,7 @@ LDLIBS += -lrte_pmd_ring endif ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y) -LDLIBS += -lrte_pmd_pcap -lpcap +LDLIBS += -lrte_pmd_pcap endif ifeq ($(CONFIG_RTE_LIBRTE_PMD_AF_PACKET),y) -- 2.1.3