]> git.proxmox.com Git - mirror_zfs.git/blame - config/kernel-objtool.m4
FreeBSD: Add zfs_link_create() error handling
[mirror_zfs.git] / config / kernel-objtool.m4
CommitLineData
8c7d604c
BB
1dnl #
2dnl # Detect objtool functionality.
3dnl #
4
5dnl #
6dnl # Kernel 5.10: linux/frame.h was renamed linux/objtool.h
7dnl #
8AC_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 22dnl #
608f8749 23dnl # Check for objtool support.
650383f2 24dnl #
608f8749
BB
25AC_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
52AC_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])