On 2/4/25 23:16, Ilias Apalodimas wrote:
@@ -98,18 +101,20 @@ SECTIONS } #endif- . = ALIGN(8);- .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } + .rodata ALIGN(4096): { + __start_rodata = .; + *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) + . = ALIGN(4096); + __end_rodata = .; + }- . = ALIGN(8);- .data : { + .data ALIGN(4096) : { + __start_data = .; *(.data*) + . = ALIGN(4096); + __end_data = .; }- . = ALIGN(8);- - . = .; - . = ALIGN(8); __u_boot_list : { KEEP(*(SORT(__u_boot_list*))); @@ -136,10 +141,10 @@ SECTIONS /* * arch/arm/lib/crt0_64.S assumes __bss_start - __bss_end % 8 == 0 */ - .bss ALIGN(8) : { + .bss ALIGN(4096) : { __bss_start = .; *(.bss*) - . = ALIGN(8); + . = ALIGN(4096); __bss_end = .; }
You don't need to align .bss because it normally immediately follows .data, and they have the same page permissions.
You've got __u_boot_list, .efi_runtime_rel and .rela.dyn in between. Consider if any of that ought to be moved around to become read-only.
r~

