kallsyms: lower alignment on ARM
diff mbox series

Message ID 1546173360-25573-1-git-send-email-minipli@googlemail.com
State In Next
Commit 72d3ebb929de339f991fc49b58942d2d5ecdb753
Headers show
Series
  • kallsyms: lower alignment on ARM
Related show

Commit Message

Mathias Krause Dec. 30, 2018, 12:36 p.m. UTC
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>
---
 scripts/kallsyms.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Masahiro Yamada Jan. 3, 2019, 12:30 a.m. UTC | #1
On Sun, Dec 30, 2018 at 9:37 PM Mathias Krause <minipli@googlemail.com> wrote:
>
> 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>


Applied to linux-kbuild.
Thanks!


> ---
>  scripts/kallsyms.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
> index 109a1af7e444..77cebad0474e 100644
> --- a/scripts/kallsyms.c
> +++ b/scripts/kallsyms.c
> @@ -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");
> --
> 2.19.2
>

Patch
diff mbox series

diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index 109a1af7e444..77cebad0474e 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -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");