diff --git a/bl31/bl31.ld.S b/bl31/bl31.ld.S index 43d0ed4..fd53ed8 100644 --- a/bl31/bl31.ld.S +++ b/bl31/bl31.ld.S @@ -66,11 +66,11 @@ __CPU_OPS_END__ = .; /* - * Keep the .got section in the RO section as the it is patched + * Keep the .got section in the RO section as it is patched * prior to enabling the MMU and having the .got in RO is better for - * security. + * security. GOT is a table of addresses so ensure 8-byte alignment. */ - . = ALIGN(16); + . = ALIGN(8); __GOT_START__ = .; *(.got) __GOT_END__ = .; @@ -112,6 +112,16 @@ KEEP(*(cpu_ops)) __CPU_OPS_END__ = .; + /* + * Keep the .got section in the RO section as it is patched + * prior to enabling the MMU and having the .got in RO is better for + * security. GOT is a table of addresses so ensure 8-byte alignment. + */ + . = ALIGN(8); + __GOT_START__ = .; + *(.got) + __GOT_END__ = .; + /* Place pubsub sections for events */ . = ALIGN(8); #include @@ -165,11 +175,12 @@ __DATA_END__ = .; } >RAM - . = ALIGN(16); /* * .rela.dyn needs to come after .data for the read-elf utility to parse - * this section correctly. + * this section correctly. Ensure 8-byte alignment so that the fields of + * RELA data structure are aligned. */ + . = ALIGN(8); __RELA_START__ = .; .rela.dyn . : { } >RAM