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~

Reply via email to