From f3462aa952cfc8f4b095103cb9b3d306dd216558 Mon Sep 17 00:00:00 2001 From: Andi Kleen Date: Wed, 23 Oct 2013 15:07:53 +0200 Subject: Kbuild: Handle longer symbols in kallsyms.c Also warn for too long symbols v2: Add missing newline. Use 255 max (Joe Perches) Signed-off-by: Andi Kleen Signed-off-by: Michal Marek --- scripts/kallsyms.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'scripts/kallsyms.c') diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index 487ac6f37ca2..967522ab4f39 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c @@ -27,7 +27,7 @@ #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) #endif -#define KSYM_NAME_LEN 128 +#define KSYM_NAME_LEN 255 struct sym_entry { unsigned long long addr; @@ -111,6 +111,12 @@ static int read_symbol(FILE *in, struct sym_entry *s) fprintf(stderr, "Read error or end of file.\n"); return -1; } + if (strlen(str) > KSYM_NAME_LEN) { + fprintf(stderr, "Symbol %s too long for kallsyms (%lu vs %d).\n" + "Please increase KSYM_NAME_LEN both in kernel and kallsyms.c\n", + str, strlen(str), KSYM_NAME_LEN); + return -1; + } sym = str; /* skip prefix char */ -- cgit v1.2.3-55-g7522 From 6f62259b1a7696a335d5c3f2c89cce1d28912bf2 Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Fri, 8 Nov 2013 00:45:01 -0200 Subject: scripts: kallsyms: Use %zu to print 'size_t' Commit f3462aa95 (Kbuild: Handle longer symbols in kallsyms.c) introduced the following warning on ARM: scripts/kallsyms.c:121:4: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'size_t' [-Wformat] Use %zu to print 'size_t'. Signed-off-by: Fabio Estevam Signed-off-by: Michal Marek --- scripts/kallsyms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'scripts/kallsyms.c') diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index 967522ab4f39..48afa2020b00 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c @@ -112,7 +112,7 @@ static int read_symbol(FILE *in, struct sym_entry *s) return -1; } if (strlen(str) > KSYM_NAME_LEN) { - fprintf(stderr, "Symbol %s too long for kallsyms (%lu vs %d).\n" + fprintf(stderr, "Symbol %s too long for kallsyms (%zu vs %d).\n" "Please increase KSYM_NAME_LEN both in kernel and kallsyms.c\n", str, strlen(str), KSYM_NAME_LEN); return -1; -- cgit v1.2.3-55-g7522 From 480f439c3db0d45d817d66caf3fa8e81a6fac01a Mon Sep 17 00:00:00 2001 From: Michal Marek Date: Mon, 11 Nov 2013 14:23:08 +0100 Subject: kallsyms: Revert back to 128 max symbol length This reverts commits f3462aa (Kbuild: Handle longer symbols in kallsyms.c) and eea0e9c (kbuild: Increase kallsyms max symbol length) except for the added overflow check. The reason is a regression caused by increasing the buffer: http://marc.info/?l=linux-kernel&m=138387700415675. Reported-by: Fengguang Wu Cc: Andi Kleen Cc: Joe Mario Signed-off-by: Michal Marek --- include/linux/kallsyms.h | 2 +- scripts/kallsyms.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'scripts/kallsyms.c') diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h index 56488708da4b..6883e197acb9 100644 --- a/include/linux/kallsyms.h +++ b/include/linux/kallsyms.h @@ -9,7 +9,7 @@ #include #include -#define KSYM_NAME_LEN 255 +#define KSYM_NAME_LEN 128 #define KSYM_SYMBOL_LEN (sizeof("%s+%#lx/%#lx [%s]") + (KSYM_NAME_LEN - 1) + \ 2*(BITS_PER_LONG*3/10) + (MODULE_NAME_LEN - 1) + 1) diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index 48afa2020b00..518da86ce62a 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c @@ -27,7 +27,7 @@ #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) #endif -#define KSYM_NAME_LEN 255 +#define KSYM_NAME_LEN 128 struct sym_entry { unsigned long long addr; -- cgit v1.2.3-55-g7522