On Thu, Oct 15, 2026 at 01:26:10PM +0200, Robin Jarry wrote: > dpdk_shared_lib_deps only collects library dependencies, so DPDK built > as a meson subproject with shared libraries never links against > drivers that install public headers (e.g. bus/pci, bus/vdev). Add > these drivers to dpdk_shared_lib_deps as well, mirroring what is > already done for libraries in lib/meson.build. > > Signed-off-by: Robin Jarry <[email protected]> > Acked-by: Bruce Richardson <[email protected]> > --- > > Notes: > v2: added driver shared libs to the list for pkg-config > > drivers/meson.build | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/meson.build b/drivers/meson.build > index 7146f036c4c9..0e8e69798bdf 100644 > --- a/drivers/meson.build > +++ b/drivers/meson.build > @@ -405,6 +405,10 @@ foreach subpath:subdirs > dependencies: static_deps) > > dpdk_static_drivers += static_lib > + if headers.length() > 0 > + dpdk_libraries += shared_lib > + dpdk_shared_lib_deps += shared_dep > + endif > 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. /Bruce

