e89236fd28
This change updates the AC_LANG_PROGRAM autoconf macro invocations to be wrapped in quotes. As of autoconf version 2.68, the quotes are necessary to prevent warnings from appearing. Specifically, the autoconf v2.68 Forward Porting Notes specifies: It is important to note that you need to ensure that the call to AC_LANG_SOURCE is quoted and not expanded, otherwise that will cause the warning to appear nonetheless. Finally, because of the additional quoting we can drop the extra quotas used by the ZFS_AC_CONFIG_USER_STACK_GUARD autoconf check. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #464
95 lines
2.4 KiB
Plaintext
95 lines
2.4 KiB
Plaintext
dnl #
|
|
dnl # Check for ZFS support in libblkid. This test needs to check
|
|
dnl # more than if the library exists because we expect there are
|
|
dnl # at least 3 flavors of the library out in the wild:
|
|
dnl #
|
|
dnl # 1) blkid which has no ZFS support
|
|
dnl # 2) blkid with ZFS support and a flawed method of probing
|
|
dnl # 3) blkid with ZFS support and a working method of probing
|
|
dnl #
|
|
dnl # To handle this the check first validates that there is a version
|
|
dnl # of the library installed. If there is it creates a simulated
|
|
dnl # ZFS filesystem and then links a small test app which attempts
|
|
dnl # to detect the simualated filesystem type. If it correctly
|
|
dnl # identifies the filesystem as ZFS we can safely assume case 3).
|
|
dnl # Otherwise we disable blkid support and resort to manual probing.
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_CONFIG_USER_LIBBLKID], [
|
|
AC_ARG_WITH([blkid],
|
|
[AS_HELP_STRING([--with-blkid],
|
|
[support blkid caching @<:@default=check@:>@])],
|
|
[],
|
|
[with_blkid=check])
|
|
|
|
LIBBLKID=
|
|
AS_IF([test "x$with_blkid" != xno],
|
|
[
|
|
AC_CHECK_LIB([blkid], [blkid_get_cache],
|
|
[
|
|
AC_MSG_CHECKING([for blkid zfs support])
|
|
|
|
ZFS_DEV=`mktemp`
|
|
dd if=/dev/zero of=$ZFS_DEV bs=1024k count=8 \
|
|
>/dev/null 2>/dev/null
|
|
echo -en "\x0c\xb1\xba\0\0\0\0\0" | \
|
|
dd of=$ZFS_DEV bs=1k count=8 \
|
|
seek=132 conv=notrunc &>/dev/null \
|
|
>/dev/null 2>/dev/null
|
|
|
|
saved_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="-lblkid"
|
|
|
|
AC_RUN_IFELSE([AC_LANG_PROGRAM(
|
|
[
|
|
#include <stdio.h>
|
|
#include <blkid/blkid.h>
|
|
],
|
|
[
|
|
blkid_cache cache;
|
|
char *value;
|
|
|
|
if (blkid_get_cache(&cache, NULL) < 0)
|
|
return 1;
|
|
|
|
value = blkid_get_tag_value(cache, "TYPE",
|
|
"$ZFS_DEV");
|
|
if (!value) {
|
|
blkid_put_cache(cache);
|
|
return 2;
|
|
}
|
|
|
|
if (strcmp(value, "zfs")) {
|
|
free(value);
|
|
blkid_put_cache(cache);
|
|
return 3;
|
|
}
|
|
|
|
free(value);
|
|
blkid_put_cache(cache);
|
|
])],
|
|
[
|
|
rm -f $ZFS_DEV
|
|
AC_MSG_RESULT([yes])
|
|
AC_SUBST([LIBBLKID], ["-lblkid"])
|
|
AC_DEFINE([HAVE_LIBBLKID], 1,
|
|
[Define if you have libblkid])
|
|
],
|
|
[
|
|
rm -f $ZFS_DEV
|
|
AC_MSG_RESULT([no])
|
|
AS_IF([test "x$with_blkid" != xcheck],
|
|
[AC_MSG_FAILURE(
|
|
[--with-blkid given but unavailable])])
|
|
])
|
|
|
|
LDFLAGS="$saved_LDFLAGS"
|
|
],
|
|
[
|
|
AS_IF([test "x$with_blkid" != xcheck],
|
|
[AC_MSG_FAILURE(
|
|
[--with-blkid given but unavailable])])
|
|
]
|
|
[])
|
|
])
|
|
])
|