⚠️ Проблема сломанной зависимости select в Kсonfig
Материал возможно устарел.
Проверяйте следующим образом
make KBUILD_KCONFIG=Documentation/kbuild/Kconfig.select-break menuconfig
Kconfig не выдаст ошибок и позволит использовать эту конфигурацию. В настоящий момент это является особенностью kconfig, поскольку функция select
была разработана для жесткого регулирования. Сейчас kconfig не проверяет список символов, указанных в select
; это сделано намеренно, чтобы помочь загрузить набор известных необходимых символов. По этой причине использование select
должно производиться с осторожностью. Пример этой проблемы приведен ниже.
Параметры B и C явно противоречат опции A. Однако, когда A установлена, C также может быть установлена, потому что Kconfig не проверяет зависимости символа, указанного в select
(в данном случае B). И поскольку Kconfig не проверяет зависимости, это нарушает зависимости B (!A).
mainmenu "Simple example to demo kconfig select broken dependency issue"
config A
bool "CONFIG A"
config B
bool "CONFIG B"
depends on !A
config C
bool "CONFIG C"
depends on A
select B