Whamcloud - gitweb
LU-13903 utils: have liblustreapi support Linux client
[fs/lustre-release.git] / lustre / autoconf / lustre-core.m4
index 286f717..0c6643b 100644 (file)
@@ -66,6 +66,45 @@ AC_CHECK_FUNCS([copy_file_range],
 ]) # LC_GLIBC_SUPPORT_COPY_FILE_RANGE
 
 #
+# LC_FID2PATH_UNION
+#
+AC_DEFUN([LC_FID2PATH_ANON_UNION], [
+AC_MSG_CHECKING([if 'struct getinfo_fid2path' has anony•mous union])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+       #include <linux/lustre/lustre_idl.h>
+
+       int main(void) {
+               struct getinfo_fid2path gf;
+               struct lu_fid root_fid;
+
+               *gf.gf_root_fid = root_fid;
+               return 0;
+       }
+])],[
+       AC_DEFINE(HAVE_FID2PATH_ANON_UNIONS, 1, [union is unnamed])
+       AC_MSG_RESULT("yes")
+])
+]) # LC_FID2PATH_ANON_UNION
+
+#
+# LC_IOC_REMOVE_ENTRY
+#
+AC_DEFUN([LC_IOC_REMOVE_ENTRY], [
+AC_MSG_CHECKING([if ioctl IOC_REMOVE_ENTRY' is supported])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+       #include <sys/ioctl.h>
+       #include <linux/lustre/lustre_ioctl.h>
+
+       int main(void) {
+               return ioctl(0, LL_IOC_REMOVE_ENTRY, NULL);
+       }
+])],[
+       AC_DEFINE(HAVE_IOC_REMOVE_ENTRY, 1,
+               [IOC_REMOVE_ENTRY ioctl exists])
+])
+]) # LC_IOC_REMOVE_ENTRY
+
+#
 # LC_STACK_SIZE
 #
 # Ensure the stack size is at least 8k in Lustre server (all kernels)
@@ -619,6 +658,24 @@ kiocb_ki_left, [
 ]) # LC_KIOCB_KI_LEFT
 
 #
+# LC_REGISTER_SHRINKER_RET
+#
+# v3.11-8748-g1d3d4437eae1 register_shrinker returns a status
+#
+AC_DEFUN([LC_REGISTER_SHRINKER_RET], [
+LB_CHECK_COMPILE([if register_shrinker() returns status],
+register_shrinker_ret, [
+       #include <linux/mm.h>
+],[
+       if (register_shrinker(NULL))
+               unregister_shrinker(NULL);
+],[
+       AC_DEFINE(HAVE_REGISTER_SHRINKER_RET, 1,
+               [register_shrinker() returns status])
+])
+]) # LC_REGISTER_SHRINKER_RET
+
+#
 # LC_VFS_RENAME_5ARGS
 #
 # 3.13 has vfs_rename with 5 args
@@ -996,6 +1053,23 @@ aio_complete, [
 ]) # LC_HAVE_AIO_COMPLETE
 
 #
+# LC_HAVE_IS_ROOT_INODE
+#
+# 3.19 kernel adds is_root_inode()
+# Commit a7400222e3eb ("new helper: is_root_inode()")
+#
+AC_DEFUN([LC_HAVE_IS_ROOT_INODE], [
+LB_CHECK_COMPILE([if kernel has is_root_inode() ],
+is_root_inode, [
+       #include <linux/fs.h>
+],[
+       is_root_inode(NULL);
+],[
+       AC_DEFINE(HAVE_IS_ROOT_INODE, 1, [is_root_inode defined])
+])
+]) # LC_HAVE_IS_ROOT_INODE
+
+#
 # LC_BACKING_DEV_INFO_REMOVAL
 #
 # 3.20 kernel removed backing_dev_info from address_space
@@ -1972,6 +2046,33 @@ bi_bdev, [
 ]) # LC_BI_BDEV
 
 #
+# LC_INTERVAL_TREE_CACHED
+#
+# 4.14 f808c13fd3738948e10196496959871130612b61
+# switched INTERVAL_TREE_DEFINE to use cached RB_Trees.
+#
+AC_DEFUN([LC_INTERVAL_TREE_CACHED], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if interval_trees use rb_tree_cached],
+itree_cached, [
+       #include <linux/interval_tree_generic.h>
+       struct foo { struct rb_node rb; int last; int a,b;};
+       #define START(n) ((n)->a)
+       #define LAST(n) ((n)->b)
+       struct rb_root_cached tree;
+       INTERVAL_TREE_DEFINE(struct foo, rb, int, last,
+               START, LAST, , foo);
+],[
+       foo_insert(NULL, &tree);
+],[
+       AC_DEFINE(HAVE_INTERVAL_TREE_CACHED, 1,
+               [interval trees use rb_tree_cached])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LC_INTERVAL_TREE_CACHED
+
+#
 # LC_IS_ENCRYPTED
 #
 # 4.14 introduced IS_ENCRYPTED and S_ENCRYPTED
@@ -2315,11 +2416,6 @@ AC_DEFUN([LC_PROG_LINUX], [
        LC_CONFIG_FHANDLE
        LC_CONFIG_GSS
 
-       LC_GLIBC_SUPPORT_FHANDLES
-       LC_GLIBC_SUPPORT_COPY_FILE_RANGE
-       LC_OPENSSL_SSK
-       LC_OPENSSL_GETSEPOL
-
        # 3.10
        LC_HAVE_PROJECT_QUOTA
 
@@ -2336,6 +2432,7 @@ AC_DEFUN([LC_PROG_LINUX], [
        LC_OLDSIZE_TRUNCATE_PAGECACHE
        LC_PTR_ERR_OR_ZERO_MISSING
        LC_KIOCB_KI_LEFT
+       LC_REGISTER_SHRINKER_RET
 
        # 3.13
        LC_VFS_RENAME_5ARGS
@@ -2369,6 +2466,7 @@ AC_DEFUN([LC_PROG_LINUX], [
        LC_KIOCB_HAS_NBYTES
        LC_HAVE_DQUOT_QC_DQBLK
        LC_HAVE_AIO_COMPLETE
+       LC_HAVE_IS_ROOT_INODE
 
        # 3.20
        LC_BACKING_DEV_INFO_REMOVAL
@@ -2452,6 +2550,7 @@ AC_DEFUN([LC_PROG_LINUX], [
        # 4.14
        LC_PAGEVEC_INIT_ONE_PARAM
        LC_BI_BDEV
+       LC_INTERVAL_TREE_CACHED
 
        # 4.17
        LC_VM_FAULT_T
@@ -2918,6 +3017,8 @@ lustre/scripts/Makefile
 lustre/scripts/systemd/Makefile
 lustre/tests/Makefile
 lustre/tests/mpi/Makefile
+lustre/tests/lutf/Makefile
+lustre/tests/lutf/src/Makefile
 lustre/tests/kernel/Makefile
 lustre/tests/kernel/autoMakefile
 lustre/utils/Makefile