Daniel P. Berrange wrote: > On Mon, May 17, 2010 at 04:59:51PM +0200, Jim Meyering wrote: >> Daniel P. Berrange wrote: >> > On Mon, May 17, 2010 at 04:25:43PM +0200, Jim Meyering wrote: >> >> This is required for any kernel prior to 2.6.19, >> >> since <linux/magic.h> didn't exist back then. >> >> Now that file is provided by the kernel-headers package. >> >> >> >> >From d14ef1669968ffeb65076b007e318934ed99aa61 Mon Sep 17 00:00:00 2001 >> >> From: Jim Meyering <meyering@xxxxxxxxxx> >> >> Date: Mon, 17 May 2010 16:17:08 +0200 >> >> Subject: [PATCH] build: avoid compile failure on linux kernels older than 2.6.19 >> >> >> >> * configure.ac: Check for <linux/magic.h>. >> >> * src/util/storage_file.c: Include <linux/magic.h> only if present. >> >> Linux kernels prior to 2.6.19 lacked it. >> >> [__linux__] (NFS_SUPER_MAGIC): Define if not already defined. >> >> --- >> >> configure.ac | 2 +- >> >> src/util/storage_file.c | 7 ++++++- >> >> 2 files changed, 7 insertions(+), 2 deletions(-) >> >> >> >> diff --git a/configure.ac b/configure.ac >> >> index c187420..ebd2082 100644 >> >> --- a/configure.ac >> >> +++ b/configure.ac >> >> @@ -108,7 +108,7 @@ LIBS=$old_libs >> >> >> >> dnl Availability of various common headers (non-fatal if missing). >> >> AC_CHECK_HEADERS([pwd.h paths.h regex.h sys/syslimits.h \ >> >> - termios.h sys/poll.h syslog.h mntent.h net/ethernet.h]) >> >> + termios.h sys/poll.h syslog.h mntent.h net/ethernet.h linux/magic.h]) >> >> >> >> dnl Where are the XDR functions? >> >> dnl If portablexdr is installed, prefer that. >> >> diff --git a/src/util/storage_file.c b/src/util/storage_file.c >> >> index 5f15a64..a07bedc 100644 >> >> --- a/src/util/storage_file.c >> >> +++ b/src/util/storage_file.c >> >> @@ -27,7 +27,9 @@ >> >> #include <unistd.h> >> >> #include <fcntl.h> >> >> #ifdef __linux__ >> >> -# include <linux/magic.h> >> >> +# if HAVE_LINUX_MAGIC_H >> >> +# include <linux/magic.h> >> >> +# endif >> > >> > Don't bother with this - just kill this include off completely. It is a >> > waste of time using it if we can't rely on it existing & have to re-define >> > everything ourselves. >> >> I admit that those numbers will probably never change, but I see >> including the recommended/modern header as the preferred approach. >> Then, eventually when the old systems are no longer relevant (yeah, in >> a long time) we'll be able to remove our hackish define-if-required code. > > If we're going to plan todo that then we need to open a bug report against > the current linux/magic.h because it is still missing many filesystems that > exist today. An alternative is to use something like the hard-coded list in coreutils' src/stat.c (from which src/fs.h is generated). http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/stat.c#n219 It is a list of all known (to me) FS magic numbers, and src/Makefile.am includes a couple of checks that give us a chance of spotting new additions. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list