This patch is to kernel.m4 and adds the appropriate configure checks to make sure building against a xen kernel works okay.
mainly its just adding the #ifdef CONFIG_XEN then include the appropriate files. Thanks, - David Brown
--- a/maint/config/kernel.m4 2007-05-07 15:16:42.000000000 -0700 +++ b/maint/config/kernel.m4 2007-05-07 15:18:37.000000000 -0700 @@ -23,6 +23,11 @@ dnl if this test fails, the kernel already defined it AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> void i_size_write(struct inode *inode, loff_t i_size) @@ -40,6 +45,11 @@ dnl if this test fails, the kernel already defined it AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> loff_t i_size_read(struct inode *inode) { @@ -56,6 +66,11 @@ dnl if this test fails, the kernel already defined it AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> loff_t iget_locked(struct inode *inode) { @@ -72,6 +87,11 @@ dnl if this test fails, the kernel already defined it AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> loff_t iget4_locked(struct inode *inode) { @@ -88,6 +108,11 @@ dnl if this test fails, the kernel already defined it AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> loff_t iget5_locked(struct inode *inode) { @@ -104,6 +129,11 @@ AC_MSG_CHECKING(for struct xtvec in kernel) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/uio.h> static struct xtvec xv = { 0, 0 }; ], [], @@ -116,6 +146,11 @@ AC_MSG_CHECKING(for struct kmem_cache in kernel) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/slab.h> static struct kmem_cache; ], [], @@ -128,6 +163,11 @@ AC_MSG_CHECKING(for SLAB_KERNEL flag in kernel) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/slab.h> static int flags = SLAB_KERNEL; ], [], @@ -141,6 +181,11 @@ AC_MSG_CHECKING(for memory_backed in struct backing_dev_info in kernel) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/mm.h> #include <linux/backing-dev.h> static struct backing_dev_info bdi = { @@ -157,6 +202,11 @@ AC_MSG_CHECKING(for sendfile callback in struct file_operations in kernel) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> static struct file_operations fop = { .sendfile = NULL, @@ -172,6 +222,11 @@ AC_MSG_CHECKING(for find_inode_handle callback in struct super_operations in kernel) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> static struct super_operations sop = { .find_inode_handle = NULL, @@ -186,6 +241,11 @@ AC_MSG_CHECKING(for i_blksize in struct inode) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> static struct inode i = { .i_blksize = 0, @@ -200,6 +260,11 @@ AC_MSG_CHECKING(for statfs_lite callback in struct super_operations in kernel) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> static struct super_operations sop = { .statfs_lite = NULL, @@ -214,6 +279,11 @@ AC_MSG_CHECKING(for fill_handle callback in struct inode_operations in kernel) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> static struct inode_operations iop = { .fill_handle = NULL, @@ -228,6 +298,11 @@ AC_MSG_CHECKING(for getattr_lite callback in struct inode_operations in kernel) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> static struct inode_operations iop = { .getattr_lite = NULL, @@ -242,6 +317,11 @@ AC_MSG_CHECKING(for get_fs_key callback in struct super_operations in kernel) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> static struct super_operations sop = { .get_fs_key = NULL, @@ -256,6 +336,11 @@ AC_MSG_CHECKING(for readdirplus member in file_operations structure) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> ], [ struct file_operations filop = { @@ -271,6 +356,11 @@ AC_MSG_CHECKING(for readdirplus_lite member in file_operations structure) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> ], [ struct file_operations filop = { @@ -287,6 +377,11 @@ AC_MSG_CHECKING(for readx member in file_operations structure) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> ], [ struct file_operations filop = { @@ -302,6 +397,11 @@ AC_MSG_CHECKING(for writex member in file_operations structure) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> ], [ struct file_operations filop = { @@ -318,6 +418,11 @@ dnl if this test fails, the kernel does not have it AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/wait.h> #include <linux/aio.h> static struct kiocb iocb; @@ -336,6 +441,11 @@ dnl have this member and we disable support for AIO AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/wait.h> #include <linux/aio.h> static struct kiocb io_cb = { @@ -359,6 +469,11 @@ dnl if this test fails, the kernel does not have it AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> extern int pvfs_statfs(struct dentry *, struct kstatfs *); static struct super_operations s_op = { @@ -375,6 +490,11 @@ dnl if this test fails, the kernel does not have it AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> #include <linux/mount.h> extern int pvfs_get_sb(struct file_system_type *fst, int flags, const char *devname, void *data, struct vfsmount *); @@ -393,6 +513,11 @@ dnl if this test fails, the kernel does not have it AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> static struct inode_operations in_op = { .getxattr = NULL @@ -411,6 +536,11 @@ dnl if this test passes, there is a const void* argument AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> ], [ @@ -435,7 +565,12 @@ dnl if this test passes, there is a 6th argument AC_TRY_COMPILE([ #define __KERNEL__ - #include <linux/fs.h> + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif + #include <linux/fs.h> #include <linux/sysctl.h> ], [ proc_dointvec_minmax(NULL, 0, NULL, NULL, NULL, NULL); @@ -447,6 +582,11 @@ AC_CHECK_HEADERS([linux/posix_acl.h], [], [], [#define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> #ifdef HAVE_XATTR #include <linux/xattr.h> @@ -455,6 +595,11 @@ AC_CHECK_HEADERS([linux/posix_acl_xattr.h], [], [], [#define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> #ifdef HAVE_XATTR #include <linux/xattr.h> @@ -472,22 +617,47 @@ AC_CHECK_HEADERS([linux/mount.h], [], [], [#define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/mount.h> ] ) AC_CHECK_HEADERS([linux/ioctl32.h], [], [], [#define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/ioctl32.h> ] ) AC_CHECK_HEADERS([linux/compat.h], [], [], [#define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/compat.h> ] ) AC_CHECK_HEADERS([linux/syscalls.h], [], [], [#define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/syscalls.h> ] ) AC_CHECK_HEADERS([asm/ioctl32.h], [], [], [#define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <asm/ioctl32.h> ] ) @@ -499,6 +669,11 @@ AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> int generic_file_readv(struct inode *inode) { @@ -518,6 +693,11 @@ AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> int generic_permission(struct inode *inode) { @@ -534,6 +714,11 @@ dnl if this test fails, the kernel has it defined AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> #include <linux/xattr.h> int generic_getxattr(struct inode *inode) @@ -549,6 +734,11 @@ AC_MSG_CHECKING(for arg member in read_descriptor_t in kernel) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> ], [ read_descriptor_t x; @@ -582,6 +772,11 @@ AC_MSG_CHECKING(for int return in inode_operations follow_link) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> extern int page_follow_link_light(struct dentry *, struct nameidata *); @@ -599,6 +794,11 @@ AC_MSG_CHECKING(for older int return in invalidatepage) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> ], [ @@ -681,6 +881,11 @@ AC_MSG_CHECKING(for combined file_operations readv and aio_read) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/fs.h> ], [ struct file_operations filop = { @@ -696,6 +901,11 @@ AC_MSG_CHECKING(for kzalloc) AC_TRY_COMPILE([ #define __KERNEL__ + #ifdef CONFIG_XEN + #include <linux/types.h> + #define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION + #include <xen/interface/xen.h> + #endif #include <linux/slab.h> ], [ void * a;
_______________________________________________ Pvfs2-developers mailing list Pvfs2-developers@beowulf-underground.org http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers