Bug 11736

Summary: KCONFIG_ALLCONFIG does not apply passed config (regression in 0b1c62934)
Product: Busybox Reporter: Alexei Colin <ac>
Component: OtherAssignee: unassigned
Status: NEW ---    
Severity: normal CC: busybox-cvs
Priority: P5    
Version: 1.33.x   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Host: Target:
Build:

Description Alexei Colin 2019-03-26 21:10:53 UTC
First reported in comment 3 in #10296:
https://bugs.busybox.net/show_bug.cgi?id=10296#c3

make allnoconfig KCONFIG_ALLCONFIG="configfile" is supposed to generate a .config where a symbol is enabled if it or its dependee is enabled in configfile. The code for this use case is in conf.c:

    case set_no:
        case set_mod:
        case set_yes:
        case set_random:
                name = getenv("KCONFIG_ALLCONFIG");
                if (name && !stat(name, &tmpstat)) {
                        conf_read_simple(name);
                        break;
                }
 
KCONFIG_ALLCONFIG allows overriding a default filename that would otherwise be read (with the same purpose of setting symbols in .config): {allno,allyes,...}.config.

To reproduce:
$ echo 'CONFIG_MKDIR=y' > shortconfig
$ make allnoconfig KCONFIG_ALLCONFIG="shortconfig"
$ grep MKDIR .config
# CONFIG_MKDIR is not set
but should be (and is after reverting the commit below)
CONFIG_MKDIR=y

This is a regression introduced in 0b1c62934215a08351a80977c7cf8e9346683a1e.

This regression breaks the miniconf [1,2,3,4] use case.

Is there a way to fix the original issue without breaking KCONFIG_ALLCONFIG? Thank you.

[1] http://landley.net/hg/aboriginal/file/c8293b3ab81f/more/miniconfig.sh
[2] http://landley.net/aboriginal/FAQ.html#dev_miniconfig
[3] https://lwn.net/Articles/161086/
[4] http://lists.uclibc.org/pipermail/uclibc/2007-March/017612.html
Comment 1 Axel Fontaine 2022-02-23 16:19:45 UTC
This issue is still present in the latest release. Is there any workaround?