Whamcloud - gitweb
LU-6142 tests: Fix style issues for mkdirmany.c
[fs/lustre-release.git] / config / lustre-build-zfs.m4
index eb82bb4..80dfcff 100644 (file)
@@ -111,7 +111,7 @@ AC_DEFUN([LB_SPL], [
        dnl #
        AC_MSG_CHECKING([spl build directory])
        AS_IF([test -z "$splobj"], [
-               last_spl_obj_dir=$(ls -d ${splsrc}/[[0-9]]*/ | tail -n 1 | sed 's|/$||')
+               last_spl_obj_dir=$(ls -d ${splsrc}/[[0-9]]*/  2> /dev/null | tail -n 1 | sed 's|/$||')
                AS_IF([test "${splsrc}" = "${spldkms}/source"], [
                        AS_IF([test -e "${spldkms}/${LINUXRELEASE}/${target_cpu}/spl_config.h"], [
                                splobj=${spldkms}/${LINUXRELEASE}/${target_cpu}
@@ -229,7 +229,7 @@ AC_DEFUN([LB_ZFS], [
        dnl #
        AC_MSG_CHECKING([zfs build directory])
        AS_IF([test -z "$zfsobj"], [
-               last_zfs_obj_dir=$(ls -d ${zfssrc}/[[0-9]]*/ | tail -n 1 | sed 's|/$||')
+               last_zfs_obj_dir=$(ls -d ${zfssrc}/[[0-9]]*/ 2> /dev/null | tail -n 1 | sed 's|/$||')
                AS_IF([test "${zfssrc}" = "${zfsdkms}/source"], [
                        AS_IF([test -e "${zfsdkms}/${LINUXRELEASE}/${target_cpu}/zfs_config.h"], [
                                zfsobj=${zfsdkms}/${LINUXRELEASE}/${target_cpu}
@@ -348,21 +348,26 @@ AC_DEFUN([LB_CONFIG_ZFS], [
                [AS_HELP_STRING([--with-zfs=PATH], [Path to zfs source])],
                [
                        AS_IF([test x$withval = xno], [
+                               enable_spl=no
                                enable_zfs=no
                                require_zfs=no
                        ], [test x$withval = xyes], [
+                               enable_spl=yes
                                enable_zfs=yes
                                require_zfs=yes
                        ], [
+                               enable_spl=yes
                                enable_zfs=yes
                                require_zfs=yes
                                zfssrc="$withval"
                        ])
                ], [
                        AS_IF([test x$enable_server != xno], [
+                               enable_spl=yes
                                require_zfs=no
                                enable_zfs=yes
                        ], [
+                               enable_spl=no
                                require_zfs=no
                                enable_zfs=no
                        ])
@@ -373,13 +378,35 @@ AC_DEFUN([LB_CONFIG_ZFS], [
 
        AS_IF([test x$enable_zfs = xyes], [
                AS_IF([test x$enable_modules = xyes], [
-                       LB_SPL
                        LB_ZFS
                ])
                LB_ZFS_DEVEL
                LB_ZFS_USER
 
                dnl #
+               dnl # Define zfs source code version
+               dnl #
+               ZFS_MAJOR=$(echo $zfsver | sed -re ['s/([0-9]+)\.([0-9]+)\.([0-9]+)(\.([0-9]+))?.*/\1/'])
+               ZFS_MINOR=$(echo $zfsver | sed -re ['s/([0-9]+)\.([0-9]+)\.([0-9]+)(\.([0-9]+))?.*/\2/'])
+               ZFS_PATCH=$(echo $zfsver | sed -re ['s/([0-9]+)\.([0-9]+)\.([0-9]+)(\.([0-9]+))?.*/\3/'])
+               ZFS_FIX=$(echo $zfsver   | sed -re ['s/([0-9]+)\.([0-9]+)\.([0-9]+)(\.([0-9]+))?.*/\5/'])
+               AS_IF([test -z "$ZFS_FIX"], [ZFS_FIX="0"])
+
+               AC_DEFINE_UNQUOTED([ZFS_MAJOR], [$ZFS_MAJOR], [zfs major version])
+               AC_DEFINE_UNQUOTED([ZFS_MINOR], [$ZFS_MINOR], [zfs minor version])
+               AC_DEFINE_UNQUOTED([ZFS_PATCH], [$ZFS_PATCH], [zfs patch version])
+               AC_DEFINE_UNQUOTED([ZFS_FIX],   [$ZFS_FIX],   [zfs fix version])
+
+               dnl #
+               dnl # SPL is only needed if ZFS is prior to 0.8.0
+               dnl #
+               AS_IF([test x$enable_modules = xyes && test $ZFS_MAJOR -eq 0 && test $ZFS_MINOR -lt 8], [
+                       LB_SPL
+               ],[
+                       enable_spl=no
+               ])
+
+               dnl #
                dnl # enable_zfs will be set to no in LB_SPL or LB_ZFS if
                dnl # one of more of the build requirements is not met.
                dnl #
@@ -408,21 +435,6 @@ your distribution.
                ])
        ])
 
-       dnl #
-       dnl # Define zfs source code version
-       dnl #
-       AS_IF([test x$enable_zfs = xyes], [
-               ZFS_MAJOR=$(echo $zfsver | sed -re ['s/([0-9]+)\.([0-9]+)\.([0-9]+)(\.([0-9]+))?.*/\1/'])
-               ZFS_MINOR=$(echo $zfsver | sed -re ['s/([0-9]+)\.([0-9]+)\.([0-9]+)(\.([0-9]+))?.*/\2/'])
-               ZFS_PATCH=$(echo $zfsver | sed -re ['s/([0-9]+)\.([0-9]+)\.([0-9]+)(\.([0-9]+))?.*/\3/'])
-               ZFS_FIX=$(echo $zfsver   | sed -re ['s/([0-9]+)\.([0-9]+)\.([0-9]+)(\.([0-9]+))?.*/\5/'])
-               AS_IF([test -z "$ZFS_FIX"], [ZFS_FIX="0"])
-
-               AC_DEFINE_UNQUOTED([ZFS_MAJOR], [$ZFS_MAJOR], [zfs major version])
-               AC_DEFINE_UNQUOTED([ZFS_MINOR], [$ZFS_MINOR], [zfs minor version])
-               AC_DEFINE_UNQUOTED([ZFS_PATCH], [$ZFS_PATCH], [zfs patch version])
-               AC_DEFINE_UNQUOTED([ZFS_FIX],   [$ZFS_FIX],   [zfs fix version])
-       ])
 
        AS_IF([test "x$enable_zfs" = xyes], [
                LB_CHECK_COMPILE([if zfs defines dsl_pool_config_enter/exit],
@@ -533,6 +545,19 @@ your distribution.
                        AC_DEFINE(HAVE_DMU_USEROBJ_ACCOUNTING, 1,
                                [Have native dnode accounting in ZFS])
                ])
+               dnl #
+               dnl # ZFS 0.7.0 feature: MULTIHOST
+               dnl #
+               LB_CHECK_COMPILE([if ZFS has multihost protection],
+               spa_multihost, [
+                       #include <sys/spa.h>
+               ],[
+                       spa_multihost(NULL);
+               ],[
+                       AC_DEFINE(HAVE_ZFS_MULTIHOST, 1,
+                               [Have multihost protection in ZFS])
+               ])
+               dnl #
                dnl # ZFS 0.7.x adds new method zap_lookup_by_dnode
                dnl #
                LB_CHECK_COMPILE([if ZFS has 'zap_lookup_by_dnode'],
@@ -631,33 +656,6 @@ your distribution.
                                [Have dmu_read_by_dnode() in ZFS])
                ])
                dnl #
-               dnl # ZFS 0.8.x changes dmu_objset_own for encryption
-               dnl #
-               LB_CHECK_COMPILE([if ZFS has 'dmu_objset_own' with 6 args],
-               dmu_objset_own, [
-                       #include <sys/dmu_objset.h>
-               ],[
-                       objset_t *os = NULL;
-                       dmu_objset_type_t type = DMU_OST_ANY;
-                       dmu_objset_own(NULL, type, B_FALSE, B_FALSE, FTAG, &os);
-               ],[
-                       AC_DEFINE(HAVE_DMU_OBJSET_OWN_6ARG, 1,
-                               [Have dmu_objset_own() with 6 args])
-               ])
-               dnl #
-               dnl # ZFS 0.8.x changes dmu_objset_disown for encryption
-               dnl #
-               LB_CHECK_COMPILE([if ZFS has 'dmu_objset_disown' with 3 args],
-               dmu_objset_disown, [
-                       #include <sys/dmu_objset.h>
-               ],[
-                       objset_t *os = NULL;
-                       dmu_objset_disown(os, B_FALSE, FTAG);
-               ],[
-                       AC_DEFINE(HAVE_DMU_OBJSET_DISOWN_3ARG, 1,
-                               [Have dmu_objset_disown() with 3 args])
-               ])
-               dnl #
                dnl # ZFS 0.7.2 adds new method dmu_tx_mark_netfree
                dnl #
                LB_CHECK_COMPILE([if ZFS has 'dmu_tx_mark_netfree'],
@@ -695,6 +693,33 @@ your distribution.
                        AC_DEFINE(HAVE_ZFS_REFCOUNT_ADD, 1,
                                [Have zfs_refcount_add])
                ])
+               dnl #
+               dnl # ZFS 0.8.x changes dmu_objset_own for encryption
+               dnl #
+               LB_CHECK_COMPILE([if ZFS has 'dmu_objset_own' with 6 args],
+               dmu_objset_own, [
+                       #include <sys/dmu_objset.h>
+               ],[
+                       objset_t *os = NULL;
+                       dmu_objset_type_t type = DMU_OST_ANY;
+                       dmu_objset_own(NULL, type, B_FALSE, B_TRUE, FTAG, &os);
+               ],[
+                       AC_DEFINE(HAVE_DMU_OBJSET_OWN_6ARG, 1,
+                               [Have dmu_objset_own() with 6 args])
+               ])
+               dnl #
+               dnl # ZFS 0.8.x changes dmu_objset_disown for encryption
+               dnl #
+               LB_CHECK_COMPILE([if ZFS has 'dmu_objset_disown' with 3 args],
+               dmu_objset_disown, [
+                       #include <sys/dmu_objset.h>
+               ],[
+                       objset_t *os = NULL;
+                       dmu_objset_disown(os, B_TRUE, FTAG);
+               ],[
+                       AC_DEFINE(HAVE_DMU_OBJSET_DISOWN_3ARG, 1,
+                               [Have dmu_objset_disown() with 3 args])
+               ])
        ])
 
        AS_IF([test "x$enable_zfs" = xyes], [
@@ -703,4 +728,5 @@ your distribution.
                AC_SUBST(ENABLE_ZFS, no)
        ])
        AM_CONDITIONAL(ZFS_ENABLED, [test "x$enable_zfs" = xyes])
+       AM_CONDITIONAL(SPL_ENABLED, [test "x$enable_spl" = xyes])
 ])