kbuild: document recursive dependency limitation / resolution

Recursive dependency issues with kconfig are unavoidable due to
some limitations with kconfig, since these issues are recurring
provide a hint to the user how they can resolve these dependency
issues and also document why such limitation exists.

While at it also document a bit of future prospects of ways to
enhance Kconfig, including providing formal semantics and evaluation
of use of a SAT solver. If you're interested in this work or prospects
of it check out the kconfig-sat project wiki [0] and mailing list [1].

[0] http://kernelnewbies.org/KernelProjects/kconfig-sat
[1] https://groups.google.com/d/forum/kconfig-sat

Cc: Geert Uytterhoeven <[email protected]>
Cc: James Bottomley <[email protected]>
Cc: Josh Triplett <[email protected]>
Cc: Paul Bolle <[email protected]>
Cc: Herbert Xu <[email protected]>
Cc: Takashi Iwai <[email protected]>
Cc: "Yann E. MORIN" <[email protected]>
Cc: Jonathan Corbet <[email protected]>
Cc: Mate Soos <[email protected]>
Signed-off-by: Luis R. Rodriguez <[email protected]>
Signed-off-by: Michal Marek <[email protected]>
This commit is contained in:
Luis R. Rodriguez 2015-10-07 16:16:33 -07:00 • committed by Michal Marek
commit 1c199f2878
5 changed files with 316 additions and 0 deletions

View file

@ -1116,6 +1116,8 @@ static void sym_check_print_recursive(struct symbol *last_sym)
if (stack->sym == last_sym)
fprintf(stderr, "%s:%d:error: recursive dependency detected!\n",
prop->file->name, prop->lineno);
fprintf(stderr, "For a resolution refer to Documentation/kbuild/kconfig-language.txt\n");
fprintf(stderr, "subsection \"Kconfig recursive dependency limitations\"\n");
if (stack->expr) {
fprintf(stderr, "%s:%d:\tsymbol %s %s value contains %s\n",
prop->file->name, prop->lineno,