kconfig: fix line number in recursive inclusion error message
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Fri, 2 Mar 2018 07:05:12 +0000 (16:05 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Fri, 2 Mar 2018 15:44:47 +0000 (00:44 +0900)
commit5ae6fcc4bb82bd05996cc685b8786c586637e56d
treefebbe828f00c4f8e8b3efb8194ee8b8e9de330de
parenta11761c2dda64737bfe47e7c15545d4648f8573c
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>
scripts/kconfig/zconf.l