mirror of https://gitee.com/openkylin/libvirt.git
build: work with older RHEL 5 kernel
We already skip out on building the LXC under RHEL 5, because the kernel is too old (commits4c18acf
,2dee896
); but commit9612e4b
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.
This commit is contained in:
parent
8211c677a3
commit
77de1f3573
|
@ -874,6 +874,9 @@ if test "$with_lxc" = "yes" || test "$with_lxc" = "check"; then
|
||||||
unshare (!(LO_FLAGS_AUTOCLEAR + EPOLL_CLOEXEC));
|
unshare (!(LO_FLAGS_AUTOCLEAR + EPOLL_CLOEXEC));
|
||||||
], [
|
], [
|
||||||
with_lxc=yes
|
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
|
if test "$with_lxc" = "check"; then
|
||||||
with_lxc=no
|
with_lxc=no
|
||||||
|
|
|
@ -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)
|
static int virFileLoopDeviceOpen(char **dev_name)
|
||||||
{
|
{
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
|
|
Loading…
Reference in New Issue