
On Tue, Feb 18, 2020 at 08:35:06PM +0900, Masahiro Yamada wrote:
On Tue, Feb 18, 2020 at 8:06 PM Masahiro Yamada masahiroy@kernel.org wrote:
Currently, fixdep skips parsing include/linux/kconfig.h, but if it parsed it, it would translate the following code in kconfig.h
config_enabled(CONFIG_VAL(option##_MODULE)
into:
$(wildcard include/config/option##/module.h)
When Kbuild includes .*.cmd, it would emit the following error:
*** unterminated call to function 'wildcard': missing ')'. Stop.
This issue prevents us from importing the upstream Linux commit 638e69cf2230 ("fixdep: do not ignore kconfig.h").
Fix this by handling only alphanumerical characters and underscores. This makes sense because they match to the valid character sets in Kconfig symbols.
As a side-note, you can reproduce this issue only on GNU Make <= 4.2.1
For GNU Make <= 4.2.1, the '#' always means the start of a comment. Hence, GNU Make thinks the closing ')' is missing.
The following commit in GNU Make changed how it handles '#' in function invocations. So, this does not happen for GNU Make 4.3
| commit c6966b323811c37acedff05b576b907b06aea5f4 | Author: Paul Smith psmith@gnu.org | Date: Thu Dec 22 18:47:26 2016 -0500 | | [SV 20513] Un-escaped # are not comments in function invocations
Signed-off-by: Masahiro Yamada masahiroy@kernel.org
Maybe, this can have this tag.
Fixes: 8be60f06c258 ("linux/kconfig.h: add CPP macros useful for per-image config options")
Ah, OK, thanks. Yes, I'll go this route to keep bisectability and fully re-sync the program.