From: Masahiro Yamada <masahiroy@kernel.org>
To: u-boot@lists.denx.de
Subject: [PATCH B] fixdep: fix U-Boot own code to handle only valid symbol characters
Date: Tue, 18 Feb 2020 20:11:23 +0900 [thread overview]
Message-ID: <20200218111123.25423-1-masahiroy@kernel.org> (raw)
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
Fixes: 8be60f06c258 ("linux/kconfig.h: add CPP macros useful for per-image config options")
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---
This patch is applicable on top of Tom's resync:
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 8c21dd08d9f7..0ff564a5cc86 100644
--- a/scripts/basic/fixdep.c
+++ b/scripts/basic/fixdep.c
@@ -255,7 +255,7 @@ static void parse_config_file(const char *p)
(q - p == 9 && !memcmp(p, "IS_MODULE(", 10)) ||
(q - p == 3 && !memcmp(p, "VAL(", 4))) {
p = q + 1;
- while (*q && *q != ')')
+ while (isalnum(*q) || *q == '_')
q++;
r = q;
if (r > p && is_spl_build) {
--
2.17.1
reply other threads:[~2020-02-18 11:11 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200218111123.25423-1-masahiroy@kernel.org \
--to=masahiroy@kernel.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox