[PATCH v2] ipvsadm: fix compiling tool on distros with only libnl-1

To: Simon Horman <horms@xxxxxxxxxxxx>
Subject: [PATCH v2] ipvsadm: fix compiling tool on distros with only libnl-1
Cc: "Ryan O'Hara" <rohara@xxxxxxxxxx>, Jesper Dangaard Brouer <brouer@xxxxxxxxxx>, Wensong Zhang <wensong@xxxxxxxxxxxx>, Thomas Graf <tgraf@xxxxxxxxxx>, Julian Anastasov <ja@xxxxxx>, lvs-devel@xxxxxxxxxxxxxxx, Daniel Borkmann <dborkman@xxxxxxxxxx>
From: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Date: Fri, 9 Aug 2013 08:27:14 +0200
Some distros have not moved to libnl3 yet.  Add a fallback option
for compiling on distro's with only libnl1.

Using pkg-config to detect what versions of libnl is available.

Signed-off-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Acked-by: Daniel Borkmann <dborkman@xxxxxxxxxx>
V2: My git mail config were wrongly configured, and the orig
    patch only reached RedHat recipients, thus I'm resending
    hoping my email client does not screw the patches...

 libipvs/Makefile  |    5 +++++
 libipvs/libipvs.c |    5 +++++
 2 files changed, 10 insertions(+)

diff --git a/libipvs/Makefile b/libipvs/Makefile
index a527a7f..eafc3e5 100644
--- a/libipvs/Makefile
+++ b/libipvs/Makefile
@@ -10,6 +10,11 @@ INCLUDE              += $(shell if [ -f ../../ip_vs.h ]; 
then        \
                     echo "-I../../."; fi;)
 DEFINES                = $(shell if [ ! -f ../../ip_vs.h ]; then       \
                    echo "-DHAVE_NET_IP_VS_H"; fi;)
+DEFINES                += $(shell if which pkg-config > /dev/null 2>&1; then \
+                        if   pkg-config --exists libnl-3.0; then :; \
+                        elif pkg-config --exists libnl-2.0; then :; \
+                        elif pkg-config --exists libnl-1; \
+                        then echo "-DFALLBACK_LIBNL1"; fi; fi)
 .PHONY         = all clean install dist distclean rpm rpms
 STATIC_LIB     = libipvs.a
diff --git a/libipvs/libipvs.c b/libipvs/libipvs.c
index c3c3b0a..2b066d2 100644
--- a/libipvs/libipvs.c
+++ b/libipvs/libipvs.c
@@ -32,6 +32,11 @@ static void* ipvs_func = NULL;
 struct ip_vs_getinfo ipvs_info;
+#define nl_sock         nl_handle
+#define nl_socket_alloc nl_handle_alloc
+#define nl_socket_free  nl_handle_destroy
 static struct nl_sock *sock = NULL;
 static int family, try_nl = 1;
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at

<Prev in Thread] Current Thread [Next in Thread>