X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=config%2Flustre-build-zfs.m4;h=5120ce09bbac470ac011792cdc9e2379c9cd8f06;hb=239290c299fb875dcd1ac652d73b875ec9d07335;hp=49170d2375820f14cbbab03d1659d3f79c033cc1;hpb=aa096c486589129a7bc20f9b8c31803e56c4b82f;p=fs%2Flustre-release.git diff --git a/config/lustre-build-zfs.m4 b/config/lustre-build-zfs.m4 index 49170d2..5120ce0 100644 --- a/config/lustre-build-zfs.m4 +++ b/config/lustre-build-zfs.m4 @@ -15,8 +15,8 @@ dnl # dnl # * /var/lib/dkms/zfs/${VERSION}/source dnl # * /usr/src/zfs-${VERSION}/${LINUXRELEASE} dnl # * /usr/src/zfs-${VERSION} -dnl # * ../spl/ -dnl # * $LINUX +dnl # * ../zfs/ +dnl # * $LINUX/zfs dnl # dnl # --with-zfs-devel=path dnl # - User provided directory where zfs development headers @@ -46,7 +46,7 @@ dnl # * /var/lib/dkms/spl/${VERSION}/source dnl # * /usr/src/spl-${VERSION}/${LINUXRELEASE} dnl # * /usr/src/spl-${VERSION} dnl # * ../spl/ -dnl # * $LINUX +dnl # * $LINUX/spl dnl # dnl # --with-spl=path - Enable spl support and use the spl headers in the dnl # provided path. No autodetection is performed. @@ -76,7 +76,7 @@ AC_DEFUN([LB_SPL], [ splsrc1="/usr/src/spl-${splver}/${LINUXRELEASE}" splsrc2="/usr/src/spl-${splver}" splsrc3="../spl/" - splsrc4="$LINUX" + splsrc4="$LINUX/spl" AC_MSG_CHECKING([spl source directory]) AS_IF([test -z "${splsrc}"], [ @@ -194,7 +194,7 @@ AC_DEFUN([LB_ZFS], [ zfssrc1="/usr/src/zfs-${zfsver}/${LINUXRELEASE}" zfssrc2="/usr/src/zfs-${zfsver}" zfssrc3="../zfs/" - zfssrc4="$LINUX" + zfssrc4="$LINUX/zfs" AC_MSG_CHECKING([zfs source directory]) AS_IF([test -z "${zfssrc}"], [ @@ -323,7 +323,7 @@ AC_DEFUN([LB_ZFS_USER], [ AS_IF([test -z "${zfsinc}"], [ AS_IF([test -e "${zfssrc}/include/libzfs.h" && test -e "${zfssrc}/lib/libspl/include"], [ zfsinc="-I $zfssrc/lib/libspl/include -I $zfssrc/include" - zfslib="-L$zfssrc/lib/libzfs/.libs/" + zfslib="-L$zfssrc/lib/libzfs/.libs/ -L$zfssrc/lib/libnvpair/.libs" ], [test -d /usr/include/libzfs && test -d /usr/include/libspl], [ zfsinc="-I/usr/include/libspl -I /usr/include/libzfs" zfslib="" @@ -336,7 +336,7 @@ AC_DEFUN([LB_ZFS_USER], [ AC_MSG_RESULT([$zfsinc]) ZFS_LIBZFS_INCLUDE=${zfsinc} - ZFS_LIBZFS_LDFLAGS="-lzfs ${zfslib}" + ZFS_LIBZFS_LDFLAGS="-lzfs -lnvpair ${zfslib}" AC_SUBST(ZFS_LIBZFS_INCLUDE) AC_SUBST(ZFS_LIBZFS_LDFLAGS) ]) @@ -406,6 +406,22 @@ 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], dsl_pool_config_enter, [ @@ -506,11 +522,11 @@ your distribution. dnl # dnl # ZFS 0.7.0 feature: SPA_FEATURE_USEROBJ_ACCOUNTING dnl # - LB_CHECK_COMPILE([if zfs has native dnode accounting supported], - dmu_objset_userobjspace_upgrade, [ + LB_CHECK_COMPILE([if ZFS has native dnode accounting supported], + dmu_objset_userobjused_enabled, [ #include ],[ - dmu_objset_userobjspace_upgrade(NULL); + dmu_objset_userobjused_enabled(NULL); ],[ AC_DEFINE(HAVE_DMU_USEROBJ_ACCOUNTING, 1, [Have native dnode accounting in ZFS]) @@ -612,7 +628,52 @@ your distribution. AC_DEFINE(HAVE_DMU_READ_BY_DNODE, 1, [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 + ],[ + 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 + ],[ + 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'], + dmu_tx_mark_netfree, [ + #include + ],[ + dmu_tx_t *tx = NULL; + dmu_tx_mark_netfree(tx); + ],[ + AC_DEFINE(HAVE_DMU_TX_MARK_NETFREE, 1, + [Have dmu_tx_mark_netfree]) + ]) ]) + AS_IF([test "x$enable_zfs" = xyes], [ + AC_SUBST(ENABLE_ZFS, yes) + ], [ + AC_SUBST(ENABLE_ZFS, no) + ]) AM_CONDITIONAL(ZFS_ENABLED, [test "x$enable_zfs" = xyes]) ])