Subject: [PATCH] configure: allow overriding hardcoded /usr/include/libnl3
From: Jo-Philipp Wich <[email-masked]>
Date: Fri, 6 Jan 2017 13:41:00 +0100

In a cross-compile setting we do not want to probe the host systems
/usr/include path, therfore allow to disable this include path by passing
ac_cv_header_netlink_netlink_h=yes to configure.

Also disable the testing for libraries providing nl_connect when
netsnmp_cv_func_nl_connect_LIBS is predefined since the proprietary
NETSNMP_SEARCH_LIBS() macro will clobber the internal link flags upon
encountering predefined cache variables, causing all subsequent configure
link tests to fail due to a stray "no" word getting passed to the linker.

Signed-off-by: Jo-Philipp Wich <[email-masked]>
--- a/configure.d/config_os_libs2
+++ b/configure.d/config_os_libs2
@@ -247,14 +247,22 @@ if test "x$with_nl" != "xno"; then
         )
 
         netsnmp_save_CPPFLAGS="$CPPFLAGS"
-        CPPFLAGS="${LIBNL3_CFLAGS} $CPPFLAGS"
-        NETSNMP_SEARCH_LIBS(nl_connect, nl-3,
-            [AC_CHECK_HEADERS(netlink/netlink.h)
-            EXTERNAL_MIBGROUP_INCLUDES="$EXTERNAL_MIBGROUP_INCLUDES ${LIBNL3_CFLAGS}"],
-            [CPPFLAGS="$netsnmp_save_CPPFLAGS"], [], [LMIBLIBS])
+        netsnmp_netlink_include_flags=""
         if test "x$ac_cv_header_netlink_netlink_h" != xyes; then
-            NETSNMP_SEARCH_LIBS(nl_connect, nl, [
-                AC_CHECK_HEADERS(netlink/netlink.h)], [], [], LMIBLIBS)
+            netsnmp_netlink_include_flags="-I/usr/include/libnl3"
+        fi
+        CPPFLAGS="$netsnmp_netlink_include_flags $CPPFLAGS"
+        if test "x$netsnmp_cv_func_nl_connect_LIBS" = x; then
+            NETSNMP_SEARCH_LIBS(nl_connect, nl-3,
+                [AC_CHECK_HEADERS(netlink/netlink.h)
+                EXTERNAL_MIBGROUP_INCLUDES="$EXTERNAL_MIBGROUP_INCLUDES $netsnmp_netlink_include_flags"],
+                [CPPFLAGS="$netsnmp_save_CPPFLAGS"], [], [], [LMIBLIBS])
+            if test "x$ac_cv_header_netlink_netlink_h" != xyes; then
+                NETSNMP_SEARCH_LIBS(nl_connect, nl, [
+                    AC_CHECK_HEADERS(netlink/netlink.h)], [], [], LMIBLIBS)
+            fi
+        else
+            LMIBLIBS="$LMIBLIBS $netsnmp_cv_func_nl_connect_LIBS"
         fi
         if test "x$ac_cv_header_netlink_netlink_h" = xyes; then
             AC_EGREP_HEADER([nl_socket_free], [netlink/socket.h],