X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=libcfs%2Fautoconf%2Flustre-libcfs.m4;h=c200cae23555730eaccec2f4304c57ae78185a15;hb=c888000a126c17c55449b89d7e6ebd6ebd0ff772;hp=ae74dc0765e3ed01e2d24e8c3de5eddaaa5a3441;hpb=421d7a675265d697a1a9308aa9dac8030eab497a;p=fs%2Flustre-release.git diff --git a/libcfs/autoconf/lustre-libcfs.m4 b/libcfs/autoconf/lustre-libcfs.m4 index ae74dc0..c200cae 100644 --- a/libcfs/autoconf/lustre-libcfs.m4 +++ b/libcfs/autoconf/lustre-libcfs.m4 @@ -241,6 +241,24 @@ CFLAGS="$tmp_flags" ]) +# check if task_struct with rcu memeber +AC_DEFUN([LIBCFS_TASK_RCU], +[AC_MSG_CHECKING([if task_struct has a rcu field]) +LB_LINUX_TRY_COMPILE([ + #include +],[ + struct task_struct tsk; + + tsk.rcu.next = NULL; +],[ + AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_TASK_RCU, 1, + [task_struct has rcu field]) +],[ + AC_MSG_RESULT([no]) +]) +]) + # LIBCFS_TASKLIST_LOCK # 2.6.18 remove tasklist_lock export AC_DEFUN([LIBCFS_TASKLIST_LOCK], @@ -363,6 +381,58 @@ LB_LINUX_TRY_COMPILE([ ]) ]) +# 2.6.24 request not use real numbers for ctl_name +AC_DEFUN([LN_SYSCTL_UNNUMBERED], +[AC_MSG_CHECKING([for CTL_UNNUMBERED]) +LB_LINUX_TRY_COMPILE([ + #include +],[ + #ifndef CTL_UNNUMBERED + #error CTL_UNNUMBERED not exist in kernel + #endif +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SYSCTL_UNNUMBERED, 1, + [sysctl has CTL_UNNUMBERED]) +],[ + AC_MSG_RESULT(NO) +]) +]) + +# 2.6.24 lost scatterlist->page +AC_DEFUN([LN_SCATTERLIST_SETPAGE], +[AC_MSG_CHECKING([for exist sg_set_page]) +LB_LINUX_TRY_COMPILE([ + #include +],[ + sg_set_page(NULL,NULL,0,0); +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SCATTERLIST_SETPAGE, 1, + [struct scatterlist has page member]) +],[ + AC_MSG_RESULT(NO) +]) +]) + +# 2.6.26 use int instead of atomic for sem.count +AC_DEFUN([LN_SEM_COUNT], +[AC_MSG_CHECKING([atomic sem.count]) +LB_LINUX_TRY_COMPILE([ + #include +],[ + struct semaphore s; + + atomic_read(&s.count); +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SEM_COUNT_ATOMIC, 1, + [semaphore counter is atomic]) +],[ + AC_MSG_RESULT(NO) +]) +]) + # # LIBCFS_PROG_LINUX # @@ -381,6 +451,7 @@ LIBCFS_FUNC_SHOW_TASK LIBCFS_U64_LONG_LONG LIBCFS_SSIZE_T_LONG LIBCFS_SIZE_T_LONG +LIBCFS_TASK_RCU # 2.6.18 LIBCFS_TASKLIST_LOCK # 2.6.19 @@ -393,6 +464,11 @@ LIBCFS_2ARGS_REGISTER_SYSCTL LIBCFS_KMEM_CACHE # 2.6.23 LIBCFS_KMEM_CACHE_CREATE_DTOR +# 2.6.24 +LN_SYSCTL_UNNUMBERED +LN_SCATTERLIST_SETPAGE +# 2.6.26 +LN_SEM_COUNT ]) # @@ -433,6 +509,21 @@ AC_CHECK_TYPE([spinlock_t], # lnet/utils/wirecheck.c AC_CHECK_FUNCS([strnlen]) +AC_CHECK_TYPE([umode_t], + [AC_DEFINE(HAVE_UMODE_T, 1, [umode_t is defined])], + [], + [#include ]) + +AC_CHECK_TYPE([__u64], + [AC_DEFINE(HAVE___U64, 1, [__u64 is defined])], + [], + [#include ]) + +AC_CHECK_TYPE([__s64], + [AC_DEFINE(HAVE___S64, 1, [__s64 is defined])], + [], + [#include ]) + # -------- Check for required packages --------------