mirror of
https://github.com/openzfs/zfs.git
synced 2025-10-01 19:56:28 +00:00

Twice now I've been bitten by building agaist a kernel which is configured such that it is incompatible with the CDDL license. These build failures don't occur until the linking phase at which point they simply callout the offending symbol. No location information can be provided at this point so it often can be confusing what the problem is particularly when building against a new kernel for the first time. To help address this I've added a configure check which can be extended over time to detect known kernel config options which if set will break the ZFS build. Currently I have just added CONFIG_DEBUG_LOCK_ALLOC which makes mutex's GPL-only and is on by default in the RHEL6 alpha builds. I know for a fact there are other similiar options which can be added as they are encountered.
132 lines
3.6 KiB
Plaintext
132 lines
3.6 KiB
Plaintext
dnl #
|
|
dnl # ZFS_AC_META
|
|
dnl # Read metadata from the META file.
|
|
dnl #
|
|
dnl # AUTHOR:
|
|
dnl # Chris Dunlap <cdunlap@llnl.gov>
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_META], [
|
|
|
|
AH_BOTTOM([
|
|
#undef PACKAGE
|
|
#undef PACKAGE_BUGREPORT
|
|
#undef PACKAGE_NAME
|
|
#undef PACKAGE_STRING
|
|
#undef PACKAGE_TARNAME
|
|
#undef PACKAGE_VERSION
|
|
#undef STDC_HEADERS
|
|
#undef VERSION])
|
|
|
|
AC_MSG_CHECKING([metadata])
|
|
|
|
META="$srcdir/META"
|
|
_zfs_ac_meta_got_file=no
|
|
if test -f "$META"; then
|
|
_zfs_ac_meta_got_file=yes
|
|
|
|
ZFS_META_NAME=_ZFS_AC_META_GETVAL([(?:NAME|PROJECT|PACKAGE)]);
|
|
if test -n "$ZFS_META_NAME"; then
|
|
AC_DEFINE_UNQUOTED([ZFS_META_NAME], ["$ZFS_META_NAME"],
|
|
[Define the project name.]
|
|
)
|
|
AC_SUBST([ZFS_META_NAME])
|
|
fi
|
|
|
|
ZFS_META_VERSION=_ZFS_AC_META_GETVAL([VERSION]);
|
|
if test -n "$ZFS_META_VERSION"; then
|
|
AC_DEFINE_UNQUOTED([ZFS_META_VERSION], ["$ZFS_META_VERSION"],
|
|
[Define the project version.]
|
|
)
|
|
AC_SUBST([ZFS_META_VERSION])
|
|
fi
|
|
|
|
ZFS_META_RELEASE=_ZFS_AC_META_GETVAL([RELEASE]);
|
|
if test -n "$ZFS_META_RELEASE"; then
|
|
AC_DEFINE_UNQUOTED([ZFS_META_RELEASE], ["$ZFS_META_RELEASE"],
|
|
[Define the project release.]
|
|
)
|
|
AC_SUBST([ZFS_META_RELEASE])
|
|
fi
|
|
|
|
ZFS_META_LICENSE=_ZFS_AC_META_GETVAL([LICENSE]);
|
|
if test -n "$ZFS_META_LICENSE"; then
|
|
AC_DEFINE_UNQUOTED([ZFS_META_LICENSE], ["$ZFS_META_LICENSE"],
|
|
[Define the project license.]
|
|
)
|
|
AC_SUBST([ZFS_META_LICENSE])
|
|
fi
|
|
|
|
if test -n "$ZFS_META_NAME" -a -n "$ZFS_META_VERSION"; then
|
|
ZFS_META_ALIAS="$ZFS_META_NAME-$ZFS_META_VERSION"
|
|
test -n "$ZFS_META_RELEASE" &&
|
|
ZFS_META_ALIAS="$ZFS_META_ALIAS-$ZFS_META_RELEASE"
|
|
AC_DEFINE_UNQUOTED([ZFS_META_ALIAS],
|
|
["$ZFS_META_ALIAS"],
|
|
[Define the project alias string.]
|
|
)
|
|
AC_SUBST([ZFS_META_ALIAS])
|
|
fi
|
|
|
|
ZFS_META_DATA=_ZFS_AC_META_GETVAL([DATE]);
|
|
if test -n "$ZFS_META_DATA"; then
|
|
AC_DEFINE_UNQUOTED([ZFS_META_DATA], ["$ZFS_META_DATA"],
|
|
[Define the project release date.]
|
|
)
|
|
AC_SUBST([ZFS_META_DATA])
|
|
fi
|
|
|
|
ZFS_META_AUTHOR=_ZFS_AC_META_GETVAL([AUTHOR]);
|
|
if test -n "$ZFS_META_AUTHOR"; then
|
|
AC_DEFINE_UNQUOTED([ZFS_META_AUTHOR], ["$ZFS_META_AUTHOR"],
|
|
[Define the project author.]
|
|
)
|
|
AC_SUBST([ZFS_META_AUTHOR])
|
|
fi
|
|
|
|
m4_pattern_allow([^LT_(CURRENT|REVISION|AGE)$])
|
|
ZFS_META_LT_CURRENT=_ZFS_AC_META_GETVAL([LT_CURRENT]);
|
|
ZFS_META_LT_REVISION=_ZFS_AC_META_GETVAL([LT_REVISION]);
|
|
ZFS_META_LT_AGE=_ZFS_AC_META_GETVAL([LT_AGE]);
|
|
if test -n "$ZFS_META_LT_CURRENT" \
|
|
-o -n "$ZFS_META_LT_REVISION" \
|
|
-o -n "$ZFS_META_LT_AGE"; then
|
|
test -n "$ZFS_META_LT_CURRENT" || ZFS_META_LT_CURRENT="0"
|
|
test -n "$ZFS_META_LT_REVISION" || ZFS_META_LT_REVISION="0"
|
|
test -n "$ZFS_META_LT_AGE" || ZFS_META_LT_AGE="0"
|
|
AC_DEFINE_UNQUOTED([ZFS_META_LT_CURRENT],
|
|
["$ZFS_META_LT_CURRENT"],
|
|
[Define the libtool library 'current'
|
|
version information.]
|
|
)
|
|
AC_DEFINE_UNQUOTED([ZFS_META_LT_REVISION],
|
|
["$ZFS_META_LT_REVISION"],
|
|
[Define the libtool library 'revision'
|
|
version information.]
|
|
)
|
|
AC_DEFINE_UNQUOTED([ZFS_META_LT_AGE], ["$ZFS_META_LT_AGE"],
|
|
[Define the libtool library 'age'
|
|
version information.]
|
|
)
|
|
AC_SUBST([ZFS_META_LT_CURRENT])
|
|
AC_SUBST([ZFS_META_LT_REVISION])
|
|
AC_SUBST([ZFS_META_LT_AGE])
|
|
fi
|
|
fi
|
|
|
|
AC_MSG_RESULT([$_zfs_ac_meta_got_file])
|
|
]
|
|
)
|
|
|
|
AC_DEFUN([_ZFS_AC_META_GETVAL],
|
|
[`perl -n\
|
|
-e "BEGIN { \\$key=shift @ARGV; }"\
|
|
-e "next unless s/^\s*\\$key@<:@:=@:>@//i;"\
|
|
-e "s/^((?:@<:@^'\"#@:>@*(?:(@<:@'\"@:>@)@<:@^\2@:>@*\2)*)*)#.*/\\@S|@1/;"\
|
|
-e "s/^\s+//;"\
|
|
-e "s/\s+$//;"\
|
|
-e "s/^(@<:@'\"@:>@)(.*)\1/\\@S|@2/;"\
|
|
-e "\\$val=\\$_;"\
|
|
-e "END { print \\$val if defined \\$val; }"\
|
|
'$1' $META`]dnl
|
|
)
|