On Mon, Dec 15, 2008 at 10:02:45PM +0000, John Levon wrote: > On Mon, Dec 15, 2008 at 09:51:18PM +0000, Daniel P. Berrange wrote: > > > > It's Linux-specific, and it should be possible to disable it > > > > Yes & no. The storage_backend_fs.c file is actually 3 backends all > > in one file. > > > > - A directory based pool > > - A local filesystem based pool > > - A network filesystem based pool > > > > The directory based pool only uses trivial POSIX apis like > > open/read/write/close/stat and is intended to be the one > > impl that is guarenteed available on all operating systems. > > Thus we delibrately don't disable the whole compilation of > > this file in the Makefile.am > > Would be simpler to split out into separate files? This threw me. Originally I thought it'd be easier to have them all in one file to make sharing of code between them easier. In retrospect this was a mistake and causes more pain than it solves, so I'd definitely be up for separating it out, and just putting decls for the shared functions in a storage_backend_dir.h for the filesystem pools to reference. > > What compile errors do you get from the storage_backend_fs.c > > on Solaris when you run configure --without-storage-fs ? > > "/export/build/johnlev/xvm/xvm-vi/libvirt.hg/src/storage_backend_fs.c", line 34: error: cannot find include file: <endian.h> > "/export/build/johnlev/xvm/xvm-vi/libvirt.hg/src/storage_backend_fs.c", line 35: error: cannot find include file: <byteswap.h> > "/export/build/johnlev/xvm/xvm-vi/libvirt.hg/src/storage_backend_fs.c", line 36: error: cannot find include file: <mntent.h> > "/export/build/johnlev/xvm/xvm-vi/libvirt.hg/src/storage_backend_fs.c", line 81: error: undefined symbol: __BIG_ENDIAN > > So line 36 needs moving within the #ifdef, and we need a general replacement > for the endian stuff. I'm not sure what you're using from byteswap.h, but we can > just define __*_ENDIAN if they're not, I think? byteswap.h doesn't seem to be needed anymore, mntent definitely needs protecting. For endian.h, it looks like we can probably make use of an existing autoconf macro, AC_C_BIGENDIAN to set a config.h variable to say what our compiled endianness is, avoiding need for non-portable use of endian.h Regards, Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list