summary refs log tree commit diff
path: root/scripts/basic
diff options
context:
space:
mode:
authorRasmus Villemoes <linux@rasmusvillemoes.dk>2018-02-28 20:17:36 +0100
committerMasahiro Yamada <yamada.masahiro@socionext.com>2018-03-05 23:48:25 +0900
commit5b8ad96d1a4421ffe417e647a65064aad1e84fb4 (patch)
tree23aff2c1cc0a91d53ca8f15ee7b1dffba3217b9a /scripts/basic
parent14a596a7e6fd9c5baa6b2cfc57962e2c3bda6c69 (diff)
downloadlinux-5b8ad96d1a4421ffe417e647a65064aad1e84fb4.tar.gz
fixdep: remove some false CONFIG_ matches
The string CONFIG_ quite often appears after other alphanumerics,
meaning that that instance cannot be referencing a Kconfig
symbol. Omitting these means make has fewer files to stat() when
deciding what needs to be rebuilt - for a defconfig build, this seems to
remove about 2% of the (wildcard ...) lines from the .o.cmd files.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'scripts/basic')
-rw-r--r--scripts/basic/fixdep.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
index d7fbe545dd5d..1b21870d6e7f 100644
--- a/scripts/basic/fixdep.c
+++ b/scripts/basic/fixdep.c
@@ -225,8 +225,13 @@ static int str_ends_with(const char *s, int slen, const char *sub)
 static void parse_config_file(const char *p)
 {
 	const char *q, *r;
+	const char *start = p;
 
 	while ((p = strstr(p, "CONFIG_"))) {
+		if (p > start && (isalnum(p[-1]) || p[-1] == '_')) {
+			p += 7;
+			continue;
+		}
 		p += 7;
 		q = p;
 		while (*q && (isalnum(*q) || *q == '_'))