aboutsummaryrefslogtreecommitdiff
path: root/scripts/kallsyms.c
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2016-04-01 14:33:48 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2016-04-07 21:57:15 +0100
commitb9b74be163a247fcbb3ef18086cc27123539131c (patch)
treef5d731eb8e7f5b63b3f087c7a6ff5fc463785b3d /scripts/kallsyms.c
parentb67dd2e9bdc0f79a3389e57c51189ed2c2127c00 (diff)
downloadleg-kernel-b9b74be163a247fcbb3ef18086cc27123539131c.tar.gz
ARM: 8555/1: kallsyms: ignore ARM mode switching veneers
On ARM, the linker may emit veneers to deal with relative branch instructions that appear too far away from their targets. Since the second kallsyms pass results in an increase of the kernel size, it may result in additional veneers to be emitted, potentially affecting the output of kallsyms itself if these symbols are visible to it, and for that reason, symbols whose names end in '_veneer' are ignored explicitly. However, when building Thumb2 kernels, such veneers are named differently if they also incur a mode switch, and since they are not filtered by kallsyms, they may cause the build to fail. So filter symbols whose names end in '_from_arm' or '_from_thumb' as well. Tested-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'scripts/kallsyms.c')
-rw-r--r--scripts/kallsyms.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index 638b143ee60f..e287ce60bb11 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -223,6 +223,8 @@ static int symbol_valid(struct sym_entry *s)
static char *special_suffixes[] = {
"_veneer", /* arm */
+ "_from_arm", /* arm */
+ "_from_thumb", /* arm */
NULL };
int i;