summaryrefslogtreecommitdiff
path: root/config/kernel-objtool.m4
diff options
context:
space:
mode:
authorMatt Macy <mmacy@FreeBSD.org>2020-08-24 22:48:19 +0000
committerMatt Macy <mmacy@FreeBSD.org>2020-08-24 22:48:19 +0000
commit3b0ce0e28db46d0403929aba45c682285e1ac217 (patch)
tree91721e6e5518bd0d8113dee535898f2225443411 /config/kernel-objtool.m4
Notes
Diffstat (limited to 'config/kernel-objtool.m4')
-rw-r--r--config/kernel-objtool.m445
1 files changed, 45 insertions, 0 deletions
diff --git a/config/kernel-objtool.m4 b/config/kernel-objtool.m4
new file mode 100644
index 0000000000000..bf60e7869213d
--- /dev/null
+++ b/config/kernel-objtool.m4
@@ -0,0 +1,45 @@
+dnl #
+dnl # Check for objtool support.
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_SRC_OBJTOOL], [
+
+ dnl # 4.6 API for compile-time stack validation
+ ZFS_LINUX_TEST_SRC([objtool], [
+ #undef __ASSEMBLY__
+ #include <asm/frame.h>
+ ],[
+ #if !defined(FRAME_BEGIN)
+ CTASSERT(1);
+ #endif
+ ])
+
+ dnl # 4.6 API added STACK_FRAME_NON_STANDARD macro
+ ZFS_LINUX_TEST_SRC([stack_frame_non_standard], [
+ #include <linux/frame.h>
+ ],[
+ #if !defined(STACK_FRAME_NON_STANDARD)
+ CTASSERT(1);
+ #endif
+ ])
+])
+
+AC_DEFUN([ZFS_AC_KERNEL_OBJTOOL], [
+ AC_MSG_CHECKING(
+ [whether compile-time stack validation (objtool) is available])
+ ZFS_LINUX_TEST_RESULT([objtool], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_KERNEL_OBJTOOL, 1,
+ [kernel does stack verification])
+
+ AC_MSG_CHECKING([whether STACK_FRAME_NON_STANDARD is defined])
+ ZFS_LINUX_TEST_RESULT([stack_frame_non_standard], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_STACK_FRAME_NON_STANDARD, 1,
+ [STACK_FRAME_NON_STANDARD is defined])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+])