aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2018-03-02 02:05:12 -0500
committerMasahiro Yamada <yamada.masahiro@socionext.com>2018-03-02 10:44:47 -0500
commit5ae6fcc4bb82bd05996cc685b8786c586637e56d (patch)
treefebbe828f00c4f8e8b3efb8194ee8b8e9de330de
parenta11761c2dda64737bfe47e7c15545d4648f8573c (diff)
kconfig: fix line number in recursive inclusion error message
When recursive inclusion is detected, the line number of the last 'included from:' is wrong. [Test Case] Kconfig: -------->8-------- source "Kconfig2" -------->8-------- Kconfig2: -------->8-------- source "Kconfig3" -------->8-------- Kconfig3: -------->8-------- source "Kconfig" -------->8-------- [Result] $ make allyesconfig scripts/kconfig/conf --allyesconfig Kconfig Kconfig:1: recursive inclusion detected. Inclusion path: current file : 'Kconfig' included from: 'Kconfig3:1' included from: 'Kconfig2:1' included from: 'Kconfig:3' scripts/kconfig/Makefile:89: recipe for target 'allyesconfig' failed make[1]: *** [allyesconfig] Error 1 Makefile:512: recipe for target 'allyesconfig' failed make: *** [allyesconfig] Error 2 where we expect current file : 'Kconfig' included from: 'Kconfig3:1' included from: 'Kconfig2:1' included from: 'Kconfig:1' The 'iter->lineno+1' in the second fpinrtf() should be 'iter->lineno-1'. I refactored the code to merge the two fprintf() calls. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Ulf Magnusson <ulfalizer@gmail.com>
-rw-r--r--scripts/kconfig/zconf.l12
1 files changed, 4 insertions, 8 deletions
diff --git a/scripts/kconfig/zconf.l b/scripts/kconfig/zconf.l
index 02de6fe302a9..88b650eb9cc9 100644
--- a/scripts/kconfig/zconf.l
+++ b/scripts/kconfig/zconf.l
@@ -332,16 +332,12 @@ void zconf_nextfile(const char *name)
332 "Inclusion path:\n current file : '%s'\n", 332 "Inclusion path:\n current file : '%s'\n",
333 zconf_curname(), zconf_lineno(), 333 zconf_curname(), zconf_lineno(),
334 zconf_curname()); 334 zconf_curname());
335 iter = current_file->parent; 335 iter = current_file;
336 while (iter && \ 336 do {
337 strcmp(iter->name,current_file->name)) {
338 fprintf(stderr, " included from: '%s:%d'\n",
339 iter->name, iter->lineno-1);
340 iter = iter->parent; 337 iter = iter->parent;
341 }
342 if (iter)
343 fprintf(stderr, " included from: '%s:%d'\n", 338 fprintf(stderr, " included from: '%s:%d'\n",
344 iter->name, iter->lineno+1); 339 iter->name, iter->lineno - 1);
340 } while (strcmp(iter->name, current_file->name));
345 exit(1); 341 exit(1);
346 } 342 }
347 } 343 }