Whamcloud - gitweb
LU-6215 libcfs: shrinker code needs atomic.h
[fs/lustre-release.git] / libcfs / autoconf / lustre-libcfs.m4
index 4264cd2..a3b6142 100644 (file)
@@ -49,28 +49,6 @@ AS_IF([test "x$enable_panic_dumplog" = xyes],
 ]) # LIBCFS_CONFIG_PANIC_DUMPLOG
 
 #
-# LIBCFS_U64_LONG_LONG_LINUX
-#
-# check kernel __u64 type
-#
-AC_DEFUN([LIBCFS_U64_LONG_LONG_LINUX], [
-tmp_flags="$EXTRA_KCFLAGS"
-EXTRA_KCFLAGS="$EXTRA_KCFLAGS -Werror"
-LB_CHECK_COMPILE([if Linux kernel '__u64' is 'long long' type],
-kernel_u64_long_long, [
-       #include <linux/types.h>
-       #include <linux/stddef.h>
-],[
-       unsigned long long *data;
-       data = (__u64*)sizeof(data);
-],[
-       AC_DEFINE(HAVE_KERN__U64_LONG_LONG, 1,
-               [Linux kernel __u64 is long long type])
-])
-EXTRA_KCFLAGS="$tmp_flags"
-]) # LIBCFS_U64_LONG_LONG_LINUX
-
-#
 # LIBCFS_STACKTRACE_OPS_HAVE_WALK_STACK
 #
 # 2.6.32-30.el6 adds a new 'walk_stack' field in 'struct stacktrace_ops'
@@ -143,25 +121,6 @@ ctl_table_ctl_name, [
 ]) # LIBCFS_SYSCTL_CTLNAME
 
 #
-# LIBCFS_ADD_WAIT_QUEUE_EXCLUSIVE
-#
-# 2.6.34 adds __add_wait_queue_exclusive
-#
-AC_DEFUN([LIBCFS_ADD_WAIT_QUEUE_EXCLUSIVE], [
-LB_CHECK_COMPILE([if '__add_wait_queue_exclusive' exists],
-__add_wait_queue_exclusive, [
-       #include <linux/wait.h>
-],[
-       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])
-])
-]) # LIBCFS_ADD_WAIT_QUEUE_EXCLUSIVE
-
-#
 # LC_SK_SLEEP
 #
 # 2.6.35 kernel has sk_sleep function
@@ -179,6 +138,24 @@ sk_sleep, [
 ]) # LC_SK_SLEEP
 
 #
+# LIBCFS_KSTRTOUL
+#
+# 2.6.38 kstrtoul is added
+#
+AC_DEFUN([LIBCFS_KSTRTOUL], [
+LB_CHECK_COMPILE([if Linux kernel has 'kstrtoul'],
+kstrtoul, [
+       #include <linux/kernel.h>
+],[
+       unsigned long result;
+       return kstrtoul("12345", 0, &result);
+],[
+       AC_DEFINE(HAVE_KSTRTOUL, 1,
+               [kernel has kstrtoul])
+])
+]) # LIBCFS_KSTRTOUL
+
+#
 # LIBCFS_DUMP_TRACE_ADDRESS
 #
 # 2.6.39 adds a base pointer address argument to dump_trace
@@ -206,6 +183,7 @@ dump_trace_address, [
 AC_DEFUN([LC_SHRINK_CONTROL], [
 LB_CHECK_COMPILE([if 'shrink_control' is present],
 shrink_control, [
+       #include <linux/atomic.h>
        #include <linux/mm.h>
 ],[
        struct shrink_control tmp = {0};
@@ -318,7 +296,7 @@ shrinker_count_objects, [
        ((struct shrinker*)0)->count_objects(NULL, NULL);
 ],[
        AC_DEFINE(HAVE_SHRINKER_COUNT, 1,
-               [shrinker has count_objects memeber])
+               [shrinker has count_objects member])
 ])
 ])
 
@@ -332,16 +310,15 @@ AC_MSG_NOTICE([LibCFS kernel checks
 ==============================================================================])
 LIBCFS_CONFIG_PANIC_DUMPLOG
 
-LIBCFS_U64_LONG_LONG_LINUX
 # 2.6.32
 LIBCFS_STACKTRACE_OPS_HAVE_WALK_STACK
 LC_SHRINKER_WANT_SHRINK_PTR
 # 2.6.33
 LIBCFS_SYSCTL_CTLNAME
-# 2.6.34
-LIBCFS_ADD_WAIT_QUEUE_EXCLUSIVE
 # 2.6.35
 LC_SK_SLEEP
+# 2.6.38
+LIBCFS_KSTRTOUL
 # 2.6.39
 LIBCFS_DUMP_TRACE_ADDRESS
 # 2.6.40 fc15
@@ -363,15 +340,6 @@ LIBCFS_SHRINKER_COUNT
 ]) # LIBCFS_PROG_LINUX
 
 #
-# LIBCFS_PROG_DARWIN
-#
-# Darwin checks
-#
-AC_DEFUN([LIBCFS_PROG_DARWIN], [
-LB_DARWIN_CHECK_FUNCS([get_preemption_level])
-]) # LIBCFS_PROG_DARWIN
-
-#
 # LIBCFS_PATH_DEFAULTS
 #
 # default paths for installed files
@@ -408,11 +376,6 @@ AC_CHECK_FUNCS([strlcpy])
 # libcfs/libcfs/user-prim.c, missing for RHEL5 and earlier userspace
 AC_CHECK_FUNCS([strlcat])
 
-AC_CHECK_TYPE([umode_t],
-       [AC_DEFINE(HAVE_UMODE_T, 1, [umode_t is defined])],
-       [],
-       [#include <asm/types.h>])
-
 # --------  Check for required packages  --------------
 
 AC_MSG_NOTICE([LibCFS required packages checks
@@ -474,21 +437,16 @@ AM_CONDITIONAL(NEED_PCLMULQDQ_CRC32C, [test "x$enable_crc32c_crypto" = xyes])
 #
 AC_DEFUN([LIBCFS_CONFIG_FILES], [
 AC_CONFIG_FILES([
-libcfs/Kernelenv
 libcfs/Makefile
 libcfs/autoMakefile
 libcfs/autoconf/Makefile
 libcfs/include/Makefile
 libcfs/include/libcfs/Makefile
 libcfs/include/libcfs/linux/Makefile
-libcfs/include/libcfs/posix/Makefile
 libcfs/include/libcfs/util/Makefile
 libcfs/libcfs/Makefile
 libcfs/libcfs/autoMakefile
 libcfs/libcfs/linux/Makefile
-libcfs/libcfs/posix/Makefile
 libcfs/libcfs/util/Makefile
-libcfs/include/libcfs/darwin/Makefile
-libcfs/libcfs/darwin/Makefile
 ])
 ]) # LIBCFS_CONFIG_FILES