mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-18 10:21:01 +03:00
e921f6508b
1. With various (debug and/or tracing?) kernel options enabled it's possible for 'struct inode' and 'struct super_block' to exceed the default frame size, leaving errors like this in config.log: build/conftest.c:116:1: error: the frame size of 1048 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] Fix this by removing the frame size warning for config checks 2. Without the correct headers included, it's possible for declarations to be missed, leaving errors like this in the config.log: build/conftest.c:131:14: error: ‘struct nameidata’ declared inside parameter list [-Werror] Fix this by adding appropriate headers. Note: Both these issues can result in silent config failures because the compile failure is taken to mean "this option is not supported by this kernel" rather than "there's something wrong with the config test". This can lead to something merely annoying (compile failures) to something potentially serious (miscompiled or misused kernel primitives or functions). E.g. the fixes included here resulted in these additional defines in zfs_config.h with linux v4.14.19: Also, drive-by whitespace fixes in config/* files which don't mention "GNU" (those ones look to be imported from elsewhere so leave them alone). Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Chris Dunlop <chris@onthe.net.au> Closes #7169
27 lines
604 B
Plaintext
27 lines
604 B
Plaintext
dnl #
|
|
dnl # 3.6 API change
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_KERNEL_LOOKUP_NAMEIDATA], [
|
|
AC_MSG_CHECKING([whether iops->lookup() passes nameidata])
|
|
ZFS_LINUX_TRY_COMPILE([
|
|
#include <linux/fs.h>
|
|
#include <linux/sched.h>
|
|
|
|
struct dentry *inode_lookup(struct inode *inode,
|
|
struct dentry *dentry, struct nameidata *nidata)
|
|
{ return NULL; }
|
|
|
|
static const struct inode_operations iops
|
|
__attribute__ ((unused)) = {
|
|
.lookup = inode_lookup,
|
|
};
|
|
],[
|
|
],[
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_LOOKUP_NAMEIDATA, 1,
|
|
[iops->lookup() passes nameidata])
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
])
|