On Fri, Mar 2, 2018 at 8:05 AM, Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> wrote: > 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 two fprintf(). > > Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> > --- > > scripts/kconfig/zconf.l | 12 ++++-------- > 1 file changed, 4 insertions(+), 8 deletions(-) > > diff --git a/scripts/kconfig/zconf.l b/scripts/kconfig/zconf.l > index 02de6fe..88b650e 100644 > --- a/scripts/kconfig/zconf.l > +++ b/scripts/kconfig/zconf.l > @@ -332,16 +332,12 @@ void zconf_nextfile(const char *name) > "Inclusion path:\n current file : '%s'\n", > zconf_curname(), zconf_lineno(), > zconf_curname()); > - iter = current_file->parent; > - while (iter && \ > - strcmp(iter->name,current_file->name)) { > - fprintf(stderr, " included from: '%s:%d'\n", > - iter->name, iter->lineno-1); > + iter = current_file; > + do { > iter = iter->parent; > - } > - if (iter) > fprintf(stderr, " included from: '%s:%d'\n", > - iter->name, iter->lineno+1); > + iter->name, iter->lineno - 1); > + } while (strcmp(iter->name, current_file->name)); > exit(1); > } > } > -- > 2.7.4 > Much neater. Reviewed-by: Ulf Magnusson <ulfalizer@xxxxxxxxx> Cheers, Ulf -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html