Whamcloud - gitweb
LU-8560 libcfs: add autoconf test for crypto changes
[fs/lustre-release.git] / libcfs / autoconf / lustre-libcfs.m4
index 2e80879..d7e1a45 100644 (file)
@@ -121,23 +121,6 @@ ctl_table_ctl_name, [
 ]) # LIBCFS_SYSCTL_CTLNAME
 
 #
-# LC_SK_SLEEP
-#
-# 2.6.35 kernel has sk_sleep function
-#
-AC_DEFUN([LC_SK_SLEEP], [
-LB_CHECK_COMPILE([if Linux kernel has 'sk_sleep'],
-sk_sleep, [
-       #include <net/sock.h>
-],[
-       sk_sleep(NULL);
-],[
-       AC_DEFINE(HAVE_SK_SLEEP, 1,
-               [kernel has sk_sleep])
-])
-]) # LC_SK_SLEEP
-
-#
 # LIBCFS_KSTRTOUL
 #
 # 2.6.38 kstrtoul is added
@@ -264,10 +247,7 @@ LB_CHECK_CONFIG_IM([CRYPTO_CRC32_PCLMUL],
        [enable_crc32_crypto="no"], [enable_crc32_crypto="yes"])
 AS_IF([test "x$have_crc32" = xyes -a "x$enable_crc32_crypto" = xyes], [
        AC_DEFINE(NEED_CRC32_ACCEL, 1, [need pclmulqdq based crc32])
-       AC_MSG_WARN([
-
-No crc32 pclmulqdq crypto api found, enable internal pclmulqdq based crc32
-])])
+       AC_MSG_WARN([No crc32 pclmulqdq crypto api found, enable internal pclmulqdq based crc32])])
 ]) # LIBCFS_ENABLE_CRC32_ACCEL
 
 #
@@ -278,10 +258,7 @@ LB_CHECK_CONFIG_IM([CRYPTO_CRC32C_INTEL],
        [enable_crc32c_crypto="no"], [enable_crc32c_crypto="yes"])
 AS_IF([test "x$enable_crc32c_crypto" = xyes], [
        AC_DEFINE(NEED_CRC32C_ACCEL, 1, [need pclmulqdq based crc32c])
-       AC_MSG_WARN([
-
-No crc32c pclmulqdq crypto api found, enable internal pclmulqdq based crc32c
-])])
+       AC_MSG_WARN([No crc32c pclmulqdq crypto api found, enable internal pclmulqdq based crc32c])])
 ]) # LIBCFS_ENABLE_CRC32C_ACCEL
 
 #
@@ -298,7 +275,68 @@ shrinker_count_objects, [
        AC_DEFINE(HAVE_SHRINKER_COUNT, 1,
                [shrinker has count_objects member])
 ])
+]) # LIBCFS_SHRINKER_COUNT
+
+#
+# Kernel version 3.17 changed hlist_add_after to
+# hlist_add_behind
+#
+AC_DEFUN([LIBCFS_HLIST_ADD_AFTER],[
+LB_CHECK_COMPILE([does function 'hlist_add_after' exist],
+hlist_add_after, [
+       #include <linux/list.h>
+],[
+       hlist_add_after(NULL, NULL);
+],[
+       AC_DEFINE(HAVE_HLIST_ADD_AFTER, 1,
+               [hlist_add_after is available])
+])
+]) # LIBCFS_HLIST_ADD_AFTER
+
+#
+# Kernel version 4.2 changed topology_thread_cpumask
+# to topology_sibling_cpumask
+#
+AC_DEFUN([LIBCFS_HAVE_TOPOLOGY_SIBLING_CPUMASK],[
+LB_CHECK_COMPILE([does function 'topology_sibling_cpumask' exist],
+topology_sibling_cpumask, [
+       #include <linux/topology.h>
+],[
+       const struct cpumask *mask;
+
+       mask = topology_sibling_cpumask(0);
+],[
+       AC_DEFINE(HAVE_TOPOLOGY_SIBLING_CPUMASK, 1,
+               [topology_sibling_cpumask is available])
+])
+]) # LIBCFS_HAVE_TOPOLOGY_SIBLING_CPUMASK
+
+#
+# Kernel version 4.2 commit df6b35f409af0a8ff1ef62f552b8402f3fef8665
+# header file i387.h was renamed to fpu/api.h
+#
+AC_DEFUN([LIBCFS_FPU_API], [
+LB_CHECK_LINUX_HEADER([asm/fpu/api.h], [
+       AC_DEFINE(HAVE_FPU_API_HEADER, 1,
+               [fpu/api.h is present])])
+]) # LIBCFS_FPU_API
+
+#
+# Kernel version 4.5-rc1 commit d12481bc58fba89427565f8592e88446ec084a24
+# added crypto hash helpers
+#
+AC_DEFUN([LIBCFS_CRYPTO_HASH_HELPERS], [
+LB_CHECK_COMPILE([does crypto hash helper functions exist],
+crypto_hash_helpers, [
+       #include <crypto/hash.h>
+],[
+       crypto_ahash_alg_name(NULL);
+       crypto_ahash_driver_name(NULL);
+],[
+       AC_DEFINE(HAVE_CRYPTO_HASH_HELPERS, 1,
+               [crypto hash helper functions are available])
 ])
+]) # LIBCFS_CRYPTO_HASH_HELPERS
 
 #
 # LIBCFS_PROG_LINUX
@@ -315,8 +353,6 @@ LIBCFS_STACKTRACE_OPS_HAVE_WALK_STACK
 LC_SHRINKER_WANT_SHRINK_PTR
 # 2.6.33
 LIBCFS_SYSCTL_CTLNAME
-# 2.6.35
-LC_SK_SLEEP
 # 2.6.38
 LIBCFS_KSTRTOUL
 # 2.6.39
@@ -337,6 +373,13 @@ LIBCFS_ENABLE_CRC32_ACCEL
 LIBCFS_ENABLE_CRC32C_ACCEL
 # 3.12
 LIBCFS_SHRINKER_COUNT
+# 3.17
+LIBCFS_HLIST_ADD_AFTER
+# 4.2
+LIBCFS_HAVE_TOPOLOGY_SIBLING_CPUMASK
+LIBCFS_FPU_API
+# 4.5
+LIBCFS_CRYPTO_HASH_HELPERS
 ]) # LIBCFS_PROG_LINUX
 
 #