[dpdk-dev] [PATCH 3/4] devtools/test-meson-builds: add testing of pkg-config file

Bruce Richardson bruce.richardson at intel.com
Thu May 2 17:30:40 CEST 2019


On Thu, May 02, 2019 at 05:11:30PM +0200, Thomas Monjalon wrote:
> 02/05/2019 16:08, Luca Boccassi:
> > On Thu, 2019-05-02 at 14:17 +0100, Bruce Richardson wrote:
> > > On Thu, May 02, 2019 at 03:11:10PM +0200, Thomas Monjalon wrote:
> > > > 26/04/2019 16:56, Bruce Richardson:
> > > > > On Wed, Apr 24, 2019 at 02:37:58PM +0100, Luca Boccassi wrote:
> > > > > > On Wed, 2019-04-24 at 13:31 +0100, Bruce Richardson wrote:
> > > > > > > On Wed, Apr 24, 2019 at 12:02:24PM +0100, Luca Boccassi
> > > > > > > wrote:
> > > > > > > > On Wed, 2019-04-24 at 11:41 +0100, Bruce Richardson wrote:
> > > > > > > > > On Wed, Apr 24, 2019 at 10:22:04AM +0100, Luca Boccassi
> > > > > > > > > wrote:
> > > > > > > > > > On Tue, 2019-04-23 at 23:06 +0100, Bruce Richardson
> > > > > > > > > > wrote:
> > > > > > > > > > > +#
> > > > > > > > > > > rather
> > > > > > > > > > > than hacking our environment, just edit the .pc file
> > > > > > > > > > > prefix
> > > > > > > > > > > value
> > > > > > > > > > > +sed
> > > > > > > > > > > -i "s|prefix=|prefix=$DESTDIR|"
> > > > > > > > > > > $PKG_CONFIG_PATH/libdpdk.pc
> > > > > > > > > > 
> > > > > > > > > > What about just using meson's prefix option instead?
> > > > > > > > > > Which is
> > > > > > > > > > how
> > > > > > > > > > it
> > > > > > > > > > would be used in a real use case
> > > > > > > > > 
> > > > > > > > > I don't think that would fully work, as my understanding
> > > > > > > > > is that
> > > > > > > > > the
> > > > > > > > > prefix
> > > > > > > > > option would apply only to the /usr/local parts, but not
> > > > > > > > > to the
> > > > > > > > > kernel
> > > > > > > > > modules which would still try and install in /lib/.
> > > > > > > > 
> > > > > > > > What about doing a meson configure -Denable_kmods=false
> > > > > > > > before the
> > > > > > > > ninja install? The modules are not needed for that test
> > > > > > > > anyway,
> > > > > > > > right?
> > > > > > > > Alternatively, the kernel src dir could be symlinked in the
> > > > > > > > build
> > > > > > > > path,
> > > > > > > > and the kernel_dir option could be used
> > > > > > > > 
> > > > > > > > I'm just worried that the test should be as "realistic" as
> > > > > > > > possible, to
> > > > > > > > avoid missing something
> > > > > > > 
> > > > > > > Yes, I did think of that too, but it does mean doing another
> > > > > > > configuration
> > > > > > > run in meson, and possibly a rebuild too if the
> > > > > > > rte_build_config.h
> > > > > > > file
> > > > > > > changes. Therefore I decided to use DESTDIR for the sake of
> > > > > > > speed
> > > > > > > here. I
> > > > > > > assumed there would be a pkg-config variable to adjust the
> > > > > > > output
> > > > > > > paths
> > > > > > > based on a sysroot, but couldn't find a suitable one.
> > > > 
> > > > [...]
> > > > > > There actually is a pkg-config binary option, I just tried and
> > > > > > it works
> > > > > > (it seems to be disabled by default on Debian and derivatives):
> > > > > > --
> > > > > > define-prefix
> > > > > > 
> > > > > 
> > > > > Any cmdline options to pkg-config don't solve the problem here as
> > > > > it means
> > > > > that the makefiles for any app need to be modified to use all
> > > > > those.
> > > > 
> > > > It looks to be a good solution.
> > > > Being able to update the DPDK install directory when building
> > > > an application should be a mandatory requirement.
> > > > I suggest to wrap the call to pkg-config so we can have this
> > > > ability.
> > > > 
> > > 
> > > I would have expected that this issue has already been solved for
> > > packagers. I was surprised that I couldn't find an easy way to do so.
> > 
> > Packagers use standard paths - so it never becomes a problem.
> > 
> > If editing the file on the fly is not acceptable for the test script,
> > then I'd suggest to fall back to the pkg-config option, and just
> > document the need to use it in the docs for this scenarios.
> 
> What I mean is that we should be able to compile our apps
> after using DESTDIR, not related to the test script.
> Can we use an environment variable like RTE_TARGET? DPDK_DIR?
> 
We can certainly add one to our example Makefiles, it's just a couple of
lines change to each one to add a prefix to the return value from
pkg-config. I can attempt to do so in a later version of this patch, though
I'd prefer to take more time over it than we have in 19.05.

Alternatively, we can defer the last couple of patches in this set to
19.08, though again I'd prefer to have even this level of minimal testing
of pkg-config into 19.05.

Let me know what you think is best?

/Bruce


More information about the dev mailing list