X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=config%2Flustre-build-zfs.m4;h=0cc1e621e73622284d44d51020cbf80a6f21ef7c;hp=ef155d306c584bae734d78b7579b9f1b7b2b8b8f;hb=45e18442e2667b1c11ecda395657536c6208a76e;hpb=fa16465704e1497146b461ebe59af420ae79fa9b diff --git a/config/lustre-build-zfs.m4 b/config/lustre-build-zfs.m4 index ef155d3..0cc1e62 100644 --- a/config/lustre-build-zfs.m4 +++ b/config/lustre-build-zfs.m4 @@ -22,6 +22,11 @@ dnl # --with-zfs-devel=path dnl # - User provided directory where zfs development headers dnl # are located. This option is typically used when user dnl # uses rpm2cpio to unpack src rpm. +dnl # Assumes layout of: +dnl # ${zfs-devel-path}/usr/include/libzfs +dnl # ${zfs-devel-path}/usr/include/libspl +dnl # ${zfs-devel-path}/lib64/libzfs.so.* or +dnl # ${zfs-devel-path}/lib/libzfs.so.* dnl # dnl # --with-zfs=path - Enable zfs support and use the zfs headers in the dnl # provided path. No autodetection is performed and @@ -277,12 +282,13 @@ AC_DEFUN([LB_ZFS_DEVEL], [ AC_MSG_CHECKING([user provided zfs devel headers]) AS_IF([test ! -z "${zfsdevel}"], [ AS_IF([test -d "${zfsdevel}/usr/include/libspl" && test -d "${zfsdevel}/usr/include/libzfs"], [ - zfslib="-I $zfsdevel/usr/include/libspl -I $zfsdevel/usr/include/libzfs" + zfsinc="-I $zfsdevel/usr/include/libspl -I $zfsdevel/usr/include/libzfs" + zfslib="-L$zfsdevel/lib64 -L$zfsdevel/lib" ], [ AC_MSG_ERROR([Path to development headers directory does not exist]) ]) ]) - AC_MSG_RESULT([$zfslib]) + AC_MSG_RESULT([$zfsinc]) ]) AC_DEFUN([LB_ZFS_USER], [ @@ -290,23 +296,28 @@ AC_DEFUN([LB_ZFS_USER], [ dnl # Detect user space zfs development headers. dnl # AC_MSG_CHECKING([zfs devel headers]) - AS_IF([test -z "${zfslib}"], [ - AS_IF([test -e $zfssrc/include/libzfs.h && test -e $zfssrc/lib/libspl/include], [ - zfslib="-I $zfssrc/lib/libspl/include -I $zfssrc/include" + 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/" ], [test -d /usr/include/libzfs && test -d /usr/include/libspl], [ - zfslib="-I /usr/include/libspl -I /usr/include/libzfs" + zfsinc="-I/usr/include/libspl -I /usr/include/libzfs" + zfslib="" ], [ - zfslib="[Not Found]" + zfsinc="[Not Found]" + zfslib="" enable_zfs=no ]) ]) - AC_MSG_RESULT([$zfslib]) + AC_MSG_RESULT([$zfsinc]) - ZFS_LIBZFS_INCLUDE=${zfslib} + ZFS_LIBZFS_INCLUDE=${zfsinc} + ZFS_LIBZFS_LDFLAGS="-lzfs ${zfslib}" AC_SUBST(ZFS_LIBZFS_INCLUDE) + AC_SUBST(ZFS_LIBZFS_LDFLAGS) ]) -AC_DEFUN([LB_PATH_ZFS], [ +AC_DEFUN([LB_CONFIG_ZFS], [ AC_ARG_WITH([zfs], [AS_HELP_STRING([--with-zfs=PATH], [Path to zfs source])], [ @@ -322,8 +333,7 @@ AC_DEFUN([LB_PATH_ZFS], [ zfssrc="$withval" ]) ], [ - AS_IF([test x$enable_server = xyes && - test x$enable_dist = xno], [ + AS_IF([test x$enable_server != xno], [ require_zfs=no enable_zfs=yes ], [ @@ -372,5 +382,26 @@ your distribution. ]) ]) - AM_CONDITIONAL(ZFS_ENABLED, test x$enable_zfs = xyes) + AS_IF([test "x$enable_zfs" = xyes], [ + LB_CHECK_COMPILE([if zfs defines dsl_pool_config_enter/exit], + dsl_pool_config_enter, [ + #include + ],[ + dsl_pool_config_enter(NULL, FTAG); + ],[ + AC_DEFINE(HAVE_DSL_POOL_CONFIG, 1, + [Have dsl_pool_config_enter/exit in ZFS]) + ]) + LB_CHECK_COMPILE([if zfs defines dsl_sync_task_do_nowait], + dsl_sync_task_do_nowait, [ + #include + ],[ + dsl_sync_task_do_nowait(NULL, NULL, NULL, NULL, NULL, 0, NULL); + ],[ + AC_DEFINE(HAVE_DSL_SYNC_TASK_DO_NOWAIT, 1, + [Have dsl_sync_task_do_nowait in ZFS]) + ]) + ]) + + AM_CONDITIONAL(ZFS_ENABLED, [test "x$enable_zfs" = xyes]) ])