X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=config%2Flustre-build-zfs.m4;h=f2f72ec7672ac3c95a717e4f1d51bb56174d5694;hp=89917592e4a0d5d6b11d5592a82a6701272ff9ea;hb=549c57e77b7f3a4cae5a7381d612a499c2ca3dcc;hpb=5565877ee63e16bd3c6548db73466eeac9c4ca86 diff --git a/config/lustre-build-zfs.m4 b/config/lustre-build-zfs.m4 index 8991759..f2f72ec 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 @@ -142,8 +147,10 @@ AC_DEFUN([LB_SPL], [ AC_MSG_CHECKING([spl file name for module symbols]) AS_IF([test -r $splobj/$SYMVERFILE], [ splsym=$SYMVERFILE + EXTRA_SYMBOLS="$EXTRA_SYMBOLS $splobj/$SYMVERFILE" ], [test -r $splobj/module/$SYMVERFILE], [ splsym=$SYMVERFILE + EXTRA_SYMBOLS="$EXTRA_SYMBOLS $splobj/module/$SYMVERFILE" ], [ splsym="[Not found]" enable_zfs=no @@ -154,12 +161,11 @@ AC_DEFUN([LB_SPL], [ SPL=${splsrc} SPL_OBJ=${splobj} SPL_VERSION=${splver} - SPL_SYMBOLS=${splsym} AC_SUBST(SPL) AC_SUBST(SPL_OBJ) AC_SUBST(SPL_VERSION) - AC_SUBST(SPL_SYMBOLS) + AC_SUBST(EXTRA_SYMBOLS) ]) AC_DEFUN([LB_ZFS], [ @@ -248,8 +254,10 @@ AC_DEFUN([LB_ZFS], [ AC_MSG_CHECKING([zfs file name for module symbols]) AS_IF([test -r $zfsobj/$SYMVERFILE], [ zfssym=$SYMVERFILE + EXTRA_SYMBOLS="$EXTRA_SYMBOLS $zfsobj/$SYMVERFILE" ], [test -r $zfsobj/module/$SYMVERFILE], [ zfssym=$SYMVERFILE + EXTRA_SYMBOLS="$EXTRA_SYMBOLS $zfsobj/module/$SYMVERFILE" ], [ zfssym="[Not found]" enable_zfs=no @@ -260,12 +268,11 @@ AC_DEFUN([LB_ZFS], [ ZFS=${zfssrc} ZFS_OBJ=${zfsobj} ZFS_VERSION=${zfsver} - ZFS_SYMBOLS=${zfssym} AC_SUBST(ZFS) AC_SUBST(ZFS_OBJ) AC_SUBST(ZFS_VERSION) - AC_SUBST(ZFS_SYMBOLS) + AC_SUBST(EXTRA_SYMBOLS) ]) AC_DEFUN([LB_ZFS_DEVEL], [ @@ -277,12 +284,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/usr/lib64 -L$zfsdevel/usr/lib -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,20 +298,25 @@ 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 -z "${zfsinc}"], [ AS_IF([test -e "${zfssrc}/include/libzfs.h" && test -e "${zfssrc}/lib/libspl/include"], [ - zfslib="-I $zfssrc/lib/libspl/include -I $zfssrc/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_CONFIG_ZFS], [ @@ -381,6 +394,40 @@ your distribution. 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]) + ]) + LB_CHECK_COMPILE([if zfs defines sa_spill_alloc], + sa_spill_alloc, [ + #include + #include + ],[ + void *ptr; + + ptr = sa_spill_alloc(KM_SLEEP); + sa_spill_free(ptr); + ],[ + AC_DEFINE(HAVE_SA_SPILL_ALLOC, 1, + [Have sa_spill_alloc in ZFS]) + ]) + LB_CHECK_COMPILE([if zfs defines spa_maxblocksize], + spa_maxblocksize, [ + #include + ],[ + spa_t *spa = NULL; + int size; + + size = spa_maxblocksize(spa); + ],[ + AC_DEFINE(HAVE_SPA_MAXBLOCKSIZE, 1, + [Have spa_maxblocksize in ZFS]) + ]) ]) AM_CONDITIONAL(ZFS_ENABLED, [test "x$enable_zfs" = xyes])