[dpdk-dev] [PATCH v3] meson: remove unnecessary explicit link to libpcap
Gabriel Ganne
gabriel.ganne at 6wind.com
Fri Apr 9 10:31:01 CEST 2021
Hi Thomas,
Thanks for the review.
The use case that made me see this is that I configured the dpdk using meson
option "-- default_library=static" in conjunction with buildroot which is
patching
meson to prefer static libraries in this case.
This causes the link line generated from the dependency() directive to
result
in an expanded "/path/to/libpcap.a".
The dpdk_extra_ldflags += '-lpcap' is a direct (manual) addition to the
link line
that cannot be changed in the same way.
In this specific setup, the change is the following:
Before:
-lpcap /path/to/libpcap.a
After:
/path/to/libpcap.a
I admit this is quite the corner case (and probably not a great idea).
I will replace that confusing second paragraph with the comment you made
regarding " ext_deps += pcap_dep".
Best regards,
On Fri, Apr 9, 2021 at 12:39 AM Thomas Monjalon <thomas at monjalon.net> wrote:
> Thank you, the fix looks good.
> I would like to improve the explanation.
>
> If I understand the issue, the title should be
> "build: remove redundant libpcap link"
>
> 26/03/2021 09:22, Gabriel Ganne:
> > libpcap is already found and registered as a dependency by meson, and
> > the dependency is already correctly used in librte_port. This line is
> > just unnecessary.
>
> To be precise, the pcap PMD and the librte_port both declare their
> dependency to libpcap with a line "ext_deps += pcap_dep"
> and meson automatically adds this dependency to the pkg-config file
> in the private section for static builds.
> That's why it is not needed to add the dependency explicitly
> in dpdk_extra_ldflags (involved in static build with pkg-config).
>
> > It also has the side effect of messing with the meson link line: dpdk
>
> Which "link line"?
>
> > link will be declared twice: manually and then through pkg-config. If
>
> What is "manually"?
>
> > you configure meson to prefer static linking over dynamic, this will
>
> No need to configure meson for that. Static linking can be tested with
> make in an example. Please avoid messing with meson explanation
> for application linking, it is already complicate enough :)
>
> > cause the build to fail on librte_port, since the pcap deps are not yet
> > seen by the linker.
>
> Sorry it is not clear to me.
> I think it would help to see a before/after effect on the link command.
> Something like:
>
> before:
> Libs.private: -lpcap
> Requires.private: libpcap
> after:
> Libs.private:
> Requires.private: libpcap
>
> [...]
> > - dpdk_extra_ldflags += '-lpcap'
>
>
>
>
--
Gabriel Ganne
More information about the dev
mailing list