aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/config
diff options
context:
space:
mode:
authorEneas U de Queiroz <cotequeiroz@gmail.com>2020-04-09 21:39:17 -0300
committerPetr Štetiar <ynezz@true.cz>2020-04-11 19:06:26 +0200
commit8514b6b42c17d7cf887fc826596534698e89e3f8 (patch)
treeacdb83c4b917a546ebdfdde3fbfc8142dfe9a411 /scripts/config
parentc30220d458c0771013f21a16148baa4ea723027b (diff)
downloadupstream-8514b6b42c17d7cf887fc826596534698e89e3f8.tar.gz
upstream-8514b6b42c17d7cf887fc826596534698e89e3f8.tar.bz2
upstream-8514b6b42c17d7cf887fc826596534698e89e3f8.zip
build: config: allow bool to select a module pkg
kconfig-v5.6 disallowed a bool symbol to select another symbol that 'depends on m' (i.e. can be only 'm' on 'n'). It is, in fact, an unmet dependency to have set to 'y'. However, openwrt depends on the previous behavior, to be able to build a package that can be a module or built-in depending on a bool config. This restores the previous behavior. Ref: https://forum.openwrt.org/t/wireless-fails-on-snapshot-r12900-kernel-5-4-on-c2600-ipq806x Tested-by: Hannu Nyman <hannu.nyman@iki.fi> Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz> [added forum ref]
Diffstat (limited to 'scripts/config')
-rw-r--r--scripts/config/README4
-rw-r--r--scripts/config/symbol.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/scripts/config/README b/scripts/config/README
index 81243e8016..d193050ba4 100644
--- a/scripts/config/README
+++ b/scripts/config/README
@@ -22,7 +22,9 @@ OpenWrt Buildroot:
that may cause one.
- use pre-built *.lex.c *.tab.[ch] files by default, to avoid depending on
flex & bison. Rebuild/remove these files only if running make with
- BUILD_SHIPPED_FILES defined
+ BUILD_SHIPPED_FILES defined.
+ - allow a bool symbol to select a tristate symbol that depends on m (i.e.
+ a package that should only be built as a module).
For a full list of changes, see the repository at:
https://github.com/cotequeiroz/linux/commits/openwrt/scripts/kconfig
diff --git a/scripts/config/symbol.c b/scripts/config/symbol.c
index 5c6f540314..051472238d 100644
--- a/scripts/config/symbol.c
+++ b/scripts/config/symbol.c
@@ -205,7 +205,7 @@ static void sym_calc_visibility(struct symbol *sym)
tri = yes;
if (sym->dir_dep.expr)
tri = expr_calc_value(sym->dir_dep.expr);
- if (tri == mod && sym_get_type(sym) == S_BOOLEAN)
+ if (tri == mod)
tri = yes;
if (sym->dir_dep.tri != tri) {
sym->dir_dep.tri = tri;