]>
Commit | Line | Data |
---|---|---|
8c7d604c BB |
1 | dnl # |
2 | dnl # Detect objtool functionality. | |
3 | dnl # | |
4 | ||
5 | dnl # | |
6 | dnl # Kernel 5.10: linux/frame.h was renamed linux/objtool.h | |
7 | dnl # | |
8 | AC_DEFUN([ZFS_AC_KERNEL_OBJTOOL_HEADER], [ | |
9 | AC_MSG_CHECKING([whether objtool header is available]) | |
10 | ZFS_LINUX_TRY_COMPILE([ | |
11 | #include <linux/objtool.h> | |
12 | ],[ | |
13 | ],[ | |
14 | AC_DEFINE(HAVE_KERNEL_OBJTOOL_HEADER, 1, | |
15 | [kernel has linux/objtool.h]) | |
16 | AC_MSG_RESULT(linux/objtool.h) | |
17 | ],[ | |
18 | AC_MSG_RESULT(linux/frame.h) | |
19 | ]) | |
20 | ]) | |
21 | ||
650383f2 | 22 | dnl # |
608f8749 | 23 | dnl # Check for objtool support. |
650383f2 | 24 | dnl # |
608f8749 BB |
25 | AC_DEFUN([ZFS_AC_KERNEL_SRC_OBJTOOL], [ |
26 | ||
27 | dnl # 4.6 API for compile-time stack validation | |
28 | ZFS_LINUX_TEST_SRC([objtool], [ | |
650383f2 | 29 | #undef __ASSEMBLY__ |
96951e03 | 30 | #include <asm/ptrace.h> |
650383f2 GN |
31 | #include <asm/frame.h> |
32 | ],[ | |
33 | #if !defined(FRAME_BEGIN) | |
96951e03 | 34 | #error "FRAME_BEGIN is not defined" |
650383f2 | 35 | #endif |
c28a6773 | 36 | ]) |
c28a6773 | 37 | |
608f8749 BB |
38 | dnl # 4.6 API added STACK_FRAME_NON_STANDARD macro |
39 | ZFS_LINUX_TEST_SRC([stack_frame_non_standard], [ | |
8c7d604c BB |
40 | #ifdef HAVE_KERNEL_OBJTOOL_HEADER |
41 | #include <linux/objtool.h> | |
42 | #else | |
c28a6773 | 43 | #include <linux/frame.h> |
8c7d604c | 44 | #endif |
c28a6773 BB |
45 | ],[ |
46 | #if !defined(STACK_FRAME_NON_STANDARD) | |
96951e03 | 47 | #error "STACK_FRAME_NON_STANDARD is not defined." |
c28a6773 | 48 | #endif |
608f8749 BB |
49 | ]) |
50 | ]) | |
51 | ||
52 | AC_DEFUN([ZFS_AC_KERNEL_OBJTOOL], [ | |
53 | AC_MSG_CHECKING( | |
54 | [whether compile-time stack validation (objtool) is available]) | |
55 | ZFS_LINUX_TEST_RESULT([objtool], [ | |
c28a6773 | 56 | AC_MSG_RESULT(yes) |
608f8749 BB |
57 | AC_DEFINE(HAVE_KERNEL_OBJTOOL, 1, |
58 | [kernel does stack verification]) | |
59 | ||
60 | AC_MSG_CHECKING([whether STACK_FRAME_NON_STANDARD is defined]) | |
61 | ZFS_LINUX_TEST_RESULT([stack_frame_non_standard], [ | |
62 | AC_MSG_RESULT(yes) | |
63 | AC_DEFINE(HAVE_STACK_FRAME_NON_STANDARD, 1, | |
64 | [STACK_FRAME_NON_STANDARD is defined]) | |
65 | ],[ | |
66 | AC_MSG_RESULT(no) | |
67 | ]) | |
650383f2 GN |
68 | ],[ |
69 | AC_MSG_RESULT(no) | |
70 | ]) | |
71 | ]) |