]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
build: work with older RHEL 5 kernel
authorEric Blake <eblake@redhat.com>
Tue, 21 Aug 2012 16:26:18 +0000 (10:26 -0600)
committerEric Blake <eblake@redhat.com>
Tue, 21 Aug 2012 18:07:00 +0000 (12:07 -0600)
We already skip out on building the LXC under RHEL 5, because the
kernel is too old (commits 4c18acf2dee896); 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
src/util/virfile.c

index 2c33d77779fd9f8e4137a76915d0319fcd658dec..df39df2fbadf870d4c2e9ccf53103f4cb59aa16a 100644 (file)
@@ -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
index 6a4386974eaa40bfbab7554813508e3281a179c3..dd64e88a0316e62766d82f33b139a97f9cd9175d 100644 (file)
@@ -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;