summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2019-03-25 21:05:25 (GMT)
committerAlexey Neyman <stilor@att.net>2019-04-05 01:57:42 (GMT)
commit31002a0c0a5c2efe3ed3861a012a44e4888bf3d2 (patch)
tree858afd4267cae2e9ab592781f53c0413401174b5
parentcc3686ec2ff8e1e1d36cd2ea0b16922e0a441ed7 (diff)
Add an ability to mark a configuration as invalid
... so that the build will fail early and predictably. Signed-off-by: Alexey Neyman <stilor@att.net>
-rw-r--r--config/global.in3
-rw-r--r--maintainer/kconfig-versions.template19
-rw-r--r--scripts/crosstool-NG.sh2
3 files changed, 24 insertions, 0 deletions
diff --git a/config/global.in b/config/global.in
index f5df002..94d2191 100644
--- a/config/global.in
+++ b/config/global.in
@@ -38,6 +38,9 @@ config CONFIG_VERSION
default "0" if VCHECK = "load" || VCHECK = "save"
default CONFIG_VERSION_CURRENT
+config INVALID_CONFIGURATION
+ bool
+
if VCHECK = "warning"
comment "*************************************************************************"
comment "Loaded configuration was generated by a previous version of crosstool-NG."
diff --git a/maintainer/kconfig-versions.template b/maintainer/kconfig-versions.template
index 3db512e..4ac81be 100644
--- a/maintainer/kconfig-versions.template
+++ b/maintainer/kconfig-versions.template
@@ -276,6 +276,25 @@ config @@fork|@@_VERY_OLD
#!end-foreach
endchoice
+
+# A flag indicating that no valid selections exist for the version.
+# This may happen if there are conflicting requirements set by
+# the host system and/or other packages.
+config @@fork|@@_NO_VERSIONS
+ def_bool y
+ select INVALID_CONFIGURATION
+ depends on !@@fork|@@_VERY_NEW
+#!foreach version
+ depends on !@@fork|@@_V_@@ver_sel|@@
+#!end-foreach
+ depends on !@@fork|@@_VERY_OLD
+
+if @@fork|@@_NO_VERSIONS
+comment "WARNING!"
+comment "| The @@master@@ package has no viable versions"
+comment "| due to conflicting constraints."
+endif
+
#!end-if
#!if [ -n "@@versionlocked@@" ]
diff --git a/scripts/crosstool-NG.sh b/scripts/crosstool-NG.sh
index db15b89..6014e4a 100644
--- a/scripts/crosstool-NG.sh
+++ b/scripts/crosstool-NG.sh
@@ -32,6 +32,8 @@ if [ -z "${CT_ALLOW_BUILD_AS_ROOT_SURE}" ]; then
fi
fi
+CT_TestAndAbort "Invalid configuration. Run 'ct-ng menuconfig' and check which options select INVALID_CONFIGURATION." -n "${CT_INVALID_CONFIGURATION}"
+
# If we want an interactive debug-shell, we must ensure these FDs
# are indeed connected to a terminal (and not redirected in any way).
if [ "${CT_DEBUG_INTERACTIVE}" = "y" -a ! \( -t 0 -a -t 6 -a -t 2 \) ]; then