“9ffbccc3ec4d3837a377302641f2ac2f095e4700”上不存在“projects/nyukat/imports.yml”
  1. 22 8月, 2018 3 次提交
    • M
      kconfig: improve the recursive dependency report · f498926c
      Masahiro Yamada 提交于
      This commit improves the messages of the recursive dependency.
      Currently, sym->dir_dep.expr is not checked.  Hence, any dependency
      in property visibility is regarded as the dependency of the symbol.
      
      [Test Code 1]
      
        config A
                bool "a"
                depends on B
      
        config B
                bool "b"
                depends on A
      
      [Test Code 2]
      
        config A
                bool "a" if B
      
        config B
                bool "b"
                depends on A
      
      For both cases above, the same message is displayed:
      
              symbol B depends on A
              symbol A depends on B
      
      This commit changes the message for the latter, like this:
      
              symbol B depends on A
              symbol A prompt is visible depending on B
      
      Also, 'select' and 'imply' are distinguished.
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      Tested-by: NDirk Gouders <dirk@gouders.net>
      f498926c
    • M
      kconfig: report recursive dependency involving 'imply' · 5e8c5299
      Masahiro Yamada 提交于
      Currently, Kconfig does not complain about the recursive dependency
      where 'imply' keywords are involved.
      
      [Test Code]
      
        config A
                bool "a"
      
        config B
                bool "b"
                imply A
                depends on A
      
      In the code above, Kconfig cannot calculate the symbol values correctly
      due to the circular dependency.  For example, allyesconfig followed by
      syncconfig results in an odd behavior because CONFIG_B becomes visible
      in syncconfig.
      
        $ make allyesconfig
        scripts/kconfig/conf  --allyesconfig Kconfig
        #
        # configuration written to .config
        #
        $ cat .config
        #
        # Automatically generated file; DO NOT EDIT.
        # Main menu
        #
        CONFIG_A=y
        $ make syncconfig
        scripts/kconfig/conf  --syncconfig Kconfig
        *
        * Restart config...
        *
        *
        * Main menu
        *
        a (A) [Y/n/?] y
          b (B) [N/y/?] (NEW)
      
      To detect this correctly, sym_check_expr_deps() should recurse to
      not only sym->rev_dep.expr but also sym->implied.expr .
      
      At this moment, sym_check_print_recursive() cannot distinguish
      'select' and 'imply' since it does not know the precise context
      where the recursive dependency has been hit.  This will be solved
      by the next commit.
      
      In fact, even the document and the unit-test are confused.  Using
      'imply' does not solve recursive dependency since 'imply' addresses
      the unmet direct dependency, which 'select' could cause.
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      Tested-by: NDirk Gouders <dirk@gouders.net>
      5e8c5299
    • M
      kconfig: error out when seeing recursive dependency · f1575595
      Masahiro Yamada 提交于
      Originally, recursive dependency was a fatal error for Kconfig
      because Kconfig cannot compute symbol values in such a situation.
      
      Commit d595cea6 ("kconfig: print more info when we see a recursive
      dependency") changed it to a warning, which I guess was not intentional.
      
      Get it back to an error again.
      
      Also, rename the unit test directory "warn_recursive_dep" to
      "err_recursive_dep" so that it matches to the behavior.
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      Tested-by: NDirk Gouders <dirk@gouders.net>
      f1575595
  2. 26 3月, 2018 1 次提交