X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fautoconf%2Flustre-core.m4;h=601da014503e03c9ecfca1a93486e8592e5c0a5e;hb=7e1758e5621df902c5942d100a75cebde8df0327;hp=8e471bb71b25c5857e8ef58a4421fccc2e4dad3b;hpb=425b5606e4fdc7c09513455343a6ef00da7016b1;p=fs%2Flustre-release.git diff --git a/lustre/autoconf/lustre-core.m4 b/lustre/autoconf/lustre-core.m4 index 8e471bb..601da01 100644 --- a/lustre/autoconf/lustre-core.m4 +++ b/lustre/autoconf/lustre-core.m4 @@ -37,7 +37,7 @@ AC_SUBST(pkgexampledir) # AC_DEFUN([LC_TARGET_SUPPORTED], [ case $target_os in - linux* | darwin*) + linux*) $1 ;; *) @@ -64,25 +64,6 @@ AC_DEFINE_UNQUOTED(CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER, $OBD_BUFFER_SIZE, ]) # LC_CONFIG_OBD_BUFFER_SIZE # -# LC_READLINK_SSIZE_T -# -AC_DEFUN([LC_READLINK_SSIZE_T], [ -AC_CACHE_CHECK([if readlink returns ssize_t], -lb_cv_compile_readlink_ssize_t, [ -AC_TRY_COMPILE([ - #include -], [ - ssize_t readlink(const char *, char *, size_t); -], - [lb_cv_compile_readlink_ssize_t="yes"], - [lb_cv_compile_readlink_ssize_t="no"]) -]) -AS_IF([test "x$lb_cv_compile_readlink_ssize_t" = xyes], - [AC_DEFINE(HAVE_POSIX_1003_READLINK, 1, - [readlink returns ssize_t])]) -]) # LC_READLINK_SSIZE_T - -# # LC_GLIBC_SUPPORT_FHANDLES # AC_DEFUN([LC_GLIBC_SUPPORT_FHANDLES], [ @@ -172,20 +153,6 @@ AS_IF([test "x$enable_checksum" != xno], ]) # LC_CONFIG_CHECKSUM # -# LC_CONFIG_LIBLUSTRE_RECOVERY -# -AC_DEFUN([LC_CONFIG_LIBLUSTRE_RECOVERY], [ -AC_MSG_CHECKING([whether to enable liblustre recovery support]) -AC_ARG_ENABLE([liblustre-recovery], - AC_HELP_STRING([--disable-liblustre-recovery], - [disable liblustre recovery support]), - [], [enable_liblustre_recovery="yes"]) -AC_MSG_RESULT([$enable_liblustre_recovery]) -AS_IF([test "x$enable_liblustre_recovery" != xno], - [AC_DEFINE(ENABLE_LIBLUSTRE_RECOVERY, 1, [Liblustre Can Recover])]) -]) # LC_CONFIG_LIBLUSTRE_RECOVERY - -# # LC_CONFIG_HEALTH_CHECK_WRITE # # Turn off the actual write to the disk @@ -248,18 +215,6 @@ LB_CHECK_EXPORT([delete_from_page_cache], [mm/filemap.c], ]) # LC_EXPORT_TRUNCATE_COMPLETE_PAGE # -# LC_CAPA_CRYPTO -# -AC_DEFUN([LC_CAPA_CRYPTO], [ -LB_CHECK_CONFIG_IM([CRYPTO], [], - [AC_MSG_ERROR([Lustre capability require that CONFIG_CRYPTO is enabled in your kernel.])]) -LB_CHECK_CONFIG_IM([CRYPTO_HMAC], [], - [AC_MSG_ERROR([Lustre capability require that CONFIG_CRYPTO_HMAC is enabled in your kernel.])]) -LB_CHECK_CONFIG_IM([CRYPTO_SHA1], [], - [AC_MSG_ERROR([Lustre capability require that CONFIG_CRYPTO_SHA1 is enabled in your kernel.])]) -]) # LC_CAPA_CRYPTO - -# # LC_CONFIG_RMTCLIENT # dnl FIXME @@ -520,6 +475,25 @@ EXTRA_KCFLAGS=$tmp_flags ]) # LC_QUOTA64 # +# LC_HAVE_ADD_WAIT_QUEUE_EXCLUSIVE +# +# 2.6.34 adds __add_wait_queue_exclusive +# +AC_DEFUN([LC_HAVE_ADD_WAIT_QUEUE_EXCLUSIVE], [ +LB_CHECK_COMPILE([if '__add_wait_queue_exclusive' exists], +__add_wait_queue_exclusive, [ + #include +],[ + wait_queue_head_t queue; + wait_queue_t wait; + __add_wait_queue_exclusive(&queue, &wait); +],[ + AC_DEFINE(HAVE___ADD_WAIT_QUEUE_EXCLUSIVE, 1, + [__add_wait_queue_exclusive exists]) +]) +]) # LC_HAVE_ADD_WAIT_QUEUE_EXCLUSIVE + +# # LC_FS_STRUCT_RWLOCK # # 2.6.36 fs_struct.lock use spinlock instead of rwlock. @@ -852,20 +826,19 @@ lock_manager_ops_lm_xxx, [ # # LC_INODE_DIO_WAIT # -# 3.1 kills inode->i_alloc_sem, use i_dio_count and inode_dio_wait/ -# inode_dio_done instead. +# 3.1 kills inode->i_alloc_sem, use i_dio_count and inode_dio_wait +# instead. # see kernel commit bd5fe6c5eb9c548d7f07fe8f89a150bb6705e8e3 # AC_DEFUN([LC_INODE_DIO_WAIT], [ -LB_CHECK_COMPILE([if 'inode->i_alloc_sem' is killed and use inode_dio_wait/done], +LB_CHECK_COMPILE([if 'inode->i_alloc_sem' is killed and use inode_dio_wait], inode_dio_wait, [ #include ],[ inode_dio_wait((struct inode *)0); - inode_dio_done((struct inode *)0); ],[ AC_DEFINE(HAVE_INODE_DIO_WAIT, 1, - [inode->i_alloc_sem is killed and use inode_dio_wait/done]) + [inode->i_alloc_sem is killed and use inode_dio_wait]) ]) ]) # LC_INODE_DIO_WAIT @@ -900,6 +873,22 @@ LB_CHECK_EXPORT([generic_file_llseek_size], [fs/read_write.c], ]) # LC_FILE_LLSEEK_SIZE # +# LC_RADIX_EXCEPTION_ENTRY +# 3.1 adds radix_tree_exception_entry. +# +AC_DEFUN([LC_RADIX_EXCEPTION_ENTRY], [ +LB_CHECK_COMPILE([radix_tree_exceptional_entry exist], +radix_tree_exceptional_entry, [ + #include +],[ + radix_tree_exceptional_entry(NULL); +],[ + AC_DEFINE(HAVE_RADIX_EXCEPTION_ENTRY, 1, + [radix_tree_exceptional_entry exist]) +]) +]) # LC_RADIX_EXCEPTION_ENTRY + +# # LC_HAVE_VOID_MAKE_REQUEST_FN # # 3.2 request_queue.make_request_fn defined as function returns with void @@ -1152,30 +1141,35 @@ generic_file_llseek_size_5args, [ ]) # LC_FILE_LLSEEK_SIZE_5ARG # -# LC_HAVE_DENTRY_D_ALIAS_HLIST +# LC_LLITE_DATA_IS_LIST # # 3.6 switch i_dentry/d_alias from list to hlist # -AC_DEFUN([LC_HAVE_DENTRY_D_ALIAS_HLIST], [ +# In the upstream kernels d_alias first changes +# to a hlist and then in later version, 3.11, gets +# moved to the union d_u. Due to some distros having +# d_alias in the d_u union as a struct list, which +# has never existed upstream stream, we can't test +# if d_alias is a list or hlist directly. If ever +# i_dentry and d_alias even up different combos then +# the build will fail. In that case then we will need +# to separate out the i_dentry and d_alias test below. +# +AC_DEFUN([LC_DATA_FOR_LLITE_IS_LIST], [ tmp_flags="$EXTRA_KCFLAGS" EXTRA_KCFLAGS="-Werror" -LB_CHECK_COMPILE([if 'i_dentry/d_alias' uses 'hlist'], -i_dentry_d_alias_hlist, [ +LB_CHECK_COMPILE([if 'i_dentry/d_alias' uses 'list'], +i_dentry_d_alias_list, [ #include - #include ],[ struct inode inode; - struct dentry dentry; - struct hlist_head head; - struct hlist_node node; - inode.i_dentry = head; - dentry.d_alias = node; + INIT_LIST_HEAD(&inode.i_dentry); ],[ - AC_DEFINE(HAVE_DENTRY_D_ALIAS_HLIST, 1, - [have i_dentry/d_alias uses hlist]) + AC_DEFINE(DATA_FOR_LLITE_IS_LIST, 1, + [both i_dentry/d_alias uses list]) ]) EXTRA_KCFLAGS="$tmp_flags" -]) # LC_HAVE_DENTRY_D_ALIAS_HLIST +]) # LC_DATA_FOR_LLITE_IS_LIST # # LC_DENTRY_OPEN_USE_PATH @@ -1242,14 +1236,14 @@ posix_acl_to_xattr_user_namespace, [ # 3.8 struct file has new member f_inode # AC_DEFUN([LC_HAVE_FILE_F_INODE], [ -LB_CHECK_COMPILE([if 'struct file' has memeber 'f_inode'], +LB_CHECK_COMPILE([if 'struct file' has member 'f_inode'], file_f_inode, [ #include ],[ ((struct file *)0)->f_inode = NULL; ],[ AC_DEFINE(HAVE_FILE_F_INODE, 1, - [struct file has memeber f_inode]) + [struct file has member f_inode]) ]) ]) # LC_HAVE_FILE_F_INODE @@ -1280,9 +1274,10 @@ hlist_for_each_entry_3args, [ #include #include ],[ + struct hlist_head *head = NULL; struct inode *inode; - struct dentry *dentry; - hlist_for_each_entry(dentry, &inode->i_dentry, d_alias) { + + hlist_for_each_entry(inode, head, i_hash) { continue; } ],[ @@ -1292,21 +1287,58 @@ hlist_for_each_entry_3args, [ ]) # LC_HAVE_HLIST_FOR_EACH_3ARG # -# LC_HAVE_ONLY_PROCFS_SEQ +# LC_HAVE_BIO_END_SECTOR +# +# 3.9 introduces bio_end_sector macro +# f73a1c7d117d07a96d89475066188a2b79e53c48 +# +AC_DEFUN([LC_HAVE_BIO_END_SECTOR], [ +LB_CHECK_COMPILE([if 'bio_end_sector' is defined], +bio_end_sector, [ + #include +],[ + struct bio bio; + + bio_end_sector(&bio); +],[ + AC_DEFINE(HAVE_BIO_END_SECTOR, 1, + [bio_end_sector is defined]) +]) +]) # LC_HAVE_BIO_END_SECTOR + +# +# LC_HAVE_REMOVE_PROC_SUBTREE # -# 3.10+ only supports procfs seq_files handling +# 3.10 introduced remove_proc_subtree # -AC_DEFUN([LC_HAVE_ONLY_PROCFS_SEQ], [ -LB_CHECK_COMPILE([if procfs only supports using 'seq_files'], -only_procfs_seq_files, [ +AC_DEFUN([LC_HAVE_REMOVE_PROC_SUBTREE], [ +LB_CHECK_COMPILE([if 'remove_proc_subtree' is defined], +remove_proc_subtree, [ #include ],[ - ((struct proc_dir_entry *)0)->write_proc(NULL, NULL, 0, NULL); -], [], [ - AC_DEFINE(HAVE_ONLY_PROCFS_SEQ, 1, - [only seq_files supported]) + remove_proc_subtree(NULL, NULL); +], [ + AC_DEFINE(HAVE_REMOVE_PROC_SUBTREE, 1, + [remove_proc_subtree is defined]) +]) +]) # LC_HAVE_REMOVE_PROC_SUBTREE + +# +# LC_HAVE_PROC_REMOVE +# +# 3.10 introduced proc_remove +# +AC_DEFUN([LC_HAVE_PROC_REMOVE], [ +LB_CHECK_COMPILE([if 'proc_remove' is defined], +proc_remove, [ + #include +],[ + proc_remove(NULL); +], [ + AC_DEFINE(HAVE_PROC_REMOVE, 1, + [proc_remove is defined]) ]) -]) # LC_HAVE_ONLY_PROCFS_SEQ +]) # LC_HAVE_PROC_REMOVE # # LC_BLKDEV_RELEASE_RETURN_INT @@ -1417,6 +1449,61 @@ truncate_pagecache_old_size, [ ]) # LC_OLDSIZE_TRUNCATE_PAGECACHE # +# LC_HAVE_DENTRY_D_U_D_ALIAS +# +# 3.11 kernel moved d_alias to the union d_u in struct dentry +# +# Some distros move d_alias to d_u but it is still a struct list +# +AC_DEFUN([LC_HAVE_DENTRY_D_U_D_ALIAS], [ +AS_IF([test "x$lb_cv_compile_i_dentry_d_alias_list" = xyes], [ + LB_CHECK_COMPILE([if list 'dentry.d_u.d_alias' exist], + d_alias, [ + #include + #include + ],[ + struct dentry de; + INIT_LIST_HEAD(&de.d_u.d_alias); + ],[ + AC_DEFINE(HAVE_DENTRY_D_U_D_ALIAS, 1, + [list dentry.d_u.d_alias exist]) + ]) +],[ + LB_CHECK_COMPILE([if hlist 'dentry.d_u.d_alias' exist], + d_alias, [ + #include + #include + ],[ + struct dentry de; + INIT_HLIST_NODE(&de.d_u.d_alias); + ],[ + AC_DEFINE(HAVE_DENTRY_D_U_D_ALIAS, 1, + [hlist dentry.d_u.d_alias exist]) + ]) +]) +]) # LC_HAVE_DENTRY_D_U_D_ALIAS + +# +# LC_HAVE_DENTRY_D_CHILD +# +# 3.11 kernel d_child has been moved out of the union d_u +# in struct dentry +# +AC_DEFUN([LC_HAVE_DENTRY_D_CHILD], [ +LB_CHECK_COMPILE([if 'dentry.d_child' exist], +d_child, [ + #include + #include +],[ + struct dentry de; + INIT_LIST_HEAD(&de.d_child); +],[ + AC_DEFINE(HAVE_DENTRY_D_CHILD, 1, + [dentry.d_child exist]) +]) +]) # LC_HAVE_DENTRY_D_CHILD + +# # LC_KIOCB_KI_LEFT # # 3.12 ki_left removed from struct kiocb @@ -1436,7 +1523,7 @@ kiocb_ki_left, [ # # LC_VFS_RENAME_5ARGS # -# 3.13 has vfs_renane with 5 args +# 3.13 has vfs_rename with 5 args # AC_DEFUN([LC_VFS_RENAME_5ARGS], [ LB_CHECK_COMPILE([if Linux kernel has 'vfs_rename' with 5 args], @@ -1453,7 +1540,7 @@ vfs_rename_5args, [ # # LC_VFS_UNLINK_3ARGS # -# 3.13 has vfs_renane with 3 args +# 3.13 has vfs_unlink with 3 args # AC_DEFUN([LC_VFS_UNLINK_3ARGS], [ LB_CHECK_COMPILE([if Linux kernel has 'vfs_unlink' with 3 args], @@ -1468,6 +1555,165 @@ vfs_unlink_3args, [ ]) # LC_VFS_UNLINK_3ARGS # +# LC_HAVE_BVEC_ITER +# +# 3.14 move some of its data in struct bio into the new +# struct bvec_iter +# +AC_DEFUN([LC_HAVE_BVEC_ITER], [ +LB_CHECK_COMPILE([if Linux kernel has struct bvec_iter], +have_bvec_iter, [ + #include +],[ + struct bvec_iter iter; + iter.bi_bvec_done = 0; +], [ + AC_DEFINE(HAVE_BVEC_ITER, 1, + [kernel has struct bvec_iter]) +]) +]) # LC_HAVE_BVEC_ITER + +# +# LC_HAVE_TRUNCATE_IPAGE_FINAL +# +# 3.14 bring truncate_inode_pages_final for evict_inode +# +AC_DEFUN([LC_HAVE_TRUNCATE_IPAGES_FINAL], [ +LB_CHECK_COMPILE([if Linux kernel has truncate_inode_pages_final], +truncate_ipages_final, [ + #include +],[ + truncate_inode_pages_final(NULL); +], [ + AC_DEFINE(HAVE_TRUNCATE_INODE_PAGES_FINAL, 1, + [kernel has truncate_inode_pages_final]) +]) +]) # LC_HAVE_TRUNCATE_IPAGES_FINAL + +# +# LC_VFS_RENAME_6ARGS +# +# 3.15 has vfs_rename with 6 args +# +AC_DEFUN([LC_VFS_RENAME_6ARGS], [ +LB_CHECK_COMPILE([if Linux kernel has 'vfs_rename' with 6 args], +vfs_rename_6args, [ + #include +],[ + vfs_rename(NULL, NULL, NULL, NULL, NULL, NULL); +], [ + AC_DEFINE(HAVE_VFS_RENAME_6ARGS, 1, + [kernel has vfs_rename with 6 args]) +]) +]) # LC_VFS_RENAME_6ARGS + +# +# LC_DIRECTIO_USE_ITER +# +# 3.16 kernel changes direct IO to use iov_iter +# +AC_DEFUN([LC_DIRECTIO_USE_ITER], [ +LB_CHECK_COMPILE([if direct IO uses iov_iter], +direct_io_iter, [ + #include +],[ + struct address_space_operations ops; + struct iov_iter *iter = NULL; + loff_t offset = 0; + + ops.direct_IO(0, NULL, iter, offset); +],[ + AC_DEFINE(HAVE_DIRECTIO_ITER, 1, + [direct IO uses iov_iter]) +]) +]) # LC_DIRECTIO_USE_ITER + +# +# LC_NFS_FILLDIR_USE_CTX +# +# 3.18 kernel moved from void cookie to struct dir_context +# +AC_DEFUN([LC_NFS_FILLDIR_USE_CTX], [ +tmp_flags="$EXTRA_KCFLAGS" +EXTRA_KCFLAGS="-Werror" +LB_CHECK_COMPILE([if filldir_t uses struct dir_context], +filldir_ctx, [ + #include +],[ + int filldir(struct dir_context *ctx, const char* name, + int i, loff_t off, u64 tmp, unsigned temp) + { + return 0; + } + + struct dir_context ctx = { + .actor = filldir, + }; + + ctx.actor(NULL, "test", 0, (loff_t) 0, 0, 0); +],[ + AC_DEFINE(HAVE_FILLDIR_USE_CTX, 1, + [filldir_t needs struct dir_context as argument]) +]) +EXTRA_KCFLAGS="$tmp_flags" +]) # LC_NFS_FILLDIR_USE_CTX + +# +# LC_KIOCB_HAS_NBYTES +# +# 3.19 kernel removed ki_nbytes from struct kiocb +# +AC_DEFUN([LC_KIOCB_HAS_NBYTES], [ +LB_CHECK_COMPILE([if struct kiocb has ki_nbytes field], +ki_nbytes, [ + #include +],[ + struct kiocb iocb; + + iocb.ki_nbytes = 0; +],[ + AC_DEFINE(HAVE_KI_NBYTES, 1, [ki_nbytes field exist]) +]) +]) # LC_KIOCB_HAS_NBYTES + +# +# LC_CANCEL_DIRTY_PAGE +# +# 4.0.0 kernel removed cancle_dirty_page +# +AC_DEFUN([LC_CANCEL_DIRTY_PAGE], [ +LB_CHECK_COMPILE([if cancel_dirty_page still exist], +cancel_dirty_page, [ + #include +],[ + cancel_dirty_page(NULL, PAGE_SIZE); +],[ + AC_DEFINE(HAVE_CANCEL_DIRTY_PAGE, 1, + [cancel_dirty_page is still available]) +]) +]) # LC_CANCEL_DIRTY_PAGE + +# +# LC_IOV_ITER_RW +# +# 4.1 kernel has iov_iter_rw +# +AC_DEFUN([LC_IOV_ITER_RW], [ +LB_CHECK_COMPILE([if iov_iter_rw exist], +iov_iter_rw, [ + #include + #include +],[ + struct iov_iter *iter = NULL; + + iov_iter_rw(iter); +],[ + AC_DEFINE(HAVE_IOV_ITER_RW, 1, + [iov_iter_rw exist]) +]) +]) # LC_IOV_ITER_RW + +# # LC_PROG_LINUX # # Lustre linux kernel checks @@ -1478,13 +1724,11 @@ AC_DEFUN([LC_PROG_LINUX], [ LC_CONFIG_PINGER LC_CONFIG_CHECKSUM - LC_CONFIG_LIBLUSTRE_RECOVERY LC_CONFIG_HEALTH_CHECK_WRITE LC_CONFIG_LRU_RESIZE LC_LLITE_LLOOP_MODULE LC_GLIBC_SUPPORT_FHANDLES - LC_CAPA_CRYPTO LC_CONFIG_RMTCLIENT LC_CONFIG_GSS @@ -1494,6 +1738,7 @@ AC_DEFUN([LC_PROG_LINUX], [ # 2.6.34 LC_HAVE_DQUOT_FS_DISK_QUOTA LC_HAVE_DQUOT_SUSPEND + LC_HAVE_ADD_WAIT_QUEUE_EXCLUSIVE # 2.6.35, 3.0.0 LC_FILE_FSYNC @@ -1531,6 +1776,7 @@ AC_DEFUN([LC_PROG_LINUX], [ LC_IOP_GET_ACL LC_FILE_LLSEEK_SIZE LC_INODE_PERMISION_2ARGS + LC_RADIX_EXCEPTION_ENTRY # 3.2 LC_HAVE_VOID_MAKE_REQUEST_FN @@ -1553,7 +1799,7 @@ AC_DEFUN([LC_PROG_LINUX], [ LC_FILE_LLSEEK_SIZE_5ARG # 3.6 - LC_HAVE_DENTRY_D_ALIAS_HLIST + LC_DATA_FOR_LLITE_IS_LIST LC_DENTRY_OPEN_USE_PATH LC_HAVE_IOP_ATOMIC_OPEN @@ -1566,16 +1812,20 @@ AC_DEFUN([LC_PROG_LINUX], [ # 3.9 LC_HAVE_HLIST_FOR_EACH_3ARG + LC_HAVE_BIO_END_SECTOR # 3.10 - LC_HAVE_ONLY_PROCFS_SEQ LC_BLKDEV_RELEASE_RETURN_INT + LC_HAVE_REMOVE_PROC_SUBTREE + LC_HAVE_PROC_REMOVE # 3.11 LC_INVALIDATE_RANGE LC_HAVE_DIR_CONTEXT LC_D_COMPARE_5ARGS LC_HAVE_DCOUNT + LC_HAVE_DENTRY_D_U_D_ALIAS + LC_HAVE_DENTRY_D_CHILD # 3.12 LC_OLDSIZE_TRUNCATE_PAGECACHE @@ -1585,6 +1835,28 @@ AC_DEFUN([LC_PROG_LINUX], [ LC_VFS_RENAME_5ARGS LC_VFS_UNLINK_3ARGS + # 3.14 + LC_HAVE_BVEC_ITER + LC_HAVE_TRUNCATE_IPAGES_FINAL + + # 3.15 + LC_VFS_RENAME_6ARGS + + # 3.16 + LC_DIRECTIO_USE_ITER + + # 3.18 + LC_NFS_FILLDIR_USE_CTX + + # 3.19 + LC_KIOCB_HAS_NBYTES + + # 4.0.0 + LC_CANCEL_DIRTY_PAGE + + # 4.1.0 + LC_IOV_ITER_RW + # AS_IF([test "x$enable_server" != xno], [ LC_FUNC_DEV_SET_RDONLY @@ -1609,91 +1881,47 @@ AC_MSG_RESULT([$enable_client]) ]) # LC_CONFIG_CLIENT # -# LC_CONFIG_LIBLUSTRE -# -# whether to build liblustre -# -AC_DEFUN([LC_CONFIG_LIBLUSTRE], [ -AC_MSG_CHECKING([whether to build Lustre library]) -AC_ARG_ENABLE([liblustre], - AC_HELP_STRING([--enable-liblustre], - [enable building of Lustre library]), - [], []) -AC_MSG_RESULT([$enable_liblustre]) - -# only build sysio if liblustre is built -with_sysio="$enable_liblustre" - -AC_MSG_CHECKING([whether to build liblustre tests]) -AC_ARG_ENABLE([liblustre-tests], - AC_HELP_STRING([--enable-liblustre-tests], - [enable liblustre tests, if --disable-tests is used]), - [], [enable_liblustre_tests=$enable_tests]) -AS_IF([test "x$enable_liblustre" != xyes], [enable_liblustre_tests="no"]) -AC_MSG_RESULT([$enable_liblustre_tests]) - -AC_MSG_CHECKING([whether to enable liblustre acl]) -AC_ARG_ENABLE([liblustre-acl], - AC_HELP_STRING([--disable-liblustre-acl], - [disable ACL support for liblustre]), - [], [enable_liblustre_acl="yes"]) -AC_MSG_RESULT([$enable_liblustre_acl]) - -AS_IF([test "x$enable_liblustre_acl" = xyes], - [AC_DEFINE(LIBLUSTRE_POSIX_ACL, 1, - [Liblustre Support ACL-enabled MDS])]) - -# -# --enable-mpitest -# -AC_ARG_ENABLE(mpitests, - AC_HELP_STRING([--enable-mpitests=yes|no|mpicc wrapper], - [include mpi tests]), - [ - enable_mpitests="yes" - case $enableval in - yes) - MPICC_WRAPPER=mpicc - ;; - no) - enable_mpitests=no - ;; - *) - MPICC_WRAPPER=$enableval - ;; - esac +# --enable-mpitests +# +AC_DEFUN([LB_CONFIG_MPITESTS], [ +AC_ARG_ENABLE([mpitests], + AC_HELP_STRING([--enable-mpitests=], + [include mpi tests]), [ + enable_mpitests="yes" + case $enableval in + yes) + MPICC_WRAPPER="mpicc" + ;; + no) + enable_mpitests="no" + ;; + *) + MPICC_WRAPPER=$enableval + ;; + esac ], [ - MPICC_WRAPPER=mpicc - enable_mpitests=yes + enable_mpitests="yes" + MPICC_WRAPPER="mpicc" ]) -AS_IF([test "x$enable_mpitests" != xno], [ - oldcc=$CC - CC=$MPICC_WRAPPER - AC_MSG_CHECKING([whether mpitests can be built]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ + if test "x$enable_mpitests" != "xno"; then + oldcc=$CC + CC=$MPICC_WRAPPER + AC_CACHE_CHECK([whether mpitests can be built], + lb_cv_mpi_tests, [AC_COMPILE_IFELSE([AC_LANG_SOURCE([ #include - ]],[[ - int flag; - MPI_Initialized(&flag); - ]]) - ], [ - AC_MSG_RESULT([yes]) - ], [ - AC_MSG_RESULT([no]) - enable_mpitests=no - ]) - CC=$oldcc -]) -AC_SUBST(MPICC_WRAPPER) - -AC_MSG_NOTICE([Enabling Lustre configure options for libsysio]) -ac_configure_args="$ac_configure_args --with-lustre-hack --with-sockets" - -LC_CONFIG_PINGER -LC_CONFIG_LIBLUSTRE_RECOVERY -]) + int main(void) { + int flag; + MPI_Initialized(&flag); + return 0; + } + ])], [lb_cv_mpi_tests="yes"], [lb_cv_mpi_tests="no"]) + ]) + enable_mpitests=$lb_cv_mpi_tests + CC=$oldcc + fi + AC_SUBST(MPICC_WRAPPER) +]) # LB_CONFIG_MPITESTS # # LC_CONFIG_QUOTA @@ -1727,22 +1955,6 @@ AS_IF([test "x$enable_quota" != xno -a "x$enable_utils" != xno], [ ]) # LC_QUOTA # -# LC_CONFIG_SPLIT -# -# whether to enable split support -# -AC_DEFUN([LC_CONFIG_SPLIT], [ -AC_MSG_CHECKING([whether to enable split support]) -AC_ARG_ENABLE([split], - AC_HELP_STRING([--enable-split], - [enable split support]), - [], [enable_split='no']) -AC_MSG_RESULT([$enable_split]) -AS_IF([test "x$enable_split" != xno], - [AC_DEFINE(HAVE_SPLIT_SUPPORT, 1, [enable split support])]) -]) # LC_CONFIG_SPLIT - -# # LC_CONFIG_NODEMAP_PROC_DEBUG # # enable nodemap proc file debugging @@ -1837,61 +2049,30 @@ AS_IF([test $target_cpu == "i686" -o $target_cpu == "x86_64"], # maximum MDS thread count LC_MDS_MAX_THREADS -# include/liblustre.h -AC_CHECK_HEADERS([sys/user.h sys/vfs.h stdint.h blkid/blkid.h]) - -# liblustre/llite_lib.h -AC_CHECK_HEADERS([xtio.h file.h]) +# lustre/utils/gss/gss_util.c +# lustre/utils/gss/gssd_proc.c +# lustre/utils/gss/krb5_util.c +# lustre/utils/llog_reader.c +# lustre/utils/create_iam.c +# lustre/utils/libiam.c +AC_CHECK_HEADERS([netdb.h endian.h]) +AC_CHECK_FUNCS([gethostbyname]) -# liblustre/dir.c -AC_CHECK_HEADERS([linux/types.h sys/types.h linux/unistd.h unistd.h]) +# lustre/utils/llverdev.c +AC_CHECK_HEADERS([blkid/blkid.h]) -# liblustre/lutil.c -AC_CHECK_HEADERS([netinet/in.h arpa/inet.h catamount/data.h]) -AC_CHECK_FUNCS([inet_ntoa]) - -# libsysio/src/readlink.c -LC_READLINK_SSIZE_T - -# libcfs prng.c - depends on linux/types.h from liblustre/dir.c -AC_CHECK_HEADERS([linux/random.h], [], [], - [#ifdef HAVE_LINUX_TYPES_H - #include - #endif - ]) - -# utils/llverfs.c +# lustre/utils/llverfs.c AC_CHECK_HEADERS([ext2fs/ext2fs.h]) -# check for -lz support -ZLIB="" -AC_CHECK_LIB([z], [adler32], - [AC_CHECK_HEADERS([zlib.h], [ - ZLIB="-lz" - AC_DEFINE([HAVE_ADLER], 1, - [support alder32 checksum type]) - ], [ - AC_MSG_WARN([ - -No zlib-devel package found, unable to use adler32 checksum -]) -])], [ - AC_MSG_WARN([ - -No zlib package found, unable to use adler32 checksum -]) -]) -AC_SUBST(ZLIB) - SELINUX="" AC_CHECK_LIB([selinux], [is_selinux_enabled], - [AC_CHECK_HEADERS([selinux.h], + [AC_CHECK_HEADERS([selinux/selinux.h], [SELINUX="-lselinux" AC_DEFINE([HAVE_SELINUX], 1, [support for selinux ])], [AC_MSG_WARN([ -No selinux-devel package found, unable to build selinux enabled tools +No libselinux-devel package found, unable to build selinux enabled tools ]) ])], [AC_MSG_WARN([ @@ -1958,8 +2139,6 @@ AS_IF([test "x$enable_pgstat_track" = xyes], # AM_CONDITIONALS for lustre # AC_DEFUN([LC_CONDITIONALS], [ -AM_CONDITIONAL(LIBLUSTRE, test x$enable_liblustre = xyes) -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) @@ -1988,14 +2167,15 @@ lustre/contrib/Makefile lustre/doc/Makefile lustre/include/Makefile lustre/include/lustre_ver.h -lustre/include/linux/Makefile -lustre/include/darwin/Makefile lustre/include/lustre/Makefile +lustre/kernel_patches/targets/3.10-rhel7.target +lustre/kernel_patches/targets/2.6-rhel6.6.target lustre/kernel_patches/targets/2.6-rhel6.target lustre/kernel_patches/targets/2.6-rhel5.target lustre/kernel_patches/targets/2.6-sles11.target lustre/kernel_patches/targets/3.0-sles11.target lustre/kernel_patches/targets/3.0-sles11sp3.target +lustre/kernel_patches/targets/3.12-sles12.target lustre/kernel_patches/targets/2.6-fc11.target lustre/kernel_patches/targets/2.6-fc12.target lustre/kernel_patches/targets/2.6-fc15.target @@ -2003,12 +2183,8 @@ lustre/kernel_patches/targets/3.x-fc18.target lustre/ldlm/Makefile lustre/fid/Makefile lustre/fid/autoMakefile -lustre/liblustre/Makefile -lustre/liblustre/tests/Makefile -lustre/liblustre/tests/mpi/Makefile lustre/llite/Makefile lustre/llite/autoMakefile -lustre/lclient/Makefile lustre/lov/Makefile lustre/lov/autoMakefile lustre/mdc/Makefile @@ -2019,8 +2195,6 @@ lustre/lfsck/Makefile lustre/lfsck/autoMakefile lustre/mdt/Makefile lustre/mdt/autoMakefile -lustre/nodemap/Makefile -lustre/nodemap/autoMakefile lustre/mdd/Makefile lustre/mdd/autoMakefile lustre/fld/Makefile @@ -2060,6 +2234,5 @@ lustre/osp/Makefile lustre/osp/autoMakefile lustre/lod/Makefile lustre/lod/autoMakefile -lustre/obdclass/darwin/Makefile ]) ]) # LC_CONFIG_FILES