Control: tags -1 patch

On Mon, 03 Dec 2018 18:00:55 +0000 Luca Boccassi <bl...@debian.org>
wrote:
> Source: collectd
> Version: 5.8.1-1
> Severity: important
> Forwarded: https://github.com/collectd/collectd/pull/3015
> 
> Collectd's configure.ac uses AC_CHECK_LIB to test for the
availability
> of DPDK, but that macro will hard-code the linker flag to -ldpdk
which
> does not exist anymore in DPDK 18.11 (it was a linker script
> previously).
> 
> The fix is to stop doing compile-time checks if the pkg-config file
is
> available and satisfies the dependency. A pull request has been
opened
> upstream, and I will follow-up with a backported patch once accepted.

Dear Maintainer,

The fix has been merged upstream and backported in the 5.8 branch. The
backported commit is attached as a patch.

I've also sent it as a pull request on Github:

https://github.com/collectd/pkg-debian/pull/16

It would be great if it could be applied and uploaded, so that we can
upload the new DPDK version to sid.

-- 
Kind regards,
Luca Boccassi
Author: Luca Boccassi <bl...@debian.org>
Origin: https://github.com/collectd/collectd/commit/b29454cdf22a197924d35bb2da0840df9cbd65f6
Forwarded: https://github.com/collectd/collectd/pull/3015
Description: do not use -ldpdk for configure check
 The AC_CHECK_LIB test runs unconditionally, and fails with DPDK 18.11
 when built with Meson as there is no longer a libdpdk.so linker script,
 but only a pkg-config file, so -ldpdk (which is what AC_CHECK_LIB runs)
 fails.
 Use AC_LINK_IFELSE instead, with compiler and linker flags set
 appropriately.
--- a/configure.ac
+++ b/configure.ac
@@ -2380,13 +2380,30 @@ if test "x$with_libdpdk" != "xno"; then
 fi
 
 if test "x$with_libdpdk" = "xyes"; then
+  SAVE_LIBS="$LIBS"
+  LIBS="$LIBDPDK_LIBS $LIBS"
   SAVE_LDFLAGS="$LDFLAGS"
   LDFLAGS="$LIBDPDK_LDFLAGS $LDFLAGS"
-  AC_CHECK_LIB([dpdk], [rte_eal_init],
+  SAVE_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="$LIBDPDK_CPPFLAGS $CPPFLAGS"
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$LIBDPDK_CFLAGS $CFLAGS"
+  AC_LINK_IFELSE(
+    [
+      AC_LANG_PROGRAM(
+        [[
+          #include <rte_eal.h>
+        ]],
+        [[return rte_eal_init(0, NULL);]]
+      )
+    ],
     [with_libdpdk="yes"],
     [with_libdpdk="no (symbol 'rte_eal_init' not found)"]
   )
+  LIBS="$SAVE_LIBS"
   LDFLAGS="$SAVE_LDFLAGS"
+  CPPFLAGS="$SAVE_CPPFLAGS"
+  CFLAGS="$SAVE_CFLAGS"
 fi
 
 # }}}

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to