• Masahiro Yamada's avatar
    kconfig: remove 'optional' property support · 6a121588
    Masahiro Yamada authored
    The 'choice' statement is primarily used to exclusively select one
    option, but the 'optional' property allows all entries to be disabled.
    
    In the following example, both A and B can be disabled simultaneously:
    
        choice
                prompt "choose A, B, or nothing"
                optional
    
        config A
                bool "A"
    
        config B
                bool "B"
    
        endchoice
    
    You can achieve the equivalent outcome by other means.
    
    A common solution is to add another option to guard the choice block.
    In the following example, you can set ENABLE_A_B_CHOICE=n to disable
    the entire choice block:
    
        choice
                prompt "choose A or B"
                depends on ENABLE_A_B_CHOICE
    
        config A
                bool "A"
    
        config B
                bool "B"
    
        endchoice
    
    Another approach is to insert one more entry:
    
        choice
                prompt "choose A, B, or disable both"
    
        config A
                bool "A"
    
        config B
                bool "B"
    
        config DISABLE_A_AND_B
                bool "choose this to disable both A and B"
    
        endchoice
    
    Some real examples are DEBUG_INFO_NONE, INITRAMFS_COMPRESSION_NONE,
    LTO_NONE, etc.
    
    The 'optional' property is even more unnecessary for a tristate choice.
    
    Without the 'optional' property, you can disable A and B; you can set
    'm' in the choice prompt, and disable A and B individually:
    
        choice
                prompt "choose one built-in or make them modular"
    
        config A
                tristate "A"
    
        config B
                tristate "B"
    
        endchoice
    
    In conclusion, the 'optional' property was unneeded.
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    Reviewed-by: default avatarNicolas Schier <n.schier@avm.de>
    6a121588
lexer.l 8.87 KB