]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/contrib/openzfs/config/kernel-objtool.m4
OpenZFS: MFV 2.0-rc3-gfc5966
[FreeBSD/FreeBSD.git] / sys / contrib / openzfs / config / kernel-objtool.m4
1 dnl #
2 dnl # Check for objtool support.
3 dnl #
4 AC_DEFUN([ZFS_AC_KERNEL_SRC_OBJTOOL], [
5
6         dnl # 4.6 API for compile-time stack validation
7         ZFS_LINUX_TEST_SRC([objtool], [
8                 #undef __ASSEMBLY__
9                 #include <asm/ptrace.h>
10                 #include <asm/frame.h>
11         ],[
12                 #if !defined(FRAME_BEGIN)
13                 #error "FRAME_BEGIN is not defined"
14                 #endif
15         ])
16
17         dnl # 4.6 API added STACK_FRAME_NON_STANDARD macro
18         ZFS_LINUX_TEST_SRC([stack_frame_non_standard], [
19                 #include <linux/frame.h>
20         ],[
21                 #if !defined(STACK_FRAME_NON_STANDARD)
22                 #error "STACK_FRAME_NON_STANDARD is not defined."
23                 #endif
24         ])
25 ])
26
27 AC_DEFUN([ZFS_AC_KERNEL_OBJTOOL], [
28         AC_MSG_CHECKING(
29             [whether compile-time stack validation (objtool) is available])
30         ZFS_LINUX_TEST_RESULT([objtool], [
31                 AC_MSG_RESULT(yes)
32                 AC_DEFINE(HAVE_KERNEL_OBJTOOL, 1,
33                     [kernel does stack verification])
34
35                 AC_MSG_CHECKING([whether STACK_FRAME_NON_STANDARD is defined])
36                 ZFS_LINUX_TEST_RESULT([stack_frame_non_standard], [
37                         AC_MSG_RESULT(yes)
38                         AC_DEFINE(HAVE_STACK_FRAME_NON_STANDARD, 1,
39                            [STACK_FRAME_NON_STANDARD is defined])
40                 ],[
41                         AC_MSG_RESULT(no)
42                 ])
43         ],[
44                 AC_MSG_RESULT(no)
45         ])
46 ])