2015-12-09 15:06:33

by Michal Marek

[permalink] [raw]
Subject: [PATCH] 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 <[email protected]>
---
scripts/genksyms/genksyms.c | 6 ++++--
1 file 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)
struct string_list node = {
.string = buffer,
.tag = SYM_NORMAL };
- int c;
+ int c, in_string = 0;

while ((c = fgetc(f)) != EOF) {
- if (c == ' ') {
+ if (!in_string && c == ' ') {
if (node.string == buffer)
continue;
break;
+ } else if (c == '"') {
+ in_string = !in_string;
} else if (c == '\n') {
if (node.string == buffer)
return NULL;
--
2.1.4


2015-12-10 10:08:09

by Michal Marek

[permalink] [raw]
Subject: Re: [PATCH] genksyms: Handle string literals with spaces in reference files

Dne 9.12.2015 v 16:06 Michal Marek napsal(a):
> 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 <[email protected]>

Applied to kbuild.git#kbuild.

Michal