kconfig: abort configuration on unset symbol

This fixes the initial patch to cover all cases where unset symbols are
handled in the code.

Fixes commit eaa9c94c75 ("generic: Kconfig: exit on unset symbol")

Signed-off-by: David Bauer <mail@david-bauer.net>
This commit is contained in:
David Bauer 2022-11-11 13:37:07 +01:00
parent 1a49b499f1
commit fdcd383919
4 changed files with 82 additions and 48 deletions

View File

@ -0,0 +1,41 @@
From 310e8e04a05d9eb43fa9dd7f00143300afcaa37a Mon Sep 17 00:00:00 2001
From: David Bauer <mail@david-bauer.net>
Date: Fri, 11 Nov 2022 13:33:44 +0100
Subject: [PATCH] kconfig: abort configuration on unset symbol
When a target configuration has unset Kconfig symbols, the build will
fail when OpenWrt is compiled with V=s and stdin is connected to a tty.
In case OpenWrt is compiled without either of these preconditions, the
build will succeed with the symbols in question being unset.
Modify the kernel configuration in a way it fails on unset symbols
regardless of the aforementioned preconditions.
Signed-off-by: David Bauer <mail@david-bauer.net>
---
scripts/kconfig/conf.c | 6 ++++++
1 file changed, 6 insertions(+)
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -109,6 +109,9 @@ static int conf_askvalue(struct symbol *
}
/* fall through */
case oldaskconfig:
+ if (!tty_stdio && getenv("FAIL_ON_UNCONFIGURED")) {
+ exit(1);
+ }
fflush(stdout);
xfgets(line, sizeof(line), stdin);
return 1;
@@ -303,6 +306,9 @@ static int conf_choice(struct menu *menu
}
/* fall through */
case oldaskconfig:
+ if (!tty_stdio && getenv("FAIL_ON_UNCONFIGURED")) {
+ exit(1);
+ }
fflush(stdout);
xfgets(line, sizeof(line), stdin);
strip(line);

View File

@ -1,28 +0,0 @@
From: David Bauer <mail@david-bauer.net>
Subject: Kconfig: exit on unset symbol
When a target configuration has unset Kconfig symbols, the build will
fail when OpenWrt is compiled with V=s and stdin is connected to a tty.
In case OpenWrt is compiled without either of these preconditions, the
build will succeed with the symbols in question being unset.
Modify the kernel configuration in a way it fails on unset symbols
regardless of the aforementioned preconditions.
Submitted-by: David Bauer <mail@david-bauer.net>
---
scripts/kconfig/conf.c | 2 +
1 files changed, 2 insertions(+)
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -215,6 +215,8 @@ static int conf_sym(struct menu *menu)
break;
continue;
case 0:
+ if (!sym_has_value(sym) && !tty_stdio && getenv("FAIL_ON_UNCONFIGURED"))
+ exit(1);
newval = oldval;
break;
case '?':

View File

@ -0,0 +1,41 @@
From 310e8e04a05d9eb43fa9dd7f00143300afcaa37a Mon Sep 17 00:00:00 2001
From: David Bauer <mail@david-bauer.net>
Date: Fri, 11 Nov 2022 13:33:44 +0100
Subject: [PATCH] kconfig: abort configuration on unset symbol
When a target configuration has unset Kconfig symbols, the build will
fail when OpenWrt is compiled with V=s and stdin is connected to a tty.
In case OpenWrt is compiled without either of these preconditions, the
build will succeed with the symbols in question being unset.
Modify the kernel configuration in a way it fails on unset symbols
regardless of the aforementioned preconditions.
Signed-off-by: David Bauer <mail@david-bauer.net>
---
scripts/kconfig/conf.c | 6 ++++++
1 file changed, 6 insertions(+)
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -341,6 +341,9 @@ static int conf_askvalue(struct symbol *
}
/* fall through */
default:
+ if (!tty_stdio && getenv("FAIL_ON_UNCONFIGURED")) {
+ exit(1);
+ }
fflush(stdout);
xfgets(line, sizeof(line), stdin);
break;
@@ -523,6 +526,9 @@ static int conf_choice(struct menu *menu
}
/* fall through */
case oldaskconfig:
+ if (!tty_stdio && getenv("FAIL_ON_UNCONFIGURED")) {
+ exit(1);
+ }
fflush(stdout);
xfgets(line, sizeof(line), stdin);
strip(line);

View File

@ -1,20 +0,0 @@
From 300d26562ce4dc427154cb247beb75db4b1f0774 Mon Sep 17 00:00:00 2001
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
Date: Wed, 13 Jul 2022 13:29:57 +0200
Subject: [PATCH] scripts/Kconfig: Kconfig exit
---
scripts/kconfig/conf.c | 2 ++
1 file changed, 2 insertions(+)
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -435,6 +435,8 @@ static int conf_sym(struct menu *menu)
break;
continue;
case 0:
+ if (!sym_has_value(sym) && !tty_stdio && getenv("FAIL_ON_UNCONFIGURED"))
+ exit(1);
newval = oldval;
break;
case '?':