diff options
Diffstat (limited to 'aarch64-linux-android/lib/ldscripts/armelf_linux_eabi.xu')
-rw-r--r-- | aarch64-linux-android/lib/ldscripts/armelf_linux_eabi.xu | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/aarch64-linux-android/lib/ldscripts/armelf_linux_eabi.xu b/aarch64-linux-android/lib/ldscripts/armelf_linux_eabi.xu index 1187ef8..9d61450 100644 --- a/aarch64-linux-android/lib/ldscripts/armelf_linux_eabi.xu +++ b/aarch64-linux-android/lib/ldscripts/armelf_linux_eabi.xu @@ -85,8 +85,8 @@ SECTIONS /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges .exception_ranges*) } - /* Adjust the address for the data segment. We want to adjust up to - the same address within the page on the next page up. */ + /* Adjust the address for the data segment. For 32 bits we want to align + at exactly a page boundary to make life easier for apriori. */ /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -94,6 +94,11 @@ SECTIONS /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(32 / 8); .preinit_array 0 : { KEEP (*(.preinit_array)) @@ -114,9 +119,7 @@ SECTIONS *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the - .bss section disappears because there are no input sections. - FIXME: Why do we need it? When there is no .bss section, we don't - pad the .data section. */ + .bss section disappears because there are no input sections. */ } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } |