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
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers