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 # }}}
signature.asc
Description: This is a digitally signed message part