diff options
Diffstat (limited to 'bl31')
-rw-r--r-- | bl31/bl31.ld.S | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/bl31/bl31.ld.S b/bl31/bl31.ld.S index 43d0ed44..fd53ed82 100644 --- a/bl31/bl31.ld.S +++ b/bl31/bl31.ld.S @@ -66,11 +66,11 @@ SECTIONS __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 @@ SECTIONS 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 <pubsub_events.h> @@ -165,11 +175,12 @@ SECTIONS __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 |