[dpdk-dev] JSON compilation in examples/vm_power_manager

Richardson, Bruce bruce.richardson at intel.com
Thu Nov 1 15:59:50 CET 2018



> -----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]

/Bruce



More information about the dev mailing list