Add handling for kernel 4.7's CONFIG_TRIM_UNUSED_KSYMS
Kernel 4.7 added the option to trim the unused exported symbols. In my testing this showed to be problematic since the PDE_DATA function was considered unused and as such was trimmed. This in turn caused the respective test during spl's configure stage to falsely detect that PDE_DATA is not defined, which in turn caused build failures later. Handle this situation by adding detection whether CONFIG_TRIM_UNUSED_KSYMS is enabled and refuse to build against a kernel which has it enabled Signed-off-by: Nikolay Borisov <n.borisov.lkml@gmail.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #565
This commit is contained in:
parent
fb83388387
commit
4b9dddf430
|
@ -24,6 +24,7 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
|
|||
SPL_AC_ATOMIC_SPINLOCK
|
||||
SPL_AC_SHRINKER_CALLBACK
|
||||
SPL_AC_CTL_NAME
|
||||
SPL_AC_CONFIG_TRIM_UNUSED_KSYMS
|
||||
SPL_AC_PDE_DATA
|
||||
SPL_AC_SET_FS_PWD_WITH_CONST
|
||||
SPL_AC_2ARGS_VFS_UNLINK
|
||||
|
@ -1248,6 +1249,26 @@ AC_DEFUN([SPL_AC_CONFIG_ZLIB_DEFLATE], [
|
|||
])
|
||||
])
|
||||
|
||||
dnl #
|
||||
dnl # config trim unused symbols,
|
||||
dnl # Verify the kernel has CONFIG_TRIM_UNUSED_KSYMS DISABLED.
|
||||
dnl #
|
||||
AC_DEFUN([SPL_AC_CONFIG_TRIM_UNUSED_KSYMS], [
|
||||
AC_MSG_CHECKING([whether CONFIG_TRIM_UNUSED_KSYM is disabled])
|
||||
SPL_LINUX_TRY_COMPILE([
|
||||
#if defined(CONFIG_TRIM_UNUSED_KSYMS)
|
||||
#error CONFIG_TRIM_UNUSED_KSYMS not defined
|
||||
#endif
|
||||
],[ ],[
|
||||
AC_MSG_RESULT([yes])
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([
|
||||
*** This kernel has unused symbols trimming enabled, please disable.
|
||||
*** Rebuild the kernel with CONFIG_TRIM_UNUSED_KSYMS=n set.])
|
||||
])
|
||||
])
|
||||
|
||||
dnl #
|
||||
dnl # 2.6.39 API compat,
|
||||
dnl # The function zlib_deflate_workspacesize() now take 2 arguments.
|
||||
|
|
Loading…
Reference in New Issue