build/pkg-config: prevent overlinking
authorBruce Richardson <bruce.richardson@intel.com>
Tue, 30 Jun 2020 14:14:33 +0000 (15:14 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 1 Jul 2020 17:30:52 +0000 (19:30 +0200)
commitb98447077b0609750c10b84b7b2e7be0c8504fad
tree92bd927700a979b99ef388e118fecf8193d4920f
parent8549295db07b1f5777a314ee0b75f768e7ec4913
build/pkg-config: prevent overlinking

Add the --as-needed linker flag to the DPDK library list in the pkg-config
file so as to prevent overlinking. Without this flag, when linking
statically using flags from $(pkg-config --static --libs libdpdk), all DPDK
drivers and libs were statically linked in, but the binary was also
requiring all the shared versions be present to run.

The real root-cause of this issue is that the DPDK libraries need to be
duplicated in the linker command when doing static linking, due to the
behaviour of pkg-config, but since that behaviour cannot be easily changed,
this is a simple workaround to avoid problems.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Acked-by: Sunil Pai G <sunil.pai.g@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
buildtools/pkg-config/meson.build