]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
kconfig: Error out on duplicated kconfig inclusion
authorNicolas Schier <nsc@kernel.org>
Fri, 20 Feb 2026 18:55:19 +0000 (19:55 +0100)
committerNicolas Schier <nsc@kernel.org>
Fri, 27 Feb 2026 08:26:58 +0000 (09:26 +0100)
commit102d712ded3ef2ee5b38ee6afa686aff63afd444
tree016c78a6ab4eca91ada9f5666a9a08940c147314
parent6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
kconfig: Error out on duplicated kconfig inclusion

Let kconfig exit with error on duplicated Kconfig file inclusion.

Repeated inclusion of Kbuild files are considered bad-practise with
regard to maintenance; and Kconfig language is rich enough that there
should be no need for that.

If repeated inclusion of Kconfig files is detected, error out with
messages like:

    Kconfig.inc1:4: error: repeated inclusion of Kconfig.inc3
    Kconfig.inc2:3: note: location of first inclusion of Kconfig.inc3

While commit f094f8a1b273 ("kconfig: allow multiple inclusion of the
same file") introduced detection of recursive inclusions of Kconfig
files, it explicitly allowed repeated inclusions, unfortunately w/o
reasoning.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Closes: https://lore.kernel.org/all/CAHk-=wj03hLzK2D=+OYmjgcmGM+XYymp8GyaEs=C0=rXG2nb7w@mail.gmail.com/
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Tested-by: Nathan Chancellor <nathan@kernel.org>
Link: https://patch.msgid.link/20260220-kconfig-error-out-on-duplicated-inclusion-v1-1-be78aa241a53@kernel.org
Signed-off-by: Nicolas Schier <nsc@kernel.org>
scripts/kconfig/lexer.l
scripts/kconfig/lkc.h
scripts/kconfig/tests/err_repeated_inc/Kconfig [new file with mode: 0644]
scripts/kconfig/tests/err_repeated_inc/Kconfig.inc1 [new file with mode: 0644]
scripts/kconfig/tests/err_repeated_inc/Kconfig.inc2 [new file with mode: 0644]
scripts/kconfig/tests/err_repeated_inc/Kconfig.inc3 [new file with mode: 0644]
scripts/kconfig/tests/err_repeated_inc/__init__.py [new file with mode: 0644]
scripts/kconfig/tests/err_repeated_inc/expected_stderr [new file with mode: 0644]
scripts/kconfig/util.c