forcibly disable config

Oleksii inisider at gmail.com
Wed Aug 23 08:45:51 EDT 2023


Hello, dear community,

I want to ask what is a proper way to disable config forcibly.

For example, I have some config somewhere in common Kconfig:
config NAME
bool "some short description" if EXPERT
default y

When I do the command `make olddefconfig`, it will generate a new
config based on old .config.
So my expectation was if I put CONFIG_NAME=n to .config and then ran
the command, I'll get CONFIG_NAME=n in the final .config, but it
doesn't work.

If you update 'config NAME' from `default y` to `default n`, all will
be fine, but it is not the best solution to touch common Kconfig.
If you use 'make defconfig' and put `# CONFIG_NAME is not set`, then
all will be fine too, but my CI uses 'make olddefconfig`, which ignores
`*_defconfig`.
Also, I tried to override CONFIG_NAME in arch-specific Kconfig in the
following way:
config NAME
bool
default n
and it works for olddefconfig, but if you use `make randconfig`, it
still can set CONFIG_NAME=y.

I tried debugging the conf utility and found that [1] CONFIG_NAME is
set to n, but [2] it takes `default y` from the original in Kconfig
common, ignoring what I write to .config.
Is it expected behavior?

Could you please let me know the right solution?


[1]
https://github.com/torvalds/linux/blob/master/scripts/kconfig/confdata.c#L490


[2]
https://github.com/torvalds/linux/blob/master/scripts/kconfig/symbol.c#L394




More information about the Kernelnewbies mailing list