From 77de1f3573c30911fbe6b9b180f027a429116a85 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Tue, 21 Aug 2012 10:26:18 -0600 Subject: [PATCH] build: work with older RHEL 5 kernel We already skip out on building the LXC under RHEL 5, because the kernel is too old (commits 4c18acf, 2dee896); but commit 9612e4b moved some LXC-only code into common files, resulting in this build failure: util/virfile.c: In function 'virFileLoopDeviceAssociate': util/virfile.c:580: error: 'LO_FLAGS_AUTOCLEAR' undeclared (first use in this function) Unfortunately, the kernel folks only made it an enum, rather than also a #define, so we have to modify configure.ac to record when it is usable. * configure.ac (with_lxc): Mark when LO_FLAGS_AUTOCLEAR was found. * src/util/virfile.c (virFileLoopDeviceAssociate): Avoid compilation when kernel is too old. --- configure.ac | 3 +++ src/util/virfile.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 2c33d77779..df39df2fba 100644 --- a/configure.ac +++ b/configure.ac @@ -874,6 +874,9 @@ if test "$with_lxc" = "yes" || test "$with_lxc" = "check"; then unshare (!(LO_FLAGS_AUTOCLEAR + EPOLL_CLOEXEC)); ], [ with_lxc=yes + AC_DEFINE([HAVE_DECL_LO_FLAGS_AUTOCLEAR], [1], + [Define to 1 if you have the declaration of `LO_FLAGS_AUTOCLEAR', + and to 0 if you don't.]) ], [ if test "$with_lxc" = "check"; then with_lxc=no diff --git a/src/util/virfile.c b/src/util/virfile.c index 6a4386974e..dd64e88a03 100644 --- a/src/util/virfile.c +++ b/src/util/virfile.c @@ -497,7 +497,7 @@ int virFileUpdatePerm(const char *path, } -#ifdef __linux__ +#if defined(__linux__) && HAVE_DECL_LO_FLAGS_AUTOCLEAR static int virFileLoopDeviceOpen(char **dev_name) { int fd = -1;