On Tue, Feb 18, 2020 at 8:06 PM Masahiro Yamada <masahi...@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 <psm...@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 <masahi...@kernel.org> > ---
Maybe, this can have this tag. Fixes: 8be60f06c258 ("linux/kconfig.h: add CPP macros useful for per-image config options") > This patch is applicable to the current upstream code. > > > scripts/basic/fixdep.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c > index da7fb2cd4dde..6a668f114096 100644 > --- a/scripts/basic/fixdep.c > +++ b/scripts/basic/fixdep.c > @@ -262,7 +262,7 @@ static void parse_config_file(const char *map, size_t len) > (q - p == 3 && !memcmp(p, "VAL(", 4))) { > p = q + 1; > for (q = p; q < map + len; q++) > - if (*q == ')') > + if (!(isalnum(*q) || *q == '_')) > goto found2; > continue; > > -- > 2.17.1 > -- Best Regards Masahiro Yamada