[ovs-dev] [PATCH v6 1/1] acinclude: Also use LIBS from dpkg pkg-config

Ben Pfaff blp at ovn.org
Tue Feb 12 22:47:06 UTC 2019


On Tue, Feb 12, 2019 at 07:29:58AM +0100, Christian Ehrhardt wrote:
> 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.
> 
> To work reliable in all environments this needs pkg-config 0.29.1.
> We want to be able to use PKG_CHECK_MODULES_STATIC which
> is not yet available in 0.24. Therefore update pkg.m4
> to pkg-config 0.29.1.
> 
> This should be backport-safe as 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.
> 
> Acked-by: Luca Boccassi <bluca at debian.org>
> Acked-by: Aaron Conole <aconole at redhat.com>
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt at canonical.com>

"Autoconf coding style" is basically an oxymoron--Autoconf looks ugly
almost no matter what--but this look unusual to me:

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

I suggest the following:

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

or

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

Beyond that, I will leave this patch to Ian.


More information about the dev mailing list