[0/4] add testing of libdpdk pkg-config file
mbox series

Message ID 20190423220644.54589-1-bruce.richardson@intel.com
Headers show
Series
  • add testing of libdpdk pkg-config file
Related show

Message

Bruce Richardson April 23, 2019, 10:06 p.m. UTC
As part of the meson build, a pkg-config file for libdpdk is created, which
allows apps to be compiled and linked against DPDK by taking the cflags and
lib parameter from pkgconfig. The example app makefiles have been reworked
to take account of this support, but the build of them against the .pc file
was not regularly tested.

To rectify this, and give us greater confidence in the correctness of the
.pc file, this set adds in the sample apps to the installation set for
"ninja install" and then builds a subset of those apps against the
pkg-config file to test it. In the process a small error when compiling
the cmdline sample app using the .pc file was fixed.

Bruce Richardson (4):
  examples: install examples as part of ninja install
  examples: simplify getting list of all examples
  devtools/test-meson-builds: add testing of pkg-config file
  build: add libbsd to pkg-config file if enabled

 config/meson.build            | 10 ++++------
 devtools/test-meson-builds.sh | 17 +++++++++++++++++
 examples/meson.build          | 17 +++++++++++++----
 meson.build                   |  2 ++
 4 files changed, 36 insertions(+), 10 deletions(-)

Comments

Stephen Hemminger April 23, 2019, 11:04 p.m. UTC | #1
On Tue, 23 Apr 2019 23:06:40 +0100
Bruce Richardson <bruce.richardson@intel.com> wrote:

> As part of the meson build, a pkg-config file for libdpdk is created, which
> allows apps to be compiled and linked against DPDK by taking the cflags and
> lib parameter from pkgconfig. The example app makefiles have been reworked
> to take account of this support, but the build of them against the .pc file
> was not regularly tested.
> 
> To rectify this, and give us greater confidence in the correctness of the
> .pc file, this set adds in the sample apps to the installation set for
> "ninja install" and then builds a subset of those apps against the
> pkg-config file to test it. In the process a small error when compiling
> the cmdline sample app using the .pc file was fixed.
> 
> Bruce Richardson (4):
>   examples: install examples as part of ninja install
>   examples: simplify getting list of all examples
>   devtools/test-meson-builds: add testing of pkg-config file
>   build: add libbsd to pkg-config file if enabled
> 
>  config/meson.build            | 10 ++++------
>  devtools/test-meson-builds.sh | 17 +++++++++++++++++
>  examples/meson.build          | 17 +++++++++++++----
>  meson.build                   |  2 ++
>  4 files changed, 36 insertions(+), 10 deletions(-)
> 

My experiments with Ubuntu 18.04 showed the default version of meson
was too old (broken) and generated bad cflags.

Getting later one for Debian stable-backports worked.
Bruce Richardson April 24, 2019, 8:54 a.m. UTC | #2
On Tue, Apr 23, 2019 at 04:04:49PM -0700, Stephen Hemminger wrote:
> On Tue, 23 Apr 2019 23:06:40 +0100
> Bruce Richardson <bruce.richardson@intel.com> wrote:
> 
> > As part of the meson build, a pkg-config file for libdpdk is created, which
> > allows apps to be compiled and linked against DPDK by taking the cflags and
> > lib parameter from pkgconfig. The example app makefiles have been reworked
> > to take account of this support, but the build of them against the .pc file
> > was not regularly tested.
> > 
> > To rectify this, and give us greater confidence in the correctness of the
> > .pc file, this set adds in the sample apps to the installation set for
> > "ninja install" and then builds a subset of those apps against the
> > pkg-config file to test it. In the process a small error when compiling
> > the cmdline sample app using the .pc file was fixed.
> > 
> > Bruce Richardson (4):
> >   examples: install examples as part of ninja install
> >   examples: simplify getting list of all examples
> >   devtools/test-meson-builds: add testing of pkg-config file
> >   build: add libbsd to pkg-config file if enabled
> > 
> >  config/meson.build            | 10 ++++------
> >  devtools/test-meson-builds.sh | 17 +++++++++++++++++
> >  examples/meson.build          | 17 +++++++++++++----
> >  meson.build                   |  2 ++
> >  4 files changed, 36 insertions(+), 10 deletions(-)
> > 
> 
> My experiments with Ubuntu 18.04 showed the default version of meson
> was too old (broken) and generated bad cflags.
> 
> Getting later one for Debian stable-backports worked.

Thanks for the info - it's things like that that this scripting is needed
to catch.

How old was the older version and what was the diff from it vs newer?
Personally, to update meson, I'd always just use pip to get the latest.

/Bruce
Bruce Richardson April 24, 2019, 9 a.m. UTC | #3
On Wed, Apr 24, 2019 at 09:54:05AM +0100, Bruce Richardson wrote:
> On Tue, Apr 23, 2019 at 04:04:49PM -0700, Stephen Hemminger wrote:
> > On Tue, 23 Apr 2019 23:06:40 +0100 Bruce Richardson
> > <bruce.richardson@intel.com> wrote:
> > 
> > > As part of the meson build, a pkg-config file for libdpdk is created,
> > > which allows apps to be compiled and linked against DPDK by taking
> > > the cflags and lib parameter from pkgconfig. The example app
> > > makefiles have been reworked to take account of this support, but the
> > > build of them against the .pc file was not regularly tested.
> > > 
> > > To rectify this, and give us greater confidence in the correctness of
> > > the .pc file, this set adds in the sample apps to the installation
> > > set for "ninja install" and then builds a subset of those apps
> > > against the pkg-config file to test it. In the process a small error
> > > when compiling the cmdline sample app using the .pc file was fixed.
> > > 
> > > Bruce Richardson (4): examples: install examples as part of ninja
> > > install examples: simplify getting list of all examples
> > > devtools/test-meson-builds: add testing of pkg-config file build: add
> > > libbsd to pkg-config file if enabled
> > > 
> > >  config/meson.build            | 10 ++++------
> > >  devtools/test-meson-builds.sh | 17 +++++++++++++++++
> > >  examples/meson.build          | 17 +++++++++++++---- meson.build
> > >  |  2 ++ 4 files changed, 36 insertions(+), 10 deletions(-)
> > > 
> > 
> > My experiments with Ubuntu 18.04 showed the default version of meson
> > was too old (broken) and generated bad cflags.
> > 
> > Getting later one for Debian stable-backports worked.
> 
> Thanks for the info - it's things like that that this scripting is needed
> to catch.
> 
And as further followup on the need for this, checking this patchset on
FreeBSD shows that the "ninja install" step is broken there due to "ln",
used by "symlink-drivers-solibs.sh" postinstall script, not supporting the
"-r" flag on FreeBSD. :-(

I'll try and do up a V2 set to include that fix also.

/Bruce
Luca Boccassi April 26, 2019, 4:11 p.m. UTC | #4
On Tue, 2019-04-23 at 23:06 +0100, Bruce Richardson wrote:
> As part of the meson build, a pkg-config file for libdpdk is created,
> which
> allows apps to be compiled and linked against DPDK by taking the
> cflags and
> lib parameter from pkgconfig. The example app makefiles have been
> reworked
> to take account of this support, but the build of them against the
> .pc file
> was not regularly tested.
> 
> To rectify this, and give us greater confidence in the correctness of
> the
> .pc file, this set adds in the sample apps to the installation set
> for
> "ninja install" and then builds a subset of those apps against the
> pkg-config file to test it. In the process a small error when
> compiling
> the cmdline sample app using the .pc file was fixed.
> 
> Bruce Richardson (4):
>   examples: install examples as part of ninja install
>   examples: simplify getting list of all examples
>   devtools/test-meson-builds: add testing of pkg-config file
>   build: add libbsd to pkg-config file if enabled
> 
>  config/meson.build            | 10 ++++------
>  devtools/test-meson-builds.sh | 17 +++++++++++++++++
>  examples/meson.build          | 17 +++++++++++++----
>  meson.build                   |  2 ++
>  4 files changed, 36 insertions(+), 10 deletions(-)

Series-acked-by: Luca Boccassi <bluca@debian.org>
Bruce Richardson April 26, 2019, 4:20 p.m. UTC | #5
On Fri, Apr 26, 2019 at 05:11:18PM +0100, Luca Boccassi wrote:
> On Tue, 2019-04-23 at 23:06 +0100, Bruce Richardson wrote:
> > As part of the meson build, a pkg-config file for libdpdk is created,
> > which
> > allows apps to be compiled and linked against DPDK by taking the
> > cflags and
> > lib parameter from pkgconfig. The example app makefiles have been
> > reworked
> > to take account of this support, but the build of them against the
> > .pc file
> > was not regularly tested.
> > 
> > To rectify this, and give us greater confidence in the correctness of
> > the
> > .pc file, this set adds in the sample apps to the installation set
> > for
> > "ninja install" and then builds a subset of those apps against the
> > pkg-config file to test it. In the process a small error when
> > compiling
> > the cmdline sample app using the .pc file was fixed.
> > 
> > Bruce Richardson (4):
> >   examples: install examples as part of ninja install
> >   examples: simplify getting list of all examples
> >   devtools/test-meson-builds: add testing of pkg-config file
> >   build: add libbsd to pkg-config file if enabled
> > 
> >  config/meson.build            | 10 ++++------
> >  devtools/test-meson-builds.sh | 17 +++++++++++++++++
> >  examples/meson.build          | 17 +++++++++++++----
> >  meson.build                   |  2 ++
> >  4 files changed, 36 insertions(+), 10 deletions(-)
> 
> Series-acked-by: Luca Boccassi <bluca@debian.org>
> 
Thanks. I've actually got a V2 coming soon with some more rework, since I
found some more issues (especially on BSD) as I worked through the changes.

/Bruce