build: config: allow bool to select a module pkg
authorEneas U de Queiroz <cotequeiroz@gmail.com>
Fri, 10 Apr 2020 00:39:17 +0000 (21:39 -0300)
committerPetr Štetiar <ynezz@true.cz>
Sat, 11 Apr 2020 17:06:26 +0000 (19:06 +0200)
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]
scripts/config/README
scripts/config/symbol.c

index 81243e8016dd888c3e80c67262d625bde701e3ce..d193050ba4fa6d37ae3d1b521d21c7eef9097f28 100644 (file)
@@ -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
index 5c6f54031437a0d64b98ac6942d6892550c0b753..051472238d6c76f7308d5e1e0789a6396a065b8a 100644 (file)
@@ -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;