09/11/2020 19:02, Bruce Richardson: > On Mon, Nov 09, 2020 at 06:09:51PM +0100, Thomas Monjalon wrote: > > 27/10/2020 18:38, Bruce Richardson: > > > To test the installation process of DPDK using "ninja install" > > > test-meson-builds.sh builds a subset of the examples using "make". To > > > allow > > > more flexibility for people testing, allow the set of examples chosen for > > > this make test to be overridden using variable "DPDK_BUILD_TEST_EXAMPLES" > > > in the environment. > > > > > > Since a number of example apps link against drivers directly even for > > > shared builds, we need to ensure that LD_LIBRARY_PATH points to the main > > > DPDK lib folder so any dependencies of those drivers can be found e.g. > > > that > > > the PCI/vdev bus driver .so is found. [All drivers are symlinked from > > > drivers dir back to lib dir on install, so only one dir rather than two is > > > needed in the path.] > > [...] > > > +libdir=$(dirname $(find $DESTDIR -name librte_eal.so)) > > > +export LD_LIBRARY_PATH=$libdir:$LD_LIBRARY_PATH > > > > I don't get why libdir is required for some examples, > > and not for others? The pkg-config file is not enough? > > > > It's only needed for examples that link against drivers directly. > > I believe it's needed in those cases, because app linker flags (including > e.g. -lrte_pmd_bond) occur before the pkg-config flags, which means that > the linker at that point does not have the path to find the dependencies of > the driver. [In a normal build, this wouldn't be necessary because the > library directory would be a standard path]
If it's just a matter of ordering, it would be a better example to fix the ordering in the Makefile, isn't it?