diff options
Diffstat (limited to 'mipsel-linux-android/lib/ldscripts/elf32ltsmip.xc')
-rw-r--r-- | mipsel-linux-android/lib/ldscripts/elf32ltsmip.xc | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xc b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xc index 6aef405..67465bd 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xc +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xc @@ -77,12 +77,10 @@ SECTIONS { KEEP (*(SORT_NONE(.init))) } - .plt : { *(.plt) } - .iplt : { *(.iplt) } .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -112,8 +110,10 @@ SECTIONS /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges .exception_ranges*) } - /* Adjust the address for the data segment. We want to align at exactly - a page boundary to make life easier for apriori. */ + .plt : { *(.plt) } + .iplt : { *(.iplt) } + /* 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. */ . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } @@ -138,8 +138,7 @@ SECTIONS { KEEP (*crtbegin*.o(.init_array)) KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) - KEEP (*(.init_array)) - KEEP (*(EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) + KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin*.o *crtend.o *crtend*.o ) .ctors)) } PROVIDE_HIDDEN (__init_array_end = .); PROVIDE_HIDDEN (__fini_array_start = .); @@ -147,8 +146,7 @@ SECTIONS { KEEP (*crtbegin*.o(.fini_array)) KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) - KEEP (*(.fini_array)) - KEEP (*(EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) + KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin*.o *crtend.o *crtend*.o ) .dtors)) } PROVIDE_HIDDEN (__fini_array_end = .); .ctors : @@ -184,6 +182,7 @@ SECTIONS .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); + .got.plt : { *(.got.plt) } .data : { _fdata = . ; @@ -191,7 +190,6 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); @@ -226,6 +224,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -254,7 +253,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } + .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end ) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } |