1*eda14cbcSMatt Macydnl # 2*eda14cbcSMatt Macydnl # Check for objtool support. 3*eda14cbcSMatt Macydnl # 4*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_SRC_OBJTOOL], [ 5*eda14cbcSMatt Macy 6*eda14cbcSMatt Macy dnl # 4.6 API for compile-time stack validation 7*eda14cbcSMatt Macy ZFS_LINUX_TEST_SRC([objtool], [ 8*eda14cbcSMatt Macy #undef __ASSEMBLY__ 9*eda14cbcSMatt Macy #include <asm/frame.h> 10*eda14cbcSMatt Macy ],[ 11*eda14cbcSMatt Macy #if !defined(FRAME_BEGIN) 12*eda14cbcSMatt Macy CTASSERT(1); 13*eda14cbcSMatt Macy #endif 14*eda14cbcSMatt Macy ]) 15*eda14cbcSMatt Macy 16*eda14cbcSMatt Macy dnl # 4.6 API added STACK_FRAME_NON_STANDARD macro 17*eda14cbcSMatt Macy ZFS_LINUX_TEST_SRC([stack_frame_non_standard], [ 18*eda14cbcSMatt Macy #include <linux/frame.h> 19*eda14cbcSMatt Macy ],[ 20*eda14cbcSMatt Macy #if !defined(STACK_FRAME_NON_STANDARD) 21*eda14cbcSMatt Macy CTASSERT(1); 22*eda14cbcSMatt Macy #endif 23*eda14cbcSMatt Macy ]) 24*eda14cbcSMatt Macy]) 25*eda14cbcSMatt Macy 26*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_OBJTOOL], [ 27*eda14cbcSMatt Macy AC_MSG_CHECKING( 28*eda14cbcSMatt Macy [whether compile-time stack validation (objtool) is available]) 29*eda14cbcSMatt Macy ZFS_LINUX_TEST_RESULT([objtool], [ 30*eda14cbcSMatt Macy AC_MSG_RESULT(yes) 31*eda14cbcSMatt Macy AC_DEFINE(HAVE_KERNEL_OBJTOOL, 1, 32*eda14cbcSMatt Macy [kernel does stack verification]) 33*eda14cbcSMatt Macy 34*eda14cbcSMatt Macy AC_MSG_CHECKING([whether STACK_FRAME_NON_STANDARD is defined]) 35*eda14cbcSMatt Macy ZFS_LINUX_TEST_RESULT([stack_frame_non_standard], [ 36*eda14cbcSMatt Macy AC_MSG_RESULT(yes) 37*eda14cbcSMatt Macy AC_DEFINE(HAVE_STACK_FRAME_NON_STANDARD, 1, 38*eda14cbcSMatt Macy [STACK_FRAME_NON_STANDARD is defined]) 39*eda14cbcSMatt Macy ],[ 40*eda14cbcSMatt Macy AC_MSG_RESULT(no) 41*eda14cbcSMatt Macy ]) 42*eda14cbcSMatt Macy ],[ 43*eda14cbcSMatt Macy AC_MSG_RESULT(no) 44*eda14cbcSMatt Macy ]) 45*eda14cbcSMatt Macy]) 46