From a0411275640f036947eb3007839e70d522cfa9da Mon Sep 17 00:00:00 2001 From: Serge Hallyn Date: Wed, 3 Jun 2015 05:03:39 +0000 Subject: [PATCH] detect whether cgmanager_list_controllers is available MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit and don't use it if not. This fixes failure to build with older cgmanager. Signed-off-by: Serge Hallyn Acked-by: Stéphane Graber --- configure.ac | 11 +++++++++++ src/lxc/cgmanager.c | 7 +++++++ 2 files changed, 18 insertions(+) diff --git a/configure.ac b/configure.ac index f5d64389b..5fa9b4eed 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 6b6c2d878..6df530ca5 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) {