]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ARM: 8555/1: kallsyms: ignore ARM mode switching veneers
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Fri, 1 Apr 2016 13:33:48 +0000 (14:33 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 7 Apr 2016 20:57:15 +0000 (21:57 +0100)
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>
scripts/kallsyms.c

index 638b143ee60f4246cc16d67936bc62095a66c646..e287ce60bb11c39ed4339565d09601bc78b10c00 100644 (file)
@@ -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;