Whamcloud - gitweb
Branch HEAD
[fs/lustre-release.git] / lustre / autoconf / lustre-core.m4
index 1fd2674..4ba3d8a 100644 (file)
@@ -7,6 +7,7 @@
 #
 AC_DEFUN([LC_CONFIG_SRCDIR],
 [AC_CONFIG_SRCDIR([lustre/obdclass/obdo.c])
+libcfs_is_module=yes
 ])
 
 #
@@ -598,6 +599,21 @@ AC_DEFUN([LC_EXPORT___IGET],
 ])
 ])
 
+#
+# LC_EXPORT_NR_FREE_BUFFER_PAGES
+# starting from 2.6.23 linux kernel exports nr_free_buffer_pages()
+#
+AC_DEFUN([LC_EXPORT_NR_FREE_BUFFER_PAGES],
+[LB_CHECK_SYMBOL_EXPORT([nr_free_buffer_pages],
+[mm/page_alloc.c],[
+        AC_DEFINE(HAVE_EXPORT_NR_FREE_BUFFER_PAGES, 1, [kernel exports nr_free_buffer_pages])
+],[
+       if test x$enable_server = xyes ; then
+               AC_MSG_ERROR([lustre server needs this symbol to be exported.])
+       fi
+])
+])
+
 
 AC_DEFUN([LC_LUSTRE_VERSION_H],
 [LB_CHECK_FILE([$LINUX/include/linux/lustre_version.h],[
@@ -725,7 +741,9 @@ AC_DEFUN([LC_CONFIG_GSS],
 
        AC_CHECK_LIB([gssapi], [gss_init_sec_context],
                      [GSSAPI_LIBS="$GSSAPI_LDFLAGS -lgssapi"],
-                     [AC_MSG_ERROR([libgssapi is not found, which is required by GSS.])],)
+                     [AC_CHECK_LIB([gssglue], [gss_init_sec_context],
+                                   [GSSAPI_LIBS="$GSSAPI_LDFLAGS -lgssglue"],
+                                   [AC_MSG_ERROR([libgssapi or libgssglue is not found, which is required by GSS.])])],)
 
        AC_SUBST(GSSAPI_LIBS)
 
@@ -860,19 +878,6 @@ LB_LINUX_TRY_COMPILE([
 ])
 ])
 
-# LC_SYMVERFILE
-# SLES 9 uses a different name for this file - unsure about vanilla kernels
-# around this version, but it matters for servers only.
-AC_DEFUN([LC_SYMVERFILE],
-         [AC_MSG_CHECKING([name of symverfile])
-          if grep -q Modules.symvers $LINUX/scripts/Makefile.modpost ; then
-              SYMVERFILE=Modules.symvers
-          else
-              SYMVERFILE=Module.symvers
-          fi
-         AC_MSG_RESULT($SYMVERFILE)
-          AC_SUBST(SYMVERFILE)])
-
 # LC_DQUOTOFF_MUTEX
 # after 2.6.17 dquote use mutex instead if semaphore
 AC_DEFUN([LC_DQUOTOFF_MUTEX],
@@ -1214,8 +1219,7 @@ AC_DEFINE(HAVE___D_MOVE, 1,
 # matter what symbol is exported, the kernel #defines node_to_cpumask
 # to the appropriate function and that's what we use.
 AC_DEFUN([LC_EXPORT_NODE_TO_CPUMASK],
-         [LB_LINUX_ARCH
-          LB_CHECK_SYMBOL_EXPORT([node_to_cpumask],
+         [LB_CHECK_SYMBOL_EXPORT([node_to_cpumask],
                                  [arch/$LINUX_ARCH/mm/numa.c],
                                  [AC_DEFINE(HAVE_NODE_TO_CPUMASK, 1,
                                             [node_to_cpumask is exported by
@@ -1412,6 +1416,39 @@ int main(void)
 CFLAGS="$tmp_flags"
 ])
 
+#
+# check for crypto API 
+#
+AC_DEFUN([LC_ASYNC_BLOCK_CIPHER],
+[AC_MSG_CHECKING([if kernel has block cipher support])
+LB_LINUX_TRY_COMPILE([
+        #include <linux/crypto.h>
+],[
+        int v = CRYPTO_ALG_TYPE_BLKCIPHER;
+],[
+        AC_MSG_RESULT([yes])
+        AC_DEFINE(HAVE_ASYNC_BLOCK_CIPHER, 1, [kernel has block cipher support])
+],[
+        AC_MSG_RESULT([no])
+])
+])
+
+#
+# check for FS_RENAME_DOES_D_MOVE flag
+#
+AC_DEFUN([LC_FS_RENAME_DOES_D_MOVE],
+[AC_MSG_CHECKING([if kernel has FS_RENAME_DOES_D_MOVE flag])
+LB_LINUX_TRY_COMPILE([
+        #include <linux/fs.h>
+],[
+        int v = FS_RENAME_DOES_D_MOVE;
+],[
+        AC_MSG_RESULT([yes])
+        AC_DEFINE(HAVE_FS_RENAME_DOES_D_MOVE, 1, [kernel has FS_RENAME_DOES_D_MOVE flag])
+],[
+        AC_MSG_RESULT([no])
+])
+])
 
 #
 # LC_PROG_LINUX
@@ -1487,9 +1524,6 @@ AC_DEFUN([LC_PROG_LINUX],
          # 2.6.15
          LC_INODE_I_MUTEX
 
-         # SLES 10 (at least)
-         LC_SYMVERFILE
-
          # 2.6.17
          LC_DQUOTOFF_MUTEX
 
@@ -1518,10 +1552,13 @@ AC_DEFUN([LC_PROG_LINUX],
                  
         # 2.6.22
          LC_INVALIDATE_BDEV_2ARG
+         LC_ASYNC_BLOCK_CIPHER
+         LC_FS_RENAME_DOES_D_MOVE
          # 2.6.23
          LC_UNREGISTER_BLKDEV_RETURN_INT
          LC_KERNEL_SPLICE_READ
          LC_HAVE_EXPORTFS_H
+         LC_EXPORT_NR_FREE_BUFFER_PAGES
 ])
 
 #
@@ -1574,11 +1611,8 @@ AC_ARG_ENABLE([liblustre-acl],
        AC_HELP_STRING([--disable-liblustre-acl],
                        [disable ACL support for liblustre]),
        [],[enable_liblustre_acl=yes])
-if test x$enable_liblustre != xyes ; then
-   enable_liblustre_acl='no'
-fi
 AC_MSG_RESULT([$enable_liblustre_acl])
-if test x$enable_liblustre_acl != xno ; then
+if test x$enable_liblustre_acl = xyes ; then
   AC_DEFINE(LIBLUSTRE_POSIX_ACL, 1, Liblustre Support ACL-enabled MDS)
 fi
 
@@ -1743,6 +1777,13 @@ AC_CHECK_FUNCS([inet_ntoa])
 # libsysio/src/readlink.c
 LC_READLINK_SSIZE_T
 
+# lvfs/prng.c - depends on linux/types.h from liblustre/dir.c
+AC_CHECK_HEADERS([linux/random.h], [], [],
+                 [#ifdef HAVE_LINUX_TYPES_H
+                  # include <linux/types.h>
+                  #endif
+                 ])
+
 # utils/llverfs.c
 AC_CHECK_HEADERS([ext2fs/ext2fs.h])