Re: [PATCH v2 1/3] kconfig: error out when seeing recursive dependency
From: Dirk Gouders
Date: Wed Aug 15 2018 - 09:21:37 EST
Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> writes:
> Originally, recursive dependency was a fatal error for Kconfig
> because Kconfig cannot compute symbol values in such a situation.
>
> Commit d595cea62403 ("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: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
I tested v2 of this series and to me it looks all good, now:
Tested-by: Dirk Gouders <dirk@xxxxxxxxxxx>
> ---
>
> Changes in v2:
> - Newly added
>
> scripts/kconfig/symbol.c | 3 ---
> .../tests/{warn_recursive_dep => err_recursive_dep}/Kconfig | 0
> scripts/kconfig/tests/err_recursive_dep/__init__.py | 10 ++++++++++
> .../{warn_recursive_dep => err_recursive_dep}/expected_stderr | 0
> scripts/kconfig/tests/warn_recursive_dep/__init__.py | 9 ---------
> 5 files changed, 10 insertions(+), 12 deletions(-)
> rename scripts/kconfig/tests/{warn_recursive_dep => err_recursive_dep}/Kconfig (100%)
> create mode 100644 scripts/kconfig/tests/err_recursive_dep/__init__.py
> rename scripts/kconfig/tests/{warn_recursive_dep => err_recursive_dep}/expected_stderr (100%)
> delete mode 100644 scripts/kconfig/tests/warn_recursive_dep/__init__.py
>
> diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
> index 4ec8b1f..688f487 100644
> --- a/scripts/kconfig/symbol.c
> +++ b/scripts/kconfig/symbol.c
> @@ -1248,9 +1248,6 @@ struct symbol *sym_check_deps(struct symbol *sym)
> sym->flags &= ~SYMBOL_CHECK;
> }
>
> - if (sym2 && sym2 == sym)
> - sym2 = NULL;
> -
> return sym2;
> }
>
> diff --git a/scripts/kconfig/tests/warn_recursive_dep/Kconfig b/scripts/kconfig/tests/err_recursive_dep/Kconfig
> similarity index 100%
> rename from scripts/kconfig/tests/warn_recursive_dep/Kconfig
> rename to scripts/kconfig/tests/err_recursive_dep/Kconfig
> diff --git a/scripts/kconfig/tests/err_recursive_dep/__init__.py b/scripts/kconfig/tests/err_recursive_dep/__init__.py
> new file mode 100644
> index 0000000..5f3821b
> --- /dev/null
> +++ b/scripts/kconfig/tests/err_recursive_dep/__init__.py
> @@ -0,0 +1,10 @@
> +# SPDX-License-Identifier: GPL-2.0
> +"""
> +Detect recursive dependency error.
> +
> +Recursive dependency should be treated as an error.
> +"""
> +
> +def test(conf):
> + assert conf.oldaskconfig() == 1
> + assert conf.stderr_contains('expected_stderr')
> diff --git a/scripts/kconfig/tests/warn_recursive_dep/expected_stderr b/scripts/kconfig/tests/err_recursive_dep/expected_stderr
> similarity index 100%
> rename from scripts/kconfig/tests/warn_recursive_dep/expected_stderr
> rename to scripts/kconfig/tests/err_recursive_dep/expected_stderr
> diff --git a/scripts/kconfig/tests/warn_recursive_dep/__init__.py b/scripts/kconfig/tests/warn_recursive_dep/__init__.py
> deleted file mode 100644
> index adb2195..0000000
> --- a/scripts/kconfig/tests/warn_recursive_dep/__init__.py
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -"""
> -Warn recursive inclusion.
> -
> -Recursive dependency should be warned.
> -"""
> -
> -def test(conf):
> - assert conf.oldaskconfig() == 0
> - assert conf.stderr_contains('expected_stderr')