summaryrefslogtreecommitdiff
path: root/arch/arm/cpu/armv8
diff options
context:
space:
mode:
authorIlias Apalodimas <ilias.apalodimas@linaro.org>2024-03-15 08:43:51 +0200
committerTom Rini <trini@konsulko.com>2024-03-29 10:39:25 -0400
commit7828a1eeb2a1dc7a1e5ef96d97aaf341862191a1 (patch)
tree456fbb9047cf373625cc8e1fdca22fdd7743f7b3 /arch/arm/cpu/armv8
parent4ee32ea0c44f66b977a8de76e26b27a2559bc9ed (diff)
downloadu-boot-7828a1eeb2a1dc7a1e5ef96d97aaf341862191a1.tar.gz
u-boot-7828a1eeb2a1dc7a1e5ef96d97aaf341862191a1.tar.bz2
u-boot-7828a1eeb2a1dc7a1e5ef96d97aaf341862191a1.zip
arm: remove redundant section alignments
Previous patches cleaning up linker symbols, also merged any explicit . = ALIGN(x); into section definitions -- e.g .bss ALIGN(x) : instead of . = ALIGN(x); . bss : {...} However, if the output address is not specified then one will be chosen for the section. This address will be adjusted to fit the alignment requirement of the output section following the strictest alignment of any input section contained within the output section. So let's get rid of the redundant ALIGN directives when they are not needed. While at add comments for the alignment of __bss_start/end since our C runtime setup assembly assumes that __bss_start - __bss_end will be a multiple of 4/8 for armv7 and armv8 respectively. It's worth noting that the alignment is preserved on .rel.dyn for mach-zynq which was explicitly aligning that section on an 8b boundary instead of 4b one. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Diffstat (limited to 'arch/arm/cpu/armv8')
-rw-r--r--arch/arm/cpu/armv8/u-boot.lds9
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/arm/cpu/armv8/u-boot.lds b/arch/arm/cpu/armv8/u-boot.lds
index 147a6e8028..857f44412e 100644
--- a/arch/arm/cpu/armv8/u-boot.lds
+++ b/arch/arm/cpu/armv8/u-boot.lds
@@ -115,7 +115,7 @@ SECTIONS
KEEP(*(SORT(__u_boot_list*)));
}
- .efi_runtime_rel ALIGN(8) : {
+ .efi_runtime_rel : {
__efi_runtime_rel_start = .;
*(.rel*.efi_runtime)
*(.rel*.efi_runtime.*)
@@ -125,7 +125,7 @@ SECTIONS
. = ALIGN(8);
__image_copy_end = .;
- .rela.dyn ALIGN(8) : {
+ .rela.dyn : {
__rel_dyn_start = .;
*(.rela*)
__rel_dyn_end = .;
@@ -133,7 +133,10 @@ SECTIONS
_end = .;
- .bss ALIGN(8): {
+ /*
+ * arch/arm/lib/crt0_64.S assumes __bss_start - __bss_end % 8 == 0
+ */
+ .bss ALIGN(8) : {
__bss_start = .;
*(.bss*)
. = ALIGN(8);