X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=libcfs%2Fautoconf%2Flustre-libcfs.m4;h=210fa2f089092d01f5e9b0791ad992d2e5714d39;hp=e6d7e5df47b2c32d89c7d96116b20f63a070cf73;hb=8250f49e3d0431db6a6363f959d2cce65684c74e;hpb=ee009f3b3e7bd467df3da3d0b53777db65790062 diff --git a/libcfs/autoconf/lustre-libcfs.m4 b/libcfs/autoconf/lustre-libcfs.m4 index e6d7e5d..210fa2f 100644 --- a/libcfs/autoconf/lustre-libcfs.m4 +++ b/libcfs/autoconf/lustre-libcfs.m4 @@ -115,80 +115,6 @@ LB_LINUX_TRY_COMPILE([ ]) ]) -# -# 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.27 have second argument to sock_map_fd AC_DEFUN([LIBCFS_SOCK_MAP_FD_2ARG], [AC_MSG_CHECKING([sock_map_fd have second argument]) @@ -308,6 +234,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) +],[ ]) ]) @@ -331,6 +277,24 @@ 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(). @@ -368,7 +332,6 @@ LIBCFS_CONFIG_PANIC_DUMPLOG LIBCFS_U64_LONG_LONG_LINUX # 2.6.24 LIBCFS_SYSCTL_UNNUMBERED -LIBCFS_FUNC_DUMP_TRACE LIBCFS_HAVE_KEYTYPE_H # 2.6.30 LIBCFS_SOCK_MAP_FD_2ARG @@ -381,8 +344,12 @@ LIBCFS_SYSCTL_CTLNAME 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 ])