kallsyms: lower alignment on ARM
authorMathias Krause <minipli@googlemail.com>
Sun, 30 Dec 2018 12:36:00 +0000 (13:36 +0100)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Sun, 6 Jan 2019 00:46:51 +0000 (09:46 +0900)
As mentioned in the info pages of gas, the '.align' pseudo op's
interpretation of the alignment value is architecture specific.
It might either be a byte value or taken to the power of two.

On ARM it's actually the latter which leads to unnecessary large
alignments of 16 bytes for 32 bit builds or 256 bytes for 64 bit
builds.

Fix this by switching to '.balign' instead which is consistent
across all architectures.

Signed-off-by: Mathias Krause <minipli@googlemail.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
scripts/kallsyms.c

index 109a1af7e44471bbf7428ffaa10f6b8cc7fc8e25..77cebad0474e5393b7c20c1d65ec22b969df29f5 100644 (file)
@@ -334,10 +334,10 @@ static void write_src(void)
        printf("#include <asm/types.h>\n");
        printf("#if BITS_PER_LONG == 64\n");
        printf("#define PTR .quad\n");
-       printf("#define ALGN .align 8\n");
+       printf("#define ALGN .balign 8\n");
        printf("#else\n");
        printf("#define PTR .long\n");
-       printf("#define ALGN .align 4\n");
+       printf("#define ALGN .balign 4\n");
        printf("#endif\n");
 
        printf("\t.section .rodata, \"a\"\n");