2014-12-16 08:58, Neil Horman: > On Tue, Dec 16, 2014 at 12:04:44AM +0100, Thomas Monjalon wrote: > > 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> [...] > > --- 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) > > Actually, what if we just add $(LDFLAGS) to the O_TO_S rule in mk/rte.lib.mk? > Then in lib/librte_pmd_pcap/Makefile, we can just add LDFLAGS+=-lpcap, and the > loading of the pcap pmd will itself require the loading of libpcap. That > would > be a nice clean implementation that allows applications to just link the pmd > and > not have to worry about dependencies. It would also allow us to clean up > other > dependencies like the xenvirt pmd and vhost.
Yes it makes sense. Could you test it please? What about applying my patch (which keep the existing logic) as a first fix/clean-up and then move -lpcap in PMD as a second step? Proceeding this way would allow to integrate a safe fix for 1.8.0. Maybe that linking pcap in the PMD could unveil new bugs with some distributions, so it would need some time to validate it. -- Thomas