summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--eclass/linux-build.eclass26
1 files changed, 18 insertions, 8 deletions
diff --git a/eclass/linux-build.eclass b/eclass/linux-build.eclass
index fb19a8b1..b6dff6fc 100644
--- a/eclass/linux-build.eclass
+++ b/eclass/linux-build.eclass
@@ -448,16 +448,26 @@ _linux-build_src_prepare_build() {
emake olddefconfig "${myopt[@]}"
fi
- if ! diff -q \
- --ignore-matching-lines '^$' \
- --ignore-matching-lines '^#' \
- --ignore-matching-lines '^CONFIG_PLUGIN_HOSTCC=' \
- --ignore-matching-lines '^CONFIG_GCC_VERSION=' \
- --ignore-matching-lines '^CONFIG_CLANG_VERSION=' \
- "${BUILDDIR}/.config.old" "${BUILDDIR}/.config" ; then
+ local -a _diff_opts=(
+ # Empty lines and comments
+ --ignore-matching-lines '^$'
+ --ignore-matching-lines '^#'
+
+ # GCC vs Clang
+ --ignore-matching-lines '^CONFIG_CC_IS_GCC='
+ --ignore-matching-lines '^CONFIG_CC_IS_CLANG='
+ --ignore-matching-lines '^CONFIG_GCC_VERSION='
+ --ignore-matching-lines '^CONFIG_CLANG_VERSION='
+ --ignore-matching-lines '^CONFIG_PLUGIN_HOSTCC='
+ --ignore-matching-lines '^CONFIG_CC_HAS_'
+
+ # GCC only
+ --ignore-matching-lines '^CONFIG_KASAN_STACK='
+ )
+ if ! diff -q "${_diff_opts[@]}" "${BUILDDIR}/.config.old" "${BUILDDIR}/.config" ; then
eerror "You configuration is not up to date"
- diff -Nu "${BUILDDIR}/.config.old" "${BUILDDIR}/.config"
+ diff -Nu "${_diff_opts[@]}" "${BUILDDIR}/.config.old" "${BUILDDIR}/.config"
die "Bad configuration"
fi