aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/genksyms
diff options
context:
space:
mode:
authorMichal Marek <mmarek@suse.com>2015-12-09 09:08:21 -0500
committerMichal Marek <mmarek@suse.com>2015-12-09 09:19:23 -0500
commita78f70e8d65e88b9f631d073f68cb26dcd746298 (patch)
treea1d4c83b7acc7351c46f60146e037f29991d789b /scripts/genksyms
parent4c835b57b8de88aef8446867701034128a8a3522 (diff)
genksyms: Handle string literals with spaces in reference files
The reference files use spaces to separate tokens, however, we must preserve spaces inside string literals. Currently the only case in the tree is struct edac_raw_error_desc in <linux/edac.h>: $ KBUILD_SYMTYPES=1 make -s drivers/edac/amd64_edac.symtypes $ mv drivers/edac/amd64_edac.{symtypes,symref} $ KBUILD_SYMTYPES=1 make -s drivers/edac/amd64_edac.symtypes drivers/edac/amd64_edac.c:527: warning: amd64_get_dram_hole_info: modversion changed because of changes in struct edac_raw_error_desc Signed-off-by: Michal Marek <mmarek@suse.com>
Diffstat (limited to 'scripts/genksyms')
-rw-r--r--scripts/genksyms/genksyms.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/scripts/genksyms/genksyms.c b/scripts/genksyms/genksyms.c
index 88632df4381b..dafaf96e0a34 100644
--- a/scripts/genksyms/genksyms.c
+++ b/scripts/genksyms/genksyms.c
@@ -423,13 +423,15 @@ static struct string_list *read_node(FILE *f)
423 struct string_list node = { 423 struct string_list node = {
424 .string = buffer, 424 .string = buffer,
425 .tag = SYM_NORMAL }; 425 .tag = SYM_NORMAL };
426 int c; 426 int c, in_string = 0;
427 427
428 while ((c = fgetc(f)) != EOF) { 428 while ((c = fgetc(f)) != EOF) {
429 if (c == ' ') { 429 if (!in_string && c == ' ') {
430 if (node.string == buffer) 430 if (node.string == buffer)
431 continue; 431 continue;
432 break; 432 break;
433 } else if (c == '"') {
434 in_string = !in_string;
433 } else if (c == '\n') { 435 } else if (c == '\n') {
434 if (node.string == buffer) 436 if (node.string == buffer)
435 return NULL; 437 return NULL;