Whamcloud - gitweb
LU-1305 build: support for osd-zfs
[fs/lustre-release.git] / lustre / autoconf / lustre-core.m4
index 38d3fa0..f6d3433 100644 (file)
@@ -1,5 +1,3 @@
-#* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
-#* vim:expandtab:shiftwidth=8:tabstop=8:
 #
 # LC_CONFIG_SRCDIR
 #
@@ -85,23 +83,6 @@ AC_TRY_COMPILE([
 ])
 
 #
-# only for Lustre-patched kernels
-#
-AC_DEFUN([LC_LUSTRE_VERSION_H],
-[LB_CHECK_FILE([$LINUX/include/linux/lustre_version.h],[
-       rm -f "$LUSTRE/include/linux/lustre_version.h"
-],[
-       touch "$LUSTRE/include/linux/lustre_version.h"
-       if test x$enable_server = xyes ; then
-               AC_MSG_WARN([Unpatched kernel detected.])
-               AC_MSG_WARN([Lustre servers cannot be built with an unpatched kernel;])
-               AC_MSG_WARN([disabling server build])
-               enable_server='no'
-       fi
-])
-])
-
-#
 # LC_FUNC_DEV_SET_RDONLY
 #
 # check whether dev_set_rdonly is exported.  This is needed until we
@@ -226,17 +207,13 @@ if test x$enable_lru_resize != xno; then
 fi
 ])
 
-# whether to enable quota support(kernel modules)
-AC_DEFUN([LC_QUOTA_MODULE],
-[if test x$enable_quota != xno; then
-    LB_LINUX_CONFIG([QUOTA],[
-       enable_quota_module='yes'
-       AC_DEFINE(HAVE_QUOTA_SUPPORT, 1, [Enable quota support])
-    ],[
-       enable_quota_module='no'
-       AC_MSG_WARN([quota is not enabled because the kernel - lacks quota support])
-    ])
-fi
+#
+# Quota support. The kernel must support CONFIG_QUOTA.
+#
+AC_DEFUN([LC_QUOTA_CONFIG],
+[LB_LINUX_CONFIG_IM([QUOTA],[AC_DEFINE(HAVE_QUOTA_SUPPORT, 1, [support quota])],[
+       AC_MSG_ERROR([Lustre quota requires that CONFIG_QUOTA is enabled in your kernel.])
+])
 ])
 
 # truncate_complete_page() was exported from RHEL5/SLES10, but not in SLES11 SP0 (2.6.27)
@@ -1817,6 +1794,16 @@ AC_DEFUN([LC_EXPORT_GENERIC_ERROR_REMOVE_PAGE],
          ]
 )
 
+# 2.6.32 if kernel export access_process_vm().
+AC_DEFUN([LC_EXPORT_ACCESS_PROCESS_VM],
+        [LB_CHECK_SYMBOL_EXPORT([access_process_vm],
+                        [mm/memory.c],
+                        [AC_DEFINE(HAVE_ACCESS_PROCESS_VM, 1,
+                                [access_process_vm function is present])],
+                        [])
+        ]
+)
+
 #
 # 2.6.36 fs_struct.lock use spinlock instead of rwlock.
 #
@@ -1886,6 +1873,83 @@ LB_LINUX_TRY_COMPILE([
 ])
 
 #
+# 2.6.37 remove kernel_locked
+#
+AC_DEFUN([LC_KERNEL_LOCKED],
+[AC_MSG_CHECKING([if kernel_locked is defined])
+LB_LINUX_TRY_COMPILE([
+        #include <linux/smp_lock.h>
+],[
+        kernel_locked();
+],[
+        AC_MSG_RESULT([yes])
+        AC_DEFINE(HAVE_KERNEL_LOCKED, 1,
+                [kernel_locked is defined])
+],[
+        AC_MSG_RESULT([no])
+])
+])
+
+#
+# 2.6.38 dentry_operations.d_compare() taken 7 arguments.
+#
+AC_DEFUN([LC_D_COMPARE_7ARGS],
+[AC_MSG_CHECKING([if d_compare taken 7 arguments])
+LB_LINUX_TRY_COMPILE([
+       #include <linux/dcache.h>
+],[
+       ((struct dentry_operations*)0)->d_compare(NULL,NULL,NULL,NULL,0,NULL,NULL);
+],[
+       AC_DEFINE(HAVE_D_COMPARE_7ARGS, 1,
+               [d_compare need 7 arguments])
+       AC_MSG_RESULT([yes])
+],[
+       AC_MSG_RESULT([no])
+])
+])
+
+#
+# 2.6.38 dentry_operations.d_delete() defined 'const' for 1st parameter.
+#
+AC_DEFUN([LC_D_DELETE_CONST],
+[AC_MSG_CHECKING([if d_delete has const declare on first parameter])
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_LINUX_TRY_COMPILE([
+       #include <linux/dcache.h>
+],[
+       const struct dentry *d = NULL;
+       ((struct dentry_operations*)0)->d_delete(d);
+],[
+       AC_DEFINE(HAVE_D_DELETE_CONST, const,
+               [d_delete first parameter declared const])
+       AC_MSG_RESULT([yes])
+],[
+       AC_DEFINE(HAVE_D_DELETE_CONST, , [])
+       AC_MSG_RESULT([no])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+])
+
+#
+# 2.6.38 dcache_lock removed. rcu-walk commited.
+#
+AC_DEFUN([LC_DCACHE_LOCK],
+[AC_MSG_CHECKING([if dcache_lock is exist])
+LB_LINUX_TRY_COMPILE([
+       #include <linux/dcache.h>
+],[
+       spin_lock(&dcache_lock);
+],[
+       AC_DEFINE(HAVE_DCACHE_LOCK, 1,
+               [dcache_lock is exist])
+       AC_MSG_RESULT([yes])
+],[
+       AC_MSG_RESULT([no])
+])
+])
+
+#
 # 2.6.38 export blkdev_get_by_dev
 #
 AC_DEFUN([LC_BLKDEV_GET_BY_DEV],
@@ -1994,13 +2058,12 @@ AC_DEFINE(HAVE_SIMPLE_SETATTR, 1,
 # Lustre linux kernel checks
 #
 AC_DEFUN([LC_PROG_LINUX],
-         [LC_LUSTRE_VERSION_H
+         [
          LC_CONFIG_PINGER
          LC_CONFIG_CHECKSUM
          LC_CONFIG_LIBLUSTRE_RECOVERY
          LC_CONFIG_HEALTH_CHECK_WRITE
          LC_CONFIG_LRU_RESIZE
-         LC_QUOTA_MODULE
          LC_LLITE_LLOOP_MODULE
 
          # RHEL4 patches
@@ -2130,6 +2193,7 @@ AC_DEFUN([LC_PROG_LINUX],
          LC_CACHE_UPCALL
          LC_EXPORT_GENERIC_ERROR_REMOVE_PAGE
          LC_SELINUX_IS_ENABLED
+         LC_EXPORT_ACCESS_PROCESS_VM
 
          # 2.6.35, 3.0.0
          LC_FILE_FSYNC
@@ -2139,11 +2203,17 @@ AC_DEFUN([LC_PROG_LINUX],
          LC_FS_STRUCT_RWLOCK
          LC_SBOPS_EVICT_INODE
 
+         # 2.6.37
+         LC_KERNEL_LOCKED
+
          # 2.6.38
          LC_ATOMIC_MNT_COUNT
          LC_BLKDEV_GET_BY_DEV
          LC_GENERIC_PERMISSION
          LC_QUOTA_ON_USE_PATH
+         LC_DCACHE_LOCK
+         LC_D_COMPARE_7ARGS
+         LC_D_DELETE_CONST
 
          # 2.6.39
          LC_REQUEST_QUEUE_UNPLUG_FN
@@ -2154,6 +2224,7 @@ AC_DEFUN([LC_PROG_LINUX],
              LC_FUNC_DEV_SET_RDONLY
              LC_STACK_SIZE
              LC_QUOTA64
+             LC_QUOTA_CONFIG
          fi
 ])
 
@@ -2546,7 +2617,6 @@ AM_CONDITIONAL(LIBLUSTRE_TESTS, test x$enable_liblustre_tests = xyes)
 AM_CONDITIONAL(MPITESTS, test x$enable_mpitests = xyes, Build MPI Tests)
 AM_CONDITIONAL(CLIENT, test x$enable_client = xyes)
 AM_CONDITIONAL(SERVER, test x$enable_server = xyes)
-AM_CONDITIONAL(QUOTA, test x$enable_quota_module = xyes)
 AM_CONDITIONAL(SPLIT, test x$enable_split = xyes)
 AM_CONDITIONAL(BLKID, test x$ac_cv_header_blkid_blkid_h = xyes)
 AM_CONDITIONAL(EXT2FS_DEVEL, test x$ac_cv_header_ext2fs_ext2fs_h = xyes)
@@ -2616,12 +2686,16 @@ lustre/obdecho/Makefile
 lustre/obdecho/autoMakefile
 lustre/obdfilter/Makefile
 lustre/obdfilter/autoMakefile
+lustre/ofd/Makefile
+lustre/ofd/autoMakefile
 lustre/osc/Makefile
 lustre/osc/autoMakefile
 lustre/ost/Makefile
 lustre/ost/autoMakefile
 lustre/osd-ldiskfs/Makefile
 lustre/osd-ldiskfs/autoMakefile
+lustre/osd-zfs/Makefile
+lustre/osd-zfs/autoMakefile
 lustre/mgc/Makefile
 lustre/mgc/autoMakefile
 lustre/mgs/Makefile