X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=libcfs%2Fautoconf%2Flustre-libcfs.m4;h=abc00db524dc6db189d4a52c6899962d266124c4;hp=62ec024fc0d67fbefc6369d74209cd8a195d7afa;hb=22c8262f0d7093bf120e100aaf42bd8782b9879a;hpb=bb8c57032a47020099bad60f7cea89b4530841d3 diff --git a/libcfs/autoconf/lustre-libcfs.m4 b/libcfs/autoconf/lustre-libcfs.m4 index 62ec024..abc00db 100644 --- a/libcfs/autoconf/lustre-libcfs.m4 +++ b/libcfs/autoconf/lustre-libcfs.m4 @@ -82,235 +82,6 @@ LB_LINUX_TRY_COMPILE([ EXTRA_KCFLAGS="$tmp_flags" ]) -# LIBCFS_TASKLIST_LOCK -# 2.6.18 remove tasklist_lock export -AC_DEFUN([LIBCFS_TASKLIST_LOCK], -[LB_CHECK_SYMBOL_EXPORT([tasklist_lock], -[kernel/fork.c],[ -AC_DEFINE(HAVE_TASKLIST_LOCK, 1, - [tasklist_lock exported]) -],[ -]) -]) - -# LIBCFS_DIGEST_SETKEY_FLAGS -# digest_alg.dia_setkey takes 4 args (2.6.18) -# -AC_DEFUN([LIBCFS_DIGEST_SETKEY_FLAGS], -[AC_MSG_CHECKING([if kernel dia_setkey takes 4 args]) -LB_LINUX_TRY_COMPILE([ - #include - #include -],[ - struct digest_alg alg; - - alg.dia_setkey(NULL, NULL, 0, NULL); -],[ - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_DIGEST_SETKEY_FLAGS, 1, [kernel dia_setkey takes 4 args]) -],[ - AC_MSG_RESULT([no]) -]) -]) - -# 2.6.19 API changes -# kmem_cache_destroy(cachep) return void instead of -# int -AC_DEFUN([LIBCFS_KMEM_CACHE_DESTROY_INT], -[AC_MSG_CHECKING([kmem_cache_destroy(cachep) return int]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - int i __attribute__ ((unused)); - i = kmem_cache_destroy(NULL); -],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_KMEM_CACHE_DESTROY_INT, 1, - [kmem_cache_destroy(cachep) return int]) -],[ - AC_MSG_RESULT(NO) -]) -]) - -# check cpumask_size (2.6.28) -AC_DEFUN([LIBCFS_CPUMASK_SIZE], -[AC_MSG_CHECKING([whether have cpumask_size()]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - int size = cpumask_size(); -],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_CPUMASK_SIZE, 1, [have cpumask_size()]) -],[ - AC_MSG_RESULT(NO) -]) -]) - -# check cpu topology functions -# -# topology_core_cpumask (2.6.29, not on all archs) -# topology_core_siblings (not on all archs) -# topology_thread_cpumask (2.6.29, not on all archs) -# topology_thread_siblings (not on all archs) -# cpumask_of_node/node_to_cpumask (not always exported) -AC_DEFUN([LIBCFS_CPU_TOPOLOGY], -[AC_MSG_CHECKING([whether have topology.h]) -LB_LINUX_TRY_COMPILE([ - #include -],[],[ - AC_DEFINE(HAVE_CPU_TOPOLOGY, 1, [have CPU topology]) - AC_MSG_RESULT(yes) - - AC_MSG_CHECKING([whether have topology_core_cpumask]) - LB_LINUX_TRY_COMPILE([ - #include - ],[ - cpumask_t *mask = topology_core_cpumask(0); - ],[ - AC_DEFINE(HAVE_TOPOLOGY_CORE_CPUMASK, 1, - [have topology_core_cpumask]) - AC_MSG_RESULT(yes) - ],[ - AC_MSG_RESULT(no) - ]) - - AC_MSG_CHECKING([whether have topology_core_siblings]) - LB_LINUX_TRY_COMPILE([ - #include - ],[ - cpumask_t mask = topology_core_siblings(0); - ],[ - AC_DEFINE(HAVE_TOPOLOGY_CORE_SIBLINGS, 1, - [have topology_core_siblings]) - AC_MSG_RESULT(yes) - ],[ - AC_MSG_RESULT(no) - ]) - - AC_MSG_CHECKING([whether have topology_thread_cpumask]) - LB_LINUX_TRY_COMPILE([ - #include - ],[ - cpumask_t *mask = topology_thread_cpumask(0); - ],[ - AC_DEFINE(HAVE_TOPOLOGY_THREAD_CPUMASK, 1, - [have topology_thread_cpumask]) - AC_MSG_RESULT(yes) - ],[ - AC_MSG_RESULT(no) - ]) - - AC_MSG_CHECKING([whether have topology_thread_siblings]) - LB_LINUX_TRY_COMPILE([ - #include - ],[ - cpumask_t mask = topology_thread_siblings(0); - ],[ - AC_DEFINE(HAVE_TOPOLOGY_THREAD_SIBLINGS, 1, - [have topology_thread_siblings]) - AC_MSG_RESULT(yes) - ],[ - AC_MSG_RESULT(no) - ]) - - AC_MSG_CHECKING([whether have cpumask_of_node]) - LB_LINUX_TRY_COMPILE([ - #include - ],[ - cpumask_t *mask = cpumask_of_node(0); - ],[ - AC_DEFINE(HAVE_CPUMASK_OF_NODE, 1, [have cpumask_of_node]) - AC_MSG_RESULT(yes) - ],[ - AC_MSG_RESULT(no) - ]) - - AC_MSG_CHECKING([whether have node_to_cpumask]) - LB_LINUX_TRY_COMPILE([ - #include - ],[ - cpumask_t mask = node_to_cpumask(0); - ],[ - AC_DEFINE(HAVE_NODE_TO_CPUMASK, 1, [have node_to_cpumask]) - AC_MSG_RESULT(yes) - ],[ - AC_MSG_RESULT(no) - ]) -],[ - AC_MSG_RESULT(NO) -]) -]) - - -# 2.6.20 API change INIT_WORK use 2 args and not -# store data inside -AC_DEFUN([LIBCFS_3ARGS_INIT_WORK], -[AC_MSG_CHECKING([check INIT_WORK want 3 args]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - struct work_struct work __attribute__ ((unused)); - - INIT_WORK(&work, NULL, NULL); -],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_3ARGS_INIT_WORK, 1, - [INIT_WORK use 3 args and store data inside]) -],[ - AC_MSG_RESULT(NO) -]) -]) - -# 2.6.21 api change. 'register_sysctl_table' use only one argument, -# instead of more old which need two. -AC_DEFUN([LIBCFS_2ARGS_REGISTER_SYSCTL], -[AC_MSG_CHECKING([check register_sysctl_table want 2 args]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - register_sysctl_table(NULL,0); -],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_2ARGS_REGISTER_SYSCTL, 1, - [register_sysctl_table want 2 args]) -],[ - AC_MSG_RESULT(NO) -]) -]) - -# 2.6.23 lost dtor argument -AC_DEFUN([LIBCFS_KMEM_CACHE_CREATE_DTOR], -[AC_MSG_CHECKING([check kmem_cache_create has dtor argument]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - kmem_cache_create(NULL, 0, 0, 0, NULL, NULL); -],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_KMEM_CACHE_CREATE_DTOR, 1, - [kmem_cache_create has dtor argument]) -],[ - AC_MSG_RESULT(NO) -]) -]) - -#2.6.23 has new shrinker API -AC_DEFUN([LC_REGISTER_SHRINKER], -[AC_MSG_CHECKING([if kernel has register_shrinker]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - register_shrinker(NULL); -], [ - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_REGISTER_SHRINKER, 1, - [kernel has register_shrinker]) -],[ - AC_MSG_RESULT([no]) -]) -]) - # 2.6.24 request not use real numbers for ctl_name AC_DEFUN([LIBCFS_SYSCTL_UNNUMBERED], [AC_MSG_CHECKING([for CTL_UNNUMBERED]) @@ -329,252 +100,6 @@ LB_LINUX_TRY_COMPILE([ ]) ]) -# 2.6.24 lost scatterlist->page -AC_DEFUN([LIBCFS_SCATTERLIST_SETPAGE], -[AC_MSG_CHECKING([for exist sg_set_page]) -LB_LINUX_TRY_COMPILE([ - #include - #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.24 -AC_DEFUN([LIBCFS_NETWORK_NAMESPACE], -[AC_MSG_CHECKING([for network stack has namespaces]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - struct net *net __attribute__ ((unused)); - net = &init_net; -],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_INIT_NET, 1, - [kernel is support network namespaces ]) -],[ - AC_MSG_RESULT(NO) -]) -]) - -# -# LIBCFS_FUNC_DUMP_TRACE -# -# 2.6.23 exports dump_trace() so we can dump_stack() on any task -# 2.6.24 has stacktrace_ops.address with "reliable" parameter -# -AC_DEFUN([LIBCFS_FUNC_DUMP_TRACE], -[LB_CHECK_SYMBOL_EXPORT([dump_trace], -[kernel/ksyms.c arch/${LINUX_ARCH%_64}/kernel/traps_64.c arch/x86/kernel/dumpstack_32.c arch/x86/kernel/dumpstack_64.c],[ - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="-Werror" - AC_MSG_CHECKING([whether we can really use dump_trace]) - LB_LINUX_TRY_COMPILE([ - struct task_struct; - struct pt_regs; - #include - ],[ - ],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_DUMP_TRACE, 1, [dump_trace is exported]) - ],[ - AC_MSG_RESULT(no) - ],[ - ]) - AC_MSG_CHECKING([whether print_trace_address has reliable argument]) - LB_LINUX_TRY_COMPILE([ - struct task_struct; - struct pt_regs; - #include - ],[ - ((struct stacktrace_ops *)0)->address(NULL, 0, 0); - ],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_TRACE_ADDRESS_RELIABLE, 1, - [print_trace_address has reliable argument]) - ],[ - AC_MSG_RESULT(no) - ],[ - ]) - AC_MSG_CHECKING([whether stacktrace_ops.warning is exist]) - LB_LINUX_TRY_COMPILE([ - struct task_struct; - struct pt_regs; - #include - ],[ - ((struct stacktrace_ops *)0)->warning(NULL, NULL); - ],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_STACKTRACE_WARNING, 1, [stacktrace_ops.warning is exist]) - ],[ - AC_MSG_RESULT(no) - ],[ - ]) - AC_MSG_CHECKING([dump_trace want address]) - LB_LINUX_TRY_COMPILE([ - struct task_struct; - struct pt_regs; - #include - ],[ - dump_trace(NULL, NULL, NULL, 0, NULL, NULL); - ],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_DUMP_TRACE_ADDRESS, 1, - [dump_trace want address argument]) - ],[ - AC_MSG_RESULT(no) - ],[ - ]) - -EXTRA_KCFLAGS="$tmp_flags" -]) -]) - - -# 2.6.26 use int instead of atomic for sem.count -AC_DEFUN([LIBCFS_SEM_COUNT], -[AC_MSG_CHECKING([atomic sem.count]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - struct semaphore s __attribute__ ((unused)); - - atomic_read(&s.count); -],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_SEM_COUNT_ATOMIC, 1, - [semaphore counter is atomic]) -],[ - AC_MSG_RESULT(NO) -]) -]) - -# 2.6.27 have second argument to sock_map_fd -AC_DEFUN([LIBCFS_SOCK_MAP_FD_2ARG], -[AC_MSG_CHECKING([sock_map_fd have second argument]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - sock_map_fd(NULL, 0); -],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_SOCK_MAP_FD_2ARG, 1, - [sock_map_fd have second argument]) -],[ - AC_MSG_RESULT(NO) -]) -]) - -# LIBCFS_CRED_WRAPPERS -# -# wrappers for task's credentials are in sles11 -# -AC_DEFUN([LIBCFS_CRED_WRAPPERS], -[AC_MSG_CHECKING([if kernel has wrappers for task's credentials]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - uid_t uid; - - uid = current_uid() + sizeof(uid); -],[ - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_CRED_WRAPPERS, 1, [task's cred wrappers found]) -],[ - AC_MSG_RESULT([no]) -]) -]) - -# -# LN_STRUCT_CRED_IN_TASK -# -# struct cred was introduced in 2.6.29 to streamline credentials in task struct -# -AC_DEFUN([LIBCFS_STRUCT_CRED_IN_TASK], -[AC_MSG_CHECKING([if kernel has struct cred]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - struct task_struct *tsk = NULL; - tsk->real_cred = NULL; -],[ - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_STRUCT_CRED, 1, [struct cred found]) -],[ - AC_MSG_RESULT([no]) -]) -]) - -# LIBCFS_STRUCT_SHASH_ALG -# struct shash_alg was introduced in 2.6.29 -# -AC_DEFUN([LIBCFS_STRUCT_SHASH_ALG], -[AC_MSG_CHECKING([if kernel has struct shash_alg]) -LB_LINUX_TRY_COMPILE([ - #include - #include -],[ - struct shash_alg foo; -],[ - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_STRUCT_SHASH_ALG, 1, [kernel has struct shash_alg]) -],[ - AC_MSG_RESULT([no]) -]) -]) - - -# -# LIBCFS_FUNC_UNSHARE_FS_STRUCT -# -# unshare_fs_struct was introduced in 2.6.30 to prevent others to directly -# mess with copy_fs_struct -# -AC_DEFUN([LIBCFS_FUNC_UNSHARE_FS_STRUCT], -[AC_MSG_CHECKING([if kernel defines unshare_fs_struct()]) -tmp_flags="$EXTRA_KCFLAGS" -EXTRA_KCFLAGS="-Werror" -LB_LINUX_TRY_COMPILE([ - #include - #include -],[ - unshare_fs_struct(); -],[ - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_UNSHARE_FS_STRUCT, 1, [unshare_fs_struct found]) -],[ - AC_MSG_RESULT([no]) -]) -EXTRA_KCFLAGS="$tmp_flags" -]) - -# -# LIBCFS_HAVE_IS_COMPAT_TASK -# -# Added in 2.6.17, it wasn't until 2.6.29 that all -# Linux architectures have is_compat_task() -# -AC_DEFUN([LIBCFS_HAVE_IS_COMPAT_TASK], -[AC_MSG_CHECKING([if is_compat_task() is declared]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - int i __attribute__ ((unused)); - i = is_compat_task(); -],[ - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_IS_COMPAT_TASK, 1, [is_compat_task() is available]) -],[ - AC_MSG_RESULT([no]) -]) -]) - # # LIBCFS_STACKTRACE_OPS_HAVE_WALK_STACK # @@ -594,37 +119,16 @@ LB_LINUX_TRY_COMPILE([ ]) ]) -AC_DEFUN([LIBCFS_HAVE_OOM_H], -[LB_CHECK_FILE([$LINUX/include/linux/oom.h], [ - AC_DEFINE(HAVE_LINUX_OOM_H, 1, - [kernel has include/oom.h]) +AC_DEFUN([LIBCFS_HAVE_KEYTYPE_H], +[LB_CHECK_FILE([$LINUX/include/linux/key-type.h], [ + AC_DEFINE(HAVE_LINUX_KEYTYPE_H, 1, + [kernel has include/key-type.h]) ],[ AC_MSG_RESULT([no]) ]) ]) # -# check set_mems_allowed -# 2.6.31 adds function set_mems_allowed in cpuset.h -# -AC_DEFUN([LIBCFS_HAVE_SET_MEMS_ALLOWED], -[AC_MSG_CHECKING([whether have set_mems_allowed()]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - nodemask_t mask; - - set_mems_allowed(mask); -],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_SET_MEMS_ALLOWED, 1, [have set_mems_allowed()]) -],[ - AC_MSG_RESULT(NO) -]) -]) - - -# # RHEL6/2.6.32 want to have pointer to shrinker self pointer in handler function # AC_DEFUN([LC_SHRINKER_WANT_SHRINK_PTR], @@ -643,23 +147,6 @@ LB_LINUX_TRY_COMPILE([ ]) ]) -# 2.6.18 store oom parameters in task struct. -# 2.6.32 store oom parameters in signal struct -AC_DEFUN([LIBCFS_OOMADJ_IN_SIG], -[AC_MSG_CHECKING([kernel store oom parameters in task]) -LB_LINUX_TRY_COMPILE([ - #include -],[ - ((struct signal_struct *)0)->oom_adj = 0; -],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_OOMADJ_IN_SIG, 1, - [kernel store a oom parameters in signal struct]) -],[ - AC_MSG_RESULT(no) -]) -]) - # # 2.6.33 no longer has ctl_name & strategy field in struct ctl_table. # @@ -716,6 +203,26 @@ LB_LINUX_TRY_COMPILE([ AC_DEFINE(HAVE_SK_SLEEP, 1, [kernel has sk_sleep]) ],[ AC_MSG_RESULT(no) +],[ +]) +]) + +# 2.6.39 adds a base pointer address argument to dump_trace +AC_DEFUN([LIBCFS_DUMP_TRACE_ADDRESS], +[AC_MSG_CHECKING([dump_trace want address]) +LB_LINUX_TRY_COMPILE([ + struct task_struct; + struct pt_regs; + #include +],[ + dump_trace(NULL, NULL, NULL, 0, NULL, NULL); +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_DUMP_TRACE_ADDRESS, 1, + [dump_trace want address argument]) +],[ + AC_MSG_RESULT(no) +],[ ]) ]) @@ -739,6 +246,77 @@ LB_LINUX_TRY_COMPILE([ ]) ]) +# 3.0 removes stacktrace_ops warning* functions +AC_DEFUN([LIBCFS_STACKTRACE_WARNING], +[AC_MSG_CHECKING([whether stacktrace_ops.warning is exist]) +LB_LINUX_TRY_COMPILE([ + struct task_struct; + struct pt_regs; + #include +],[ + ((struct stacktrace_ops *)0)->warning(NULL, NULL); +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_STACKTRACE_WARNING, 1, [stacktrace_ops.warning is exist]) +],[ + AC_MSG_RESULT(no) +],[ +]) +]) + +# +# FC18 3.7.2-201 unexport sock_map_fd() change to +# use sock_alloc_file(). +# upstream commit 56b31d1c9f1e6a3ad92e7bfe252721e05d92b285 +# +AC_DEFUN([LIBCFS_SOCK_ALLOC_FILE], +[AC_MSG_CHECKING([sock_alloc_file is exported]) +LB_CHECK_SYMBOL_EXPORT([sock_alloc_file], [net/socket.c],[ + LB_LINUX_TRY_COMPILE([ + #include + ],[ + sock_alloc_file(NULL, 0, NULL); + ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SOCK_ALLOC_FILE_3ARGS, 1, + [sock_alloc_file takes 3 arguments]) + ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SOCK_ALLOC_FILE, 1, + [sock_alloc_file is exported]) + ]) +],[ +]) +]) + +AC_DEFUN([LIBCFS_HAVE_CRC32], +[LB_LINUX_CONFIG_IM([CRC32], + [have_crc32=true],[have_crc32=false]) +if test x$have_crc32 = xtrue; then + AC_DEFINE(HAVE_CRC32, 1, [kernel compiled with CRC32 functions]) +fi +]) + +AC_DEFUN([LIBCFS_ENABLE_CRC32_ACCEL], +[LB_LINUX_CONFIG_IM([CRYPTO_CRC32_PCLMUL], + [enable_crc32_crypto=false],[enable_crc32_crypto=true]) +if test x$have_crc32 = xtrue -a x$enable_crc32_crypto = xtrue; then + AC_DEFINE(NEED_CRC32_ACCEL, 1, [need pclmulqdq based crc32]) + AC_MSG_WARN([No crc32 pclmulqdq crypto api found, + enable internal pclmulqdq based crc32]) +fi +]) + +AC_DEFUN([LIBCFS_ENABLE_CRC32C_ACCEL], +[LB_LINUX_CONFIG_IM([CRYPTO_CRC32C_INTEL], + [enable_crc32c_crypto=false],[enable_crc32c_crypto=true]) +if test x$enable_crc32c_crypto = xtrue; then + AC_DEFINE(NEED_CRC32C_ACCEL, 1, [need pclmulqdq based crc32c]) + AC_MSG_WARN([No crc32c pclmulqdq crypto api found, + enable internal pclmulqdq based crc32c]) +fi +]) + # # LIBCFS_PROG_LINUX # @@ -749,52 +327,31 @@ AC_DEFUN([LIBCFS_PROG_LINUX], LIBCFS_CONFIG_PANIC_DUMPLOG LIBCFS_U64_LONG_LONG_LINUX -# 2.6.18 -LIBCFS_TASKLIST_LOCK -LIBCFS_HAVE_IS_COMPAT_TASK -LIBCFS_DIGEST_SETKEY_FLAGS -# 2.6.19 -LIBCFS_KMEM_CACHE_DESTROY_INT -# 2.6.20 -LIBCFS_3ARGS_INIT_WORK -# 2.6.21 -LIBCFS_2ARGS_REGISTER_SYSCTL -# 2.6.23 -LIBCFS_KMEM_CACHE_CREATE_DTOR -LC_REGISTER_SHRINKER # 2.6.24 LIBCFS_SYSCTL_UNNUMBERED -LIBCFS_SCATTERLIST_SETPAGE -LIBCFS_NETWORK_NAMESPACE -LIBCFS_FUNC_DUMP_TRACE -# 2.6.26 -LIBCFS_SEM_COUNT -# 2.6.27 -LIBCFS_CRED_WRAPPERS -# 2.6.28 -LIBCFS_CPUMASK_SIZE -# 2.6.29 -LIBCFS_STRUCT_CRED_IN_TASK -LIBCFS_CPU_TOPOLOGY -LIBCFS_STRUCT_SHASH_ALG -# 2.6.30 -LIBCFS_FUNC_UNSHARE_FS_STRUCT -LIBCFS_SOCK_MAP_FD_2ARG -# 2.6.31 -LIBCFS_HAVE_SET_MEMS_ALLOWED +LIBCFS_HAVE_KEYTYPE_H # 2.6.32 LIBCFS_STACKTRACE_OPS_HAVE_WALK_STACK LC_SHRINKER_WANT_SHRINK_PTR -LIBCFS_HAVE_OOM_H -LIBCFS_OOMADJ_IN_SIG # 2.6.33 LIBCFS_SYSCTL_CTLNAME # 2.6.34 LIBCFS_ADD_WAIT_QUEUE_EXCLUSIVE # 2.6.35 LC_SK_SLEEP +# 2.6.39 +LIBCFS_DUMP_TRACE_ADDRESS # 2.6.40 fc15 LC_SHRINK_CONTROL +# 3.0 +LIBCFS_STACKTRACE_WARNING +# 3.7 +LIBCFS_SOCK_ALLOC_FILE +# 3.8 +LIBCFS_HAVE_CRC32 +LIBCFS_ENABLE_CRC32_ACCEL +# 3.10 +LIBCFS_ENABLE_CRC32C_ACCEL ]) # @@ -899,6 +456,7 @@ AC_COMPILE_IFELSE([ __u64 *data2 = NULL; data1 = data2; + data2 = data1; return 0; } ],[ @@ -963,6 +521,9 @@ AC_SUBST(ENABLE_LIBPTHREAD) # AC_DEFUN([LIBCFS_CONDITIONALS], [ +AM_CONDITIONAL(HAVE_CRC32, test x$have_crc32 = xtrue) +AM_CONDITIONAL(NEED_PCLMULQDQ_CRC32, test x$have_crc32 = xtrue -a x$enable_crc32_crypto = xtrue) +AM_CONDITIONAL(NEED_PCLMULQDQ_CRC32C, test x$enable_crc32c_crypto = xtrue) ]) #