freebsd: Use compiler.h from FreeBSD's base's linuxkpi
[zfs.git] / config / kernel-mknod.m4
blob6ad3453aaf0af389965f4c0fb45a9d53ed650b19
1 AC_DEFUN([ZFS_AC_KERNEL_SRC_MKNOD], [
2         dnl #
3         dnl # 6.3 API change
4         dnl # The first arg is now struct mnt_idmap*
5         dnl #
6         ZFS_LINUX_TEST_SRC([mknod_mnt_idmap], [
7                 #include <linux/fs.h>
8                 #include <linux/sched.h>
10                 static int tmp_mknod(struct mnt_idmap *idmap,
11                     struct inode *inode ,struct dentry *dentry,
12                     umode_t u, dev_t d) { return 0; }
14                 static const struct inode_operations
15                         iops __attribute__ ((unused)) = {
16                         .mknod          = tmp_mknod,
17                 };
18         ],[])
20         dnl #
21         dnl # 5.12 API change that added the struct user_namespace* arg
22         dnl # to the front of this function type's arg list.
23         dnl #
24         ZFS_LINUX_TEST_SRC([mknod_userns], [
25                 #include <linux/fs.h>
26                 #include <linux/sched.h>
28                 static int tmp_mknod(struct user_namespace *userns,
29                     struct inode *inode ,struct dentry *dentry,
30                     umode_t u, dev_t d) { return 0; }
32                 static const struct inode_operations
33                         iops __attribute__ ((unused)) = {
34                         .mknod          = tmp_mknod,
35                 };
36         ],[])
39 AC_DEFUN([ZFS_AC_KERNEL_MKNOD], [
40         AC_MSG_CHECKING([whether iops->mknod() takes struct mnt_idmap*])
41         ZFS_LINUX_TEST_RESULT([mknod_mnt_idmap], [
42                 AC_MSG_RESULT(yes)
43                 AC_DEFINE(HAVE_IOPS_MKNOD_IDMAP, 1,
44                     [iops->mknod() takes struct mnt_idmap*])
45         ],[
46                 AC_MSG_RESULT(no)
47                 AC_MSG_CHECKING([whether iops->mknod() takes struct user_namespace*])
48                 ZFS_LINUX_TEST_RESULT([mknod_userns], [
49                         AC_MSG_RESULT(yes)
50                         AC_DEFINE(HAVE_IOPS_MKNOD_USERNS, 1,
51                             [iops->mknod() takes struct user_namespace*])
52                 ],[
53                         AC_MSG_RESULT(no)
54                 ])
55         ])