On Fri, 2019-01-25 at 16:39 +0000, Luca Boccassi wrote:
> On Fri, 2019-01-25 at 11:28 -0500, Aaron Conole wrote:
> > Christian Ehrhardt <christian.ehrha...@canonical.com> writes:
> >
> > > DPDK 18.11 builds using the more modern meson build system no
> > > more
> > > provide the -ldpdk linker script. Instead it is expected to use
> > > pkgconfig for linker options as well.
> > >
> > > This change will set DPDK_LIB from pkg-config (if pkg-config was
> > > available) and since that already carries the whole-archive flags
> > > around
> > > the PMDs skips the further wrapping in more whole-archive if that
> > > is
> > > already part of DPDK_LIB.
> > >
> > > Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.c
> > > om
> > > >
> > >
> > > ---
> > > acinclude.m4 | 17 ++++++++++++-----
> > > 1 file changed, 12 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/acinclude.m4 b/acinclude.m4
> > > index f038fd457..a45411860 100644
> > > --- a/acinclude.m4
> > > +++ b/acinclude.m4
> > > @@ -223,9 +223,9 @@ AC_DEFUN([OVS_CHECK_DPDK], [
> > > case "$with_dpdk" in
> > > yes)
> > > DPDK_AUTO_DISCOVER="true"
> > > - PKG_CHECK_MODULES([DPDK], [libdpdk],
> > > - [DPDK_INCLUDE="$DPDK_CFLAGS"],
> > > - [DPDK_INCLUDE="-
> > > I/usr/local/include/dpdk
> > > -I/usr/include/dpdk"])
> > > + PKG_CHECK_MODULES_STATIC([DPDK], [libdpdk],
> > > + [DPDK_INCLUDE="$DPDK_CFLAGS",
> > > DPDK_LIB="$DPDK_LIBS"],
> > > +
> > > [DPDK_INCLUDE="-I/usr/local/include/dpdk -I/usr/include/dpdk",
> > > DPDK_LIB="-ldpdk"])
> >
> > Something about this autoconf check caused all of the travis builds
> > to
> > fail:
> >
> > https://travis-ci.org/ovsrobot/ovs/builds/483986081
> >
> > The PKG_CHECK_MODULES_STATIC seems to have been added in a later
> > version
> > of autoconf than is shipped in the travis environment, so it might
> > be
> > something we need to test against and provide an alternative
> > implementation, ala the following bug report:
> >
> > https://bugs.freedesktop.org/show_bug.cgi?id=19541
>
> Hi,
>
> The PKG_CHECK* macros come from the pkg-config package, not autoconf,
> in version 0.29. The version of pkg-config in Ubuntu 14.04 does not
> indeed contain it, but 16.04 does.
>
> If you go down the reimplementation route, I would recommend checking
> for the macro version first and add a comment, so that you can then
> drop it when compatibility with Ubuntu 14.04 and Debian 8 is no
> longer
> required.
Also, these macro files are all versioned - autoconf is smart enough to
check the version if you have it locally, and if the system's is
higher, it will use that one instead, so there's no drawback to
backporting.
In other words, you can drop pkg.m4 version 0.29 in the m4/ directory
in the repository, add "m4_include([m4/pkg.m4])" to configure.ac and
then not worry about it anymore until compatibility with Ubuntu 14.04
and Debian 8 can be dropped.
> > Thinking about it, is there a reason to change from dynamic linking
> > to
> > static linking? Especially since we can achieve something similar
> > via
> > the `PKG_CONFIG="$PKG_CONFIG --static"` override?
>
> Note that this is not doing static linking - it's just getting the
> full
> list of libs (which includes all the PMDs). The _STATIC macro is
> implemented exactly as you suggested above.
>
--
Kind regards,
Luca Boccassi
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev