[dpdk-dev] [PATCH v5] build: remove redundant libpcap link

Thomas Monjalon thomas at monjalon.net
Wed Apr 14 23:10:46 CEST 2021


14/04/2021 23:02, Dmitry Kozlyuk:
> 2021-04-14 11:41 (UTC+0200), Thomas Monjalon:
> > 09/04/2021 14:25, Thomas Monjalon:
> > > From: Gabriel Ganne <gabriel.ganne at 6wind.com>
> > > 
> > > The pcap PMD and the librte_port both declare their dependency to libpcap
> > > with a line "ext_deps += pcap_dep".
> > > Then meson automatically adds this dependency to the pkg-config file
> > > in the "Requires.private" section for static builds.
> > > 
> > > The additional update of dpdk_extra_ldflags was adding the dependency
> > > in the "Libs.private" section of the pkg-config, that is unnecessary.
> > > 
> > > Fixes: efd5d1a8d8dd ("drivers/net: build some vdev PMDs with meson")
> > > Fixes: 268fa581b1ff ("port: fix pcap support with meson")
> > > Cc: stable at dpdk.org
> > > 
> > > Signed-off-by: Gabriel Ganne <gabriel.ganne at 6wind.com>
> > > Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> > > ---
> > > I have a doubt whether this option is really always useless.
> > > In the case of an old pcap (<1.9) without pkg-config support,
> > > and with the minimum meson supported (0.47.1),
> > > are we sure the generated pkg-config file will include -lpcap?  
> > 
> > Any volunteer to test please?
> 
> Ubuntu 16.04, Meson 0.47.1, libpcap 1.7.4-2ubuntu0.1, after the patch
> libdpdk.pc contains:
> 
> 	Libs.private: -lpcap -lpcap -lpcap -lpcap -lpcap -lpcap -lpcap -lpcap
> 	-lpcap -lpcap [...DPDK libraries...]
> 
> Note that -lpcap comes _before_ DPDK libraries that require it.
> As a consequence, this doesn't link with unresolved libpcap symbols:
> 
> 	gcc test.c `pkg-config --static --cflags --libs libdpdk`
> 
> Before the patch -lpcap was _after_ DPDK libraries,
> link succeeded (there was also _one_ -lpcap before DPDK libraries).
> 
> Meson 0.55.1 places -lpcap _after_ DPDK libraries,
> link succeeds both before and after the patch.
> 
> Conclusion: this patch really breaks .pc file for older meson.

Thanks for the test.
I propose to defer this patch.
It could be merged when we upgrade meson requirement.

In the meantime, we could document why this line is required.

> If it can't be merged, dependent patches for net/pcap on Windows
> can be easily adjusted to work without it.




More information about the dev mailing list