From cf83adfb7d71b739ac330fff7c8c1ab7dddeed17 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 4 Sep 2013 15:12:48 -0600 Subject: [PATCH] build: require libnl-3 if netcf uses it Commits 9298bfb and f6c2951 both tried to make it possible to select the correct libnl (1 vs. 3) according to what netcf used, when both libraries are installed. This works to avoid libnl-3 when netcf used libnl-1. But on the converse side, if only libnl-1 development code is installed, while netcf uses libnl-3, then configure happily uses libnl-1 anyways, leading to a test failure: $ VIR_TEST_DEBUG=1 ./virdrivermoduletest TEST: virdrivermoduletest 1) Test driver "network" ... OK 2) Test driver "storage" ... OK 3) Test driver "nodedev" ... OK 4) Test driver "secret" ... OK 5) Test driver "nwfilter" ... OK 6) Test driver "interface" ... lt-virdrivermoduletest: route/tc.c:973: rtnl_tc_register: Assertion `0' failed. Aborted It's much nicer to prevent this at configure time, by requiring that if we know what netcf used, then we want the same libnl version. As before, this can be bypassed by someone who knows what they are doing by setting LIBNL_CFLAGS (perhaps useful to the rare person where the build box has a different version of netcf than the installation box). * configure.ac (LIBNL): If we can prove netcf used libnl-3, then don't let configure succeed with libnl-1. Signed-off-by: Eric Blake --- configure.ac | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure.ac b/configure.ac index cdbe6cc147..8426863622 100644 --- a/configure.ac +++ b/configure.ac @@ -2505,6 +2505,9 @@ if test "$with_linux" = "yes"; then break fi done + case $libnl_ldd:${LIBNL_CFLAGS+set} in + *libnl-3.so.*:) LIBNL_REQUIRED=3.0 ;; + esac case $libnl_ldd:${LIBNL_CFLAGS+set} in *libnl.so.1*:) ;; *)