Whamcloud - gitweb
LU-9558 llite: generic_readlink is no longer exported
[fs/lustre-release.git] / lustre / autoconf / lustre-core.m4
index 395e1cc..77d6a98 100644 (file)
@@ -2427,6 +2427,65 @@ full_name_hash_3args, [
 ]) # LC_FULL_NAME_HASH_3ARGS
 
 #
+# LC_GROUP_INFO_GID
+#
+# Kernel version 4.9 commit 81243eacfa400f5f7b89f4c2323d0de9982bb0fb
+# cred: simpler, 1D supplementary groups
+#
+AC_DEFUN([LC_GROUP_INFO_GID], [
+LB_CHECK_COMPILE([if 'struct group_info' has member 'gid'],
+group_info_gid, [
+       #include <linux/cred.h>
+],[
+       kgid_t *p;
+       p = ((struct group_info *)0)->gid;
+],[
+       AC_DEFINE(HAVE_GROUP_INFO_GID, 1,
+               [struct group_info has member gid])
+])
+]) # LC_GROUP_INFO_GID
+
+#
+# LC_STRUCT_POSIX_ACL_XATTR
+#
+# Kernel version 4.8 commit 2211d5ba5c6c4e972ba6dbc912b2897425ea6621
+# posix_acl: xattr representation cleanups
+#
+AC_DEFUN([LC_STRUCT_POSIX_ACL_XATTR], [
+LB_CHECK_COMPILE([if 'struct posix_acl_xattr_{header,entry}' defined],
+struct_posix_acl_xattr, [
+       #include <linux/fs.h>
+       #include <linux/posix_acl_xattr.h>
+],[
+       struct posix_acl_xattr_header *h = NULL;
+       struct posix_acl_xattr_entry  *e;
+       e = (void *)(h + 1);
+],[
+       AC_DEFINE(HAVE_STRUCT_POSIX_ACL_XATTR, 1,
+               [struct posix_acl_xattr_{header,entry} defined])
+])
+]) # LC_STRUCT_POSIX_ACL_XATTR
+
+#
+# LC_IOP_GENERIC_READLINK
+#
+# Kernel version 4.10 commit dfeef68862edd7d4bafe68ef7aeb5f658ef24bb5
+# removed generic_readlink from individual file systems
+#
+AC_DEFUN([LC_IOP_GENERIC_READLINK], [
+LB_CHECK_COMPILE([if 'generic_readlink' still exist],
+inode_ops_readlink, [
+       #include <linux/fs.h>
+],[
+       struct inode_operations iop;
+       iop.readlink = generic_readlink;
+],[
+       AC_DEFINE(HAVE_IOP_GENERIC_READLINK, 1,
+               [generic_readlink has been removed])
+])
+]) # LC_IOP_GENERIC_READLINK
+
+#
 # LC_PROG_LINUX
 #
 # Lustre linux kernel checks
@@ -2625,6 +2684,13 @@ AC_DEFUN([LC_PROG_LINUX], [
        LC_HAVE_POSIX_ACL_VALID_USER_NS
        LC_D_COMPARE_4ARGS
        LC_FULL_NAME_HASH_3ARGS
+       LC_STRUCT_POSIX_ACL_XATTR
+
+       # 4.9
+       LC_GROUP_INFO_GID
+
+       # 4.10
+       LC_IOP_GENERIC_READLINK
 
        #
        AS_IF([test "x$enable_server" != xno], [
@@ -2881,6 +2947,23 @@ AC_MSG_RESULT([$enable_pgstat_track])
 AS_IF([test "x$enable_pgstat_track" = xyes],
        [AC_DEFINE([CONFIG_DEBUG_PAGESTATE_TRACKING], 1,
                [enable page state tracking code])])
+
+PKG_PROG_PKG_CONFIG
+AC_MSG_CHECKING([systemd unit file directory])
+AC_ARG_WITH([systemdsystemunitdir],
+       [AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
+               [Directory for systemd service files])],
+       [], [with_systemdsystemunitdir=auto])
+AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"],
+       [def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
+       AS_IF([test "x$def_systemdsystemunitdir" = "x"],
+               [AS_IF([test "x$with_systemdsystemunitdir" = "xyes"],
+               [AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])])
+               with_systemdsystemunitdir=no],
+       [with_systemdsystemunitdir="$def_systemdsystemunitdir"])])
+AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
+       [AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
+AC_MSG_RESULT([$with_systemdsystemunitdir])
 ]) # LC_CONFIGURE
 
 #
@@ -2900,6 +2983,7 @@ AM_CONDITIONAL(GSS_KEYRING, test x$enable_gss_keyring = xyes)
 AM_CONDITIONAL(GSS_PIPEFS, test x$enable_gss_pipefs = xyes)
 AM_CONDITIONAL(GSS_SSK, test x$enable_ssk = xyes)
 AM_CONDITIONAL(LIBPTHREAD, test x$enable_libpthread = xyes)
+AM_CONDITIONAL(HAVE_SYSTEMD, test "x$with_systemdsystemunitdir" != "xno")
 ]) # LC_CONDITIONALS
 
 #
@@ -2981,6 +3065,7 @@ lustre/ptlrpc/gss/autoMakefile
 lustre/quota/Makefile
 lustre/quota/autoMakefile
 lustre/scripts/Makefile
+lustre/scripts/systemd/Makefile
 lustre/tests/Makefile
 lustre/tests/mpi/Makefile
 lustre/utils/Makefile