Message ID | 20230512223105.131678-1-CFSworks@gmail.com |
---|---|
State | Accepted |
Delegated to: | Tom Rini |
Headers | show |
Series | arm: set alignment properly for asm funcs | expand |
On Fri, May 12, 2023 at 04:31:05PM -0600, Sam Edwards wrote: > ARM requires a 4-byte alignment on all ARM code (though this > requirement is relaxed to 2-byte for some THUMB code) and we > should be explicit about that here. > > GAS has its own fix for this[1] that forces proper alignment > on any section containing assembled instructions, but this is > not universal: Clang's and other gaslike assemblers lack this > implicit alignment. Whether or not this is considered a bug in > those assemblers, it is better to ask directly for what we want. > > [1]: https://sourceware.org/bugzilla/show_bug.cgi?id=12931 > > Signed-off-by: Sam Edwards <CFSworks@gmail.com> Applied to u-boot/next, thanks!
diff --git a/arch/arm/include/asm/linkage.h b/arch/arm/include/asm/linkage.h index dbe4b4e31a..73bf25ba4e 100644 --- a/arch/arm/include/asm/linkage.h +++ b/arch/arm/include/asm/linkage.h @@ -1,7 +1,7 @@ #ifndef __ASM_LINKAGE_H #define __ASM_LINKAGE_H -#define __ALIGN .align 0 -#define __ALIGN_STR ".align 0" +#define __ALIGN .p2align 2 +#define __ALIGN_STR ".p2align 2" #endif
ARM requires a 4-byte alignment on all ARM code (though this requirement is relaxed to 2-byte for some THUMB code) and we should be explicit about that here. GAS has its own fix for this[1] that forces proper alignment on any section containing assembled instructions, but this is not universal: Clang's and other gaslike assemblers lack this implicit alignment. Whether or not this is considered a bug in those assemblers, it is better to ask directly for what we want. [1]: https://sourceware.org/bugzilla/show_bug.cgi?id=12931 Signed-off-by: Sam Edwards <CFSworks@gmail.com> --- arch/arm/include/asm/linkage.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)