[dpdk-dev] JSON compilation in examples/vm_power_manager

Thomas Monjalon thomas at monjalon.net
Thu Nov 1 16:12:40 CET 2018


01/11/2018 15:59, Richardson, Bruce:
> > -----Original Message-----
> > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Thomas Monjalon
> > Sent: Thursday, November 1, 2018 2:40 PM
> > To: Hunt, David <david.hunt at intel.com>
> > Cc: dev at dpdk.org
> > Subject: Re: [dpdk-dev] JSON compilation in examples/vm_power_manager
> >
> > 01/11/2018 15:26, Hunt, David:
> > > Hi Thomas,
> > >
> > >
> > > On 1/11/2018 10:47 AM, Thomas Monjalon wrote:
> > > > Hi Dave,
> > > >
> > > > In examples/vm_power_manager/Makefile, jansson lib availability is
> > > > detected with pkg-config --exists.
> > > > As we have seen for telemetry lib, we can detect jansson for the
> > > > wrong arch and enable it no matter the arch being compiled.
> > > >
> > > > The solution was to disable it in Makefile and use meson for
> > > > reliable dependency detection.
> > > >
> > > > Would you like to do the same for this app?
> > > >
> > > >
> > >
> > > I would prefer that if the user is cross compiling or selecting a
> > > different target, that they set up their environment variables
> > > correctly for compilation. In this case, the user should set
> > > PKG_CONFIG_LIBDIR to point to the relevant library folder, e.g. for an
> > > i386 build:
> > >
> > > export PKG_CONFIG_LIBDIR=/usr/lib/i386-linux-gnu/pkgconfig
> > >
> > > That way the Makefile will pick up the correct library if it's
> > > present, and build without the library if it is not present.
> > >
> > > Also, if DPDK is being built natively on a machine, the makefile
> > > should be fine as it is.
> > >
> > > So, how about I create a patch to add a few lines to the docs around
> > > compilation describing how to set up PKG_CONFIG_LIBDIR correctly for
> > > the vm_power_manager sample app?
> >
> > I think it was the solution I thought about for telemetry.
> > But in the case of multilib installation (x86_64/i686), we do not have
> > such separate directory.
> 
> Actually, we do. First two outputs from "find /usr -name pkgconfig -type d"
> 
> /usr/lib/pkgconfig
> /usr/lib64/pkgconfig
> 
> 32-bit pkgconfig files go in the former, 64-bit in the latter. Unfortunately there
> doesn't appear to be a flag to tell pkgconfig which set of libs you are looking
> for, you have to set the libdir appropriately.
> 
> > I think the only reliable solution is to test compilation as autotools or
> > meson do.
> >
> Even then, with meson, when doing a multi-lib compile, you need to set the
> appropriate PKG_CONFIG_LIBDIR value when you pass in -m32 with your CFLAGS.
> [When doing a multi-lib compile using a cross-file, things are different,
> and it's not necessary]

OK, let's document it then.

Thanks




More information about the dev mailing list