Bruce Richardson, Oct 15, 2026 at 13:52:
I think this changes significantly how out pkg-config files are working, vs
our original intention, so I think it actually needs more discussion.
As originally designed, when dynamically linking against DPDK the pkg-config
--libs libdpdk call was only meant to list out the libraries, with drivers
being dynamically loaded at runtime. Since drivers were never meant to have
a public API that was generally used, I believe the idea was that anyone
using driver-specific APIs was required themselves to pass the driver
explicitly to the linker. Otherwise everyone who does not use that driver
could end up (depending on their linker flags) with a dependency on that
unused driver. This change modifies that assumption and, while it makes it
easier for those using driver-specific APIs, it does change how things have
worked up till now.
On my system using a default build, this adds 33 drivers to the list of
libraries to link against when using pkg-config --libs.
But since these libraries are preceded by -Wl,--as-needed, only ones
that expose symbols that your binary uses will be linked. I don't think
it would change anything in the final result.
Also, this aligns with what the static build is doing: list all drivers
as well albeit with -Wl,--whole-archive and *without* -Wl,--as-needed.
What do you think?
--
Robin
# Do not try this at home.