[lxc-devel] [PATCH] detect whether cgmanager_list_controllers is available

Serge Hallyn serge.hallyn at ubuntu.com
Wed Jun 3 05:03:39 UTC 2015


and don't use it if not. This fixes failure to build with older
cgmanager.

Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
---
 configure.ac        | 11 +++++++++++
 src/lxc/cgmanager.c |  7 +++++++
 2 files changed, 18 insertions(+)

diff --git a/configure.ac b/configure.ac
index f5d6438..5fa9b4e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -284,6 +284,17 @@ else
 	AC_MSG_RESULT([no])
 fi
 
+AC_MSG_CHECKING(for cgmanager_list_controllers)
+save_LIBS=$LIBS
+AC_SEARCH_LIBS([cgmanager_list_controllers_sync], [cgmanager], [have_list_controllers=yes], [have_list_controllers=no], [-lnih -lnih-dbus -ldbus-1])
+LIBS=$save_LIBS
+if test "x$have_list_controllers" = "xyes"; then
+	AC_DEFINE([HAVE_CGMANAGER_LIST_CONTROLLERS], 1, [Have cgmanager_list_controllers])
+	AC_MSG_RESULT([yes])
+else
+	AC_MSG_RESULT([no])
+fi
+
 # Check for static libcap, make sure the function checked for differs from the
 # the one checked below so the cache doesn't give a wrong answer
 OLD_CFLAGS="$CFLAGS"
diff --git a/src/lxc/cgmanager.c b/src/lxc/cgmanager.c
index 6b6c2d8..6df530c 100644
--- a/src/lxc/cgmanager.c
+++ b/src/lxc/cgmanager.c
@@ -818,6 +818,7 @@ out:
 	return pids_len;
 }
 
+#if HAVE_CGMANAGER_LIST_CONTROLLERS
 static bool lxc_list_controllers(char ***list)
 {
 	if (!cgm_dbus_connect()) {
@@ -836,6 +837,12 @@ static bool lxc_list_controllers(char ***list)
 	cgm_dbus_disconnect();
 	return true;
 }
+#else
+static bool lxc_list_controllers(char ***list)
+{
+	return false;
+}
+#endif
 
 static inline void free_abs_cgroup(char *cgroup)
 {
-- 
2.1.4



More information about the lxc-devel mailing list