summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2014-09-29 16:01:22 -0400
committerBrian Behlendorf <[email protected]>2014-10-17 15:07:28 -0700
commit62032954383dc6d1200890f07f56bb0ad85451be (patch)
tree6d500c46beefefbac4b25e336b3f62fe64e39eb1
parentde2a22fcb3e7e8d7c4f695aeb0caf9cdc8f82c9a (diff)
Make license compatibility checks consistent
Apply the license specified in the META file to ensure the compatibility checks are all performed consistently. Signed-off-by: Brian Behlendorf <[email protected]>
-rw-r--r--META2
-rw-r--r--config/spl-build.m423
-rw-r--r--config/spl-meta.m48
-rw-r--r--include/sys/mutex.h19
-rw-r--r--module/spl/spl-generic.c4
-rw-r--r--module/splat/splat-ctl.c4
6 files changed, 32 insertions, 28 deletions
diff --git a/META b/META
index 117c3e336..13d0d028a 100644
--- a/META
+++ b/META
@@ -4,3 +4,5 @@ Branch: 1.0
Version: 0.6.3
Release: 1
Release-Tags: relext
+License: GPL
+Author: OpenZFS on Linux
diff --git a/config/spl-build.m4 b/config/spl-build.m4
index 4b821e980..f9287e2de 100644
--- a/config/spl-build.m4
+++ b/config/spl-build.m4
@@ -426,11 +426,11 @@ AC_DEFUN([SPL_AC_PACKAGE], [
])
AC_DEFUN([SPL_AC_LICENSE], [
+ AC_MSG_CHECKING([spl author])
+ AC_MSG_RESULT([$SPL_META_AUTHOR])
+
AC_MSG_CHECKING([spl license])
- LICENSE=GPL
- AC_MSG_RESULT([$LICENSE])
- KERNELCPPFLAGS="${KERNELCPPFLAGS} -DHAVE_GPL_ONLY_SYMBOLS"
- AC_SUBST(LICENSE)
+ AC_MSG_RESULT([$SPL_META_LICENSE])
])
AC_DEFUN([SPL_AC_CONFIG], [
@@ -737,7 +737,8 @@ AC_DEFUN([SPL_CHECK_HEADER],
])
dnl #
-dnl # Basic toolchain sanity check.
+dnl # Basic toolchain sanity check. Verify that kernel modules can
+dnl # be built and which symbols can be used.
dnl #
AC_DEFUN([SPL_AC_TEST_MODULE],
[AC_MSG_CHECKING([whether modules can be built])
@@ -753,6 +754,18 @@ AC_DEFUN([SPL_AC_TEST_MODULE],
*** Please run 'make scripts' inside the kernel source tree.])
fi
])
+
+ AC_RUN_IFELSE([
+ AC_LANG_PROGRAM([
+ #include "$LINUX/include/linux/license.h"
+ ], [
+ return !license_is_gpl_compatible("$SPL_META_LICENSE");
+ ])
+ ], [
+ AC_DEFINE([SPL_IS_GPL_COMPATIBLE], [1],
+ [Define to 1 if GPL-only symbols can be used])
+ ], [
+ ])
])
dnl #
diff --git a/config/spl-meta.m4 b/config/spl-meta.m4
index e98cc2ea6..0561fbbc5 100644
--- a/config/spl-meta.m4
+++ b/config/spl-meta.m4
@@ -76,6 +76,14 @@ AC_DEFUN([SPL_AC_META], [
AC_SUBST([RELEASE])
fi
+ SPL_META_LICENSE=_SPL_AC_META_GETVAL([License]);
+ if test -n "$SPL_META_LICENSE"; then
+ AC_DEFINE_UNQUOTED([SPL_META_LICENSE], ["$SPL_META_LICENSE"],
+ [Define the project license.]
+ )
+ AC_SUBST([SPL_META_LICENSE])
+ fi
+
if test -n "$SPL_META_NAME" -a -n "$SPL_META_VERSION"; then
SPL_META_ALIAS="$SPL_META_NAME-$SPL_META_VERSION"
test -n "$SPL_META_RELEASE" &&
diff --git a/include/sys/mutex.h b/include/sys/mutex.h
index ec3cfd529..cc63a6be0 100644
--- a/include/sys/mutex.h
+++ b/include/sys/mutex.h
@@ -85,12 +85,6 @@ mutex_owner(kmutex_t *mp)
})
#define mutex_exit(mp) mutex_unlock(&(mp)->m)
-#ifdef HAVE_GPL_ONLY_SYMBOLS
-# define mutex_enter_nested(mp, sc) mutex_lock_nested(&(mp)->m, sc)
-#else
-# define mutex_enter_nested(mp, sc) mutex_enter(mp)
-#endif /* HAVE_GPL_ONLY_SYMBOLS */
-
#else /* HAVE_MUTEX_OWNER */
typedef struct {
@@ -197,19 +191,6 @@ spl_mutex_clear_owner(kmutex_t *mp)
mutex_unlock(MUTEX(mp)); \
})
-#ifdef HAVE_GPL_ONLY_SYMBOLS
-# define mutex_enter_nested(mp, sc) \
-({ \
- mutex_lock_nested(MUTEX(mp), sc); \
- spl_mutex_set_owner(mp); \
-})
-#else
-# define mutex_enter_nested(mp, sc) \
-({ \
- mutex_enter(mp); \
-})
-#endif
-
#endif /* HAVE_MUTEX_OWNER */
int spl_mutex_init(void);
diff --git a/module/spl/spl-generic.c b/module/spl/spl-generic.c
index 194cd7df1..039ee7319 100644
--- a/module/spl/spl-generic.c
+++ b/module/spl/spl-generic.c
@@ -740,7 +740,7 @@ EXPORT_SYMBOL(spl_cleanup);
module_init(spl_init);
module_exit(spl_fini);
-MODULE_AUTHOR("Lawrence Livermore National Labs");
MODULE_DESCRIPTION("Solaris Porting Layer");
-MODULE_LICENSE("GPL");
+MODULE_AUTHOR(SPL_META_AUTHOR);
+MODULE_LICENSE(SPL_META_LICENSE);
MODULE_VERSION(SPL_META_VERSION "-" SPL_META_RELEASE);
diff --git a/module/splat/splat-ctl.c b/module/splat/splat-ctl.c
index 6bbe0abba..c4337a9f5 100644
--- a/module/splat/splat-ctl.c
+++ b/module/splat/splat-ctl.c
@@ -718,7 +718,7 @@ splat_fini(void)
spl_module_init(splat_init);
spl_module_exit(splat_fini);
-MODULE_AUTHOR("Lawrence Livermore National Labs");
MODULE_DESCRIPTION("Solaris Porting LAyer Tests");
-MODULE_LICENSE("GPL");
+MODULE_AUTHOR(SPL_META_AUTHOR);
+MODULE_LICENSE(SPL_META_LICENSE);
MODULE_VERSION(SPL_META_VERSION "-" SPL_META_RELEASE);