summaryrefslogtreecommitdiff
path: root/aarch64-linux-android/lib/ldscripts/aarch64elfb.xr
diff options
context:
space:
mode:
Diffstat (limited to 'aarch64-linux-android/lib/ldscripts/aarch64elfb.xr')
-rw-r--r--aarch64-linux-android/lib/ldscripts/aarch64elfb.xr13
1 files changed, 8 insertions, 5 deletions
diff --git a/aarch64-linux-android/lib/ldscripts/aarch64elfb.xr b/aarch64-linux-android/lib/ldscripts/aarch64elfb.xr
index 3fd1e77..7dea629 100644
--- a/aarch64-linux-android/lib/ldscripts/aarch64elfb.xr
+++ b/aarch64-linux-android/lib/ldscripts/aarch64elfb.xr
@@ -59,8 +59,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.*) }
@@ -68,6 +68,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))
@@ -88,9 +93,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) }