• Masahiro Yamada's avatar
    kconfig: improve error message for recursive dependency in choice · d67624d8
    Masahiro Yamada authored
    Kconfig detects recursive dependencies in a choice block, but the error
    message is unclear.
    
    [Test Code]
    
        choice
                prompt "choose"
                depends on A
    
        config A
                bool "A"
    
        config B
                bool "B"
    
        endchoice
    
    [Result]
    
        Kconfig:1:error: recursive dependency detected!
        Kconfig:1:      choice <choice> contains symbol A
        Kconfig:5:      symbol A is part of choice <choice>
        For a resolution refer to Documentation/kbuild/kconfig-language.rst
        subsection "Kconfig recursive dependency limitations"
    
    The phrase "contains symbol A" does not accurately describe the problem.
    The issue is that the choice depends on A, which is a member of itself.
    
    The first if-block does not print a sensible message. Remove it.
    
    This commit improves the error message to:
    
        Kconfig:1:error: recursive dependency detected!
        Kconfig:1:      symbol <choice> symbol is visible depending on A
        Kconfig:5:      symbol A is part of choice <choice>
        For a resolution refer to Documentation/kbuild/kconfig-language.rst
        subsection "Kconfig recursive dependency limitations"
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    d67624d8
symbol.c 28.7 KB