diff options
Diffstat (limited to 'mipsel-linux-android/lib')
82 files changed, 590 insertions, 656 deletions
diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmip.x b/mipsel-linux-android/lib/ldscripts/elf32btsmip.x index 2a666fc..e78ba99 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmip.x +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmip.x @@ -76,12 +76,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.*) @@ -111,8 +109,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)) } @@ -137,8 +137,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 = .); @@ -146,8 +145,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 : @@ -182,6 +180,7 @@ SECTIONS .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } . = DATA_SEGMENT_RELRO_END (0, .); + .got.plt : { *(.got.plt) } .data : { _fdata = . ; @@ -189,7 +188,6 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); @@ -224,6 +222,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -252,7 +251,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xbn b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xbn index fd1d40a..3207516 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xbn +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xbn @@ -75,12 +75,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.*) @@ -110,8 +108,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. */ . = .; /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } @@ -136,8 +136,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 = .); @@ -145,8 +144,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 : @@ -180,6 +178,7 @@ SECTIONS } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } + .got.plt : { *(.got.plt) } .data : { _fdata = . ; @@ -187,7 +186,6 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); @@ -222,6 +220,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -249,7 +248,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xc b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xc index b4ec661..d531fd1 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xc +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xc @@ -78,12 +78,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.*) @@ -113,8 +111,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)) } @@ -139,8 +139,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 = .); @@ -148,8 +147,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 .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } . = 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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xd b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xd index fe9158b..184f0e1 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xd +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xd @@ -75,12 +75,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.*) @@ -110,8 +108,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)) } @@ -136,8 +136,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 = .); @@ -145,8 +144,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 : @@ -181,6 +179,7 @@ SECTIONS .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } . = DATA_SEGMENT_RELRO_END (0, .); + .got.plt : { *(.got.plt) } .data : { _fdata = . ; @@ -188,7 +187,6 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); @@ -223,6 +221,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -251,7 +250,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xdc b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xdc index e0f5b4b..e478277 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xdc +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xdc @@ -78,12 +78,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.*) @@ -113,8 +111,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)) } @@ -139,8 +139,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 = .); @@ -148,8 +147,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 .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } . = 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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xdw b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xdw index debe09c..366802c 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xdw +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xdw @@ -78,12 +78,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.*) @@ -113,8 +111,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)) } @@ -139,8 +139,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 = .); @@ -148,8 +147,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 : @@ -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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xn b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xn index ec11192..eee3cb4 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xn +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xn @@ -75,12 +75,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.*) @@ -110,8 +108,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)) } @@ -136,8 +136,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 = .); @@ -145,8 +144,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 : @@ -181,6 +179,7 @@ SECTIONS .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } . = DATA_SEGMENT_RELRO_END (0, .); + .got.plt : { *(.got.plt) } .data : { _fdata = . ; @@ -188,7 +187,6 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); @@ -223,6 +221,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -251,7 +250,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xr b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xr index a99655e..8e121a0 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xr +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xr @@ -73,8 +73,6 @@ SECTIONS { KEEP (*(SORT_NONE(.init))) } - .plt 0 : { *(.plt) } - .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) @@ -99,8 +97,10 @@ 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 align at exactly - a page boundary to make life easier for apriori. */ + .plt 0 : { *(.plt) } + .iplt 0 : { *(.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. */ /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -118,12 +118,12 @@ SECTIONS KEEP (*(.preinit_array)) } .jcr 0 : { KEEP (*(.jcr)) } + .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } - .got.plt 0 : { *(.got.plt) } .got 0 : { *(.got) } /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so @@ -172,7 +172,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xs b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xs index 7549e07..0e7bdd9 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xs +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xs @@ -70,12 +70,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.*) @@ -100,8 +98,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)) } @@ -123,15 +123,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -165,6 +163,7 @@ SECTIONS .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } . = DATA_SEGMENT_RELRO_END (0, .); + .got.plt : { *(.got.plt) } .data : { _fdata = . ; @@ -172,7 +171,6 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); @@ -209,6 +207,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -237,7 +236,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xsc b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xsc index 1dae386..cd616ed 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xsc +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xsc @@ -70,12 +70,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.*) @@ -100,8 +98,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)) } @@ -123,15 +123,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -165,6 +163,7 @@ SECTIONS .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } . = DATA_SEGMENT_RELRO_END (0, .); + .got.plt : { *(.got.plt) } .data : { _fdata = . ; @@ -172,7 +171,6 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); @@ -209,6 +207,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -237,7 +236,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xsw b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xsw index 0356c8f..70b1a52 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xsw +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xsw @@ -69,12 +69,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.*) @@ -99,8 +97,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)) } @@ -122,15 +122,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -208,6 +206,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -236,7 +235,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xu b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xu index ac7027c..16e3778 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xu +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xu @@ -73,8 +73,6 @@ SECTIONS { KEEP (*(SORT_NONE(.init))) } - .plt 0 : { *(.plt) } - .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) @@ -99,8 +97,10 @@ 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 align at exactly - a page boundary to make life easier for apriori. */ + .plt 0 : { *(.plt) } + .iplt 0 : { *(.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. */ /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -118,13 +118,13 @@ SECTIONS KEEP (*(.preinit_array)) } .jcr 0 : { KEEP (*(.jcr)) } + .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } - .got.plt 0 : { *(.got.plt) } .got 0 : { *(.got) } /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so @@ -173,7 +173,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xw b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xw index 88be4e5..0669a31 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmip.xw +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmip.xw @@ -78,12 +78,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.*) @@ -113,8 +111,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)) } @@ -139,8 +139,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 = .); @@ -148,8 +147,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 : @@ -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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.x b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.x index 188c077..f189625 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.x +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.x @@ -81,7 +81,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -111,8 +111,8 @@ 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. */ + /* 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)) } @@ -137,8 +137,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 = .); @@ -146,8 +145,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 : @@ -225,6 +223,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -253,7 +252,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xbn b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xbn index 9f419de..587cb97 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xbn +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xbn @@ -80,7 +80,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -110,8 +110,8 @@ 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. */ + /* 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 : ONLY_IF_RW { KEEP (*(.eh_frame)) } @@ -136,8 +136,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 = .); @@ -145,8 +144,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 : @@ -223,6 +221,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -250,7 +249,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xc b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xc index 58f367e..279b891 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xc +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xc @@ -83,7 +83,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -113,8 +113,8 @@ 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. */ + /* 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)) } @@ -139,8 +139,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 = .); @@ -148,8 +147,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 : @@ -227,6 +225,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -255,7 +254,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xd b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xd index 89a0dc6..1fc574c 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xd +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xd @@ -80,7 +80,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -110,8 +110,8 @@ 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. */ + /* 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)) } @@ -136,8 +136,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 = .); @@ -145,8 +144,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 : @@ -224,6 +222,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -252,7 +251,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xdc b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xdc index c205ee0..bb65542 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xdc +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xdc @@ -83,7 +83,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -113,8 +113,8 @@ 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. */ + /* 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)) } @@ -139,8 +139,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 = .); @@ -148,8 +147,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 : @@ -227,6 +225,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -255,7 +254,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xdw b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xdw index 675cfc1..0bd27a2 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xdw +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xdw @@ -83,7 +83,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -113,8 +113,8 @@ 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. */ + /* 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)) } @@ -139,8 +139,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 = .); @@ -148,8 +147,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 : @@ -227,6 +225,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -255,7 +254,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xn b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xn index 1d38329..f8732d0 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xn +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xn @@ -80,7 +80,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -110,8 +110,8 @@ 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. */ + /* 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)) } @@ -136,8 +136,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 = .); @@ -145,8 +144,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 : @@ -224,6 +222,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -252,7 +251,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xr b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xr index 856b6a0..2de0183 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xr +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xr @@ -99,8 +99,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 align at exactly - a page boundary to make life easier for apriori. */ + /* 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.*) } @@ -173,7 +173,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xs b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xs index 2a3d601..8bc90d5 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xs +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xs @@ -75,7 +75,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -100,8 +100,8 @@ 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. */ + /* 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)) } @@ -123,15 +123,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -210,6 +208,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -238,7 +237,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xsc b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xsc index 4b5c382..0b47e37 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xsc +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xsc @@ -75,7 +75,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -100,8 +100,8 @@ 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. */ + /* 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)) } @@ -123,15 +123,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -210,6 +208,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -238,7 +237,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xsw b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xsw index a404d62..72dade3 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xsw +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xsw @@ -74,7 +74,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -99,8 +99,8 @@ 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. */ + /* 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)) } @@ -122,15 +122,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -209,6 +207,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -237,7 +236,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xu b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xu index 889c150..0814b66 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xu +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xu @@ -99,8 +99,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 align at exactly - a page boundary to make life easier for apriori. */ + /* 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.*) } @@ -174,7 +174,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xw b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xw index bcfc1fd..6c7503c 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xw +++ b/mipsel-linux-android/lib/ldscripts/elf32btsmipn32.xw @@ -83,7 +83,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -113,8 +113,8 @@ 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. */ + /* 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)) } @@ -139,8 +139,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 = .); @@ -148,8 +147,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 : @@ -227,6 +225,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -255,7 +254,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.x b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.x index b32106c..630f66f 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.x +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.x @@ -75,12 +75,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.*) @@ -110,8 +108,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)) } @@ -136,8 +136,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 = .); @@ -145,8 +144,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 : @@ -182,6 +180,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 = . ; @@ -189,7 +188,6 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); @@ -224,6 +222,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -252,7 +251,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xbn b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xbn index fe04502..4785dcb 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xbn +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xbn @@ -74,12 +74,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.*) @@ -109,8 +107,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. */ . = .; /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } @@ -135,8 +135,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 = .); @@ -144,8 +143,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 : @@ -180,6 +178,7 @@ SECTIONS .jcr : { KEEP (*(.jcr)) } .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) } + .got.plt : { *(.got.plt) } .data : { _fdata = . ; @@ -187,7 +186,6 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); @@ -222,6 +220,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -249,7 +248,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) } 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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xd b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xd index 840fe68..0826831 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xd +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xd @@ -74,12 +74,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.*) @@ -109,8 +107,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)) } @@ -135,8 +135,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 = .); @@ -144,8 +143,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 : @@ -181,6 +179,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 = . ; @@ -188,7 +187,6 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); @@ -223,6 +221,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -251,7 +250,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xdc b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xdc index 606fa1a..b9f8e85 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xdc +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xdc @@ -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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xdw b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xdw index 18a0e20..fffe393 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xdw +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xdw @@ -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 : @@ -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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xn b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xn index c3edac9..117eac0 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xn +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xn @@ -74,12 +74,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.*) @@ -109,8 +107,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)) } @@ -135,8 +135,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 = .); @@ -144,8 +143,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 : @@ -181,6 +179,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 = . ; @@ -188,7 +187,6 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); @@ -223,6 +221,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -251,7 +250,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xr b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xr index 2b12663..46651ea 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xr +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xr @@ -72,8 +72,6 @@ SECTIONS { KEEP (*(SORT_NONE(.init))) } - .plt 0 : { *(.plt) } - .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) @@ -98,8 +96,10 @@ 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 align at exactly - a page boundary to make life easier for apriori. */ + .plt 0 : { *(.plt) } + .iplt 0 : { *(.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. */ /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -118,12 +118,12 @@ SECTIONS } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } + .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } - .got.plt 0 : { *(.got.plt) } .got 0 : { *(.got) } /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so @@ -172,7 +172,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xs b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xs index 1370f41..771ecc4 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xs +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xs @@ -69,12 +69,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.*) @@ -99,8 +97,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)) } @@ -122,15 +122,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -165,6 +163,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 = . ; @@ -172,7 +171,6 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); @@ -209,6 +207,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -237,7 +236,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xsc b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xsc index 1996c24..ab72099 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xsc +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xsc @@ -69,12 +69,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.*) @@ -99,8 +97,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)) } @@ -122,15 +122,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -165,6 +163,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 = . ; @@ -172,7 +171,6 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); @@ -209,6 +207,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -237,7 +236,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xsw b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xsw index 7553686..bd0f10d 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xsw +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xsw @@ -68,12 +68,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.*) @@ -98,8 +96,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)) } @@ -121,15 +121,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -208,6 +206,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -236,7 +235,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xu b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xu index 4aa968b..bdf0d6f 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xu +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xu @@ -72,8 +72,6 @@ SECTIONS { KEEP (*(SORT_NONE(.init))) } - .plt 0 : { *(.plt) } - .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) @@ -98,8 +96,10 @@ 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 align at exactly - a page boundary to make life easier for apriori. */ + .plt 0 : { *(.plt) } + .iplt 0 : { *(.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. */ /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -118,13 +118,13 @@ SECTIONS } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } + .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } - .got.plt 0 : { *(.got.plt) } .got 0 : { *(.got) } /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so @@ -173,7 +173,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xw b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xw index 4c6a854..b92d852 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xw +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmip.xw @@ -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 : @@ -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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.x b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.x index 7c9ef00..55d8e0d 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.x +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.x @@ -81,7 +81,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -111,8 +111,8 @@ 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. */ + /* 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)) } @@ -137,8 +137,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 = .); @@ -146,8 +145,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 : @@ -225,6 +223,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -253,7 +252,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xbn b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xbn index 19c4a18..b1f9087 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xbn +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xbn @@ -80,7 +80,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -110,8 +110,8 @@ 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. */ + /* 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 : ONLY_IF_RW { KEEP (*(.eh_frame)) } @@ -136,8 +136,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 = .); @@ -145,8 +144,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 : @@ -223,6 +221,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -250,7 +249,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xc b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xc index 1b2b9a7..a1638b8 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xc +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xc @@ -83,7 +83,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -113,8 +113,8 @@ 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. */ + /* 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)) } @@ -139,8 +139,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 = .); @@ -148,8 +147,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 : @@ -227,6 +225,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -255,7 +254,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xd b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xd index 925d286..01fbee8 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xd +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xd @@ -80,7 +80,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -110,8 +110,8 @@ 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. */ + /* 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)) } @@ -136,8 +136,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 = .); @@ -145,8 +144,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 : @@ -224,6 +222,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -252,7 +251,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xdc b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xdc index f9f36dd..071e6b6 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xdc +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xdc @@ -83,7 +83,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -113,8 +113,8 @@ 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. */ + /* 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)) } @@ -139,8 +139,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 = .); @@ -148,8 +147,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 : @@ -227,6 +225,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -255,7 +254,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xdw b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xdw index 79beb83..6f2a2ed 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xdw +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xdw @@ -83,7 +83,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -113,8 +113,8 @@ 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. */ + /* 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)) } @@ -139,8 +139,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 = .); @@ -148,8 +147,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 : @@ -227,6 +225,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -255,7 +254,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xn b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xn index 4c8ff53..d5fe360 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xn +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xn @@ -80,7 +80,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -110,8 +110,8 @@ 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. */ + /* 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)) } @@ -136,8 +136,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 = .); @@ -145,8 +144,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 : @@ -224,6 +222,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -252,7 +251,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xr b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xr index 43a0712..8340d74 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xr +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xr @@ -99,8 +99,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 align at exactly - a page boundary to make life easier for apriori. */ + /* 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.*) } @@ -173,7 +173,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xs b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xs index e5a702b..9ebc371 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xs +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xs @@ -75,7 +75,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -100,8 +100,8 @@ 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. */ + /* 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)) } @@ -123,15 +123,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -210,6 +208,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -238,7 +237,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xsc b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xsc index f51cd29..b26e9cd 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xsc +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xsc @@ -75,7 +75,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -100,8 +100,8 @@ 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. */ + /* 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)) } @@ -123,15 +123,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -210,6 +208,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -238,7 +237,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xsw b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xsw index acd77b1..73cddbc 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xsw +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xsw @@ -74,7 +74,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -99,8 +99,8 @@ 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. */ + /* 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)) } @@ -122,15 +122,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -209,6 +207,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -237,7 +236,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xu b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xu index 60d9760..cfe9fcb 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xu +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xu @@ -99,8 +99,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 align at exactly - a page boundary to make life easier for apriori. */ + /* 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.*) } @@ -174,7 +174,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xw b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xw index 1302c96..76a95fe 100644 --- a/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xw +++ b/mipsel-linux-android/lib/ldscripts/elf32ltsmipn32.xw @@ -83,7 +83,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -113,8 +113,8 @@ 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. */ + /* 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)) } @@ -139,8 +139,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 = .); @@ -148,8 +147,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 : @@ -227,6 +225,7 @@ SECTIONS . = ALIGN(32 / 8); } . = ALIGN(32 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -255,7 +254,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64btsmip.x b/mipsel-linux-android/lib/ldscripts/elf64btsmip.x index f0101a9..2d469cd 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64btsmip.x +++ b/mipsel-linux-android/lib/ldscripts/elf64btsmip.x @@ -80,7 +80,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -110,9 +110,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -136,8 +136,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 = .); @@ -145,8 +144,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 : @@ -224,6 +222,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -252,7 +251,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xbn b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xbn index 0e6b250..60ebe5d 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xbn +++ b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xbn @@ -79,7 +79,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -109,8 +109,8 @@ 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. */ + /* 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 : ONLY_IF_RW { KEEP (*(.eh_frame)) } @@ -135,8 +135,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 = .); @@ -144,8 +143,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 : @@ -222,6 +220,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -249,7 +248,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xc b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xc index 4109c1a..117a43b 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xc +++ b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xc @@ -82,7 +82,7 @@ SECTIONS .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,9 +112,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -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 : @@ -226,6 +224,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xd b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xd index 6aa6494..7a833af 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xd +++ b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xd @@ -79,7 +79,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -109,9 +109,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -135,8 +135,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 = .); @@ -144,8 +143,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 : @@ -223,6 +221,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -251,7 +250,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xdc b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xdc index b95e092..aac84f3 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xdc +++ b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xdc @@ -82,7 +82,7 @@ SECTIONS .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,9 +112,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -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 : @@ -226,6 +224,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xdw b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xdw index d56ff8e..440d77c 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xdw +++ b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xdw @@ -82,7 +82,7 @@ SECTIONS .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,9 +112,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -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 : @@ -226,6 +224,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xn b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xn index edef658..7fe02cc 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xn +++ b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xn @@ -79,7 +79,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -109,9 +109,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -135,8 +135,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 = .); @@ -144,8 +143,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 : @@ -223,6 +221,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -251,7 +250,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xr b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xr index afe1f95..9bf491a 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xr +++ b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xr @@ -98,8 +98,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 align at exactly - a page boundary to make life easier for apriori. */ + /* 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.*) } @@ -172,7 +172,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xs b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xs index 8c3996b..30bc562 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xs +++ b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xs @@ -75,7 +75,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -100,9 +100,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -123,15 +123,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -210,6 +208,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -238,7 +237,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xsc b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xsc index 3a45706..f09b2fd 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xsc +++ b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xsc @@ -75,7 +75,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -100,9 +100,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -123,15 +123,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -210,6 +208,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -238,7 +237,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xsw b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xsw index f507859..3b219ca 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xsw +++ b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xsw @@ -74,7 +74,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -99,9 +99,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -122,15 +122,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -209,6 +207,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -237,7 +236,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xu b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xu index 93793f5..53803cd 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xu +++ b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xu @@ -98,8 +98,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 align at exactly - a page boundary to make life easier for apriori. */ + /* 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.*) } @@ -173,7 +173,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xw b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xw index 9ce395d..3da5347 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64btsmip.xw +++ b/mipsel-linux-android/lib/ldscripts/elf64btsmip.xw @@ -82,7 +82,7 @@ SECTIONS .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,9 +112,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -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 : @@ -226,6 +224,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.x b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.x index a59f71c..ee27fd0 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.x +++ b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.x @@ -80,7 +80,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -110,9 +110,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -136,8 +136,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 = .); @@ -145,8 +144,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 : @@ -224,6 +222,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -252,7 +251,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xbn b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xbn index 2e094e3..3db7f56 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xbn +++ b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xbn @@ -79,7 +79,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -109,8 +109,8 @@ 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. */ + /* 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 : ONLY_IF_RW { KEEP (*(.eh_frame)) } @@ -135,8 +135,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 = .); @@ -144,8 +143,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 : @@ -222,6 +220,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -249,7 +248,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xc b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xc index 36e3c6e..1047e03 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xc +++ b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xc @@ -82,7 +82,7 @@ SECTIONS .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,9 +112,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -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 : @@ -226,6 +224,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xd b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xd index 0c05bb0..8dd98de 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xd +++ b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xd @@ -79,7 +79,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -109,9 +109,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -135,8 +135,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 = .); @@ -144,8 +143,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 : @@ -223,6 +221,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -251,7 +250,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xdc b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xdc index e6f0b33..5f1ada7 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xdc +++ b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xdc @@ -82,7 +82,7 @@ SECTIONS .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,9 +112,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -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 : @@ -226,6 +224,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xdw b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xdw index 3987955..63b4a0e 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xdw +++ b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xdw @@ -82,7 +82,7 @@ SECTIONS .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,9 +112,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -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 : @@ -226,6 +224,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xn b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xn index 4e21f95..de12b00 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xn +++ b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xn @@ -79,7 +79,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -109,9 +109,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -135,8 +135,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 = .); @@ -144,8 +143,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 : @@ -223,6 +221,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -251,7 +250,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xr b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xr index 287bfb7..0a5a9e4 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xr +++ b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xr @@ -98,8 +98,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 align at exactly - a page boundary to make life easier for apriori. */ + /* 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.*) } @@ -172,7 +172,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xs b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xs index 4176b7e..a03ac25 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xs +++ b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xs @@ -75,7 +75,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -100,9 +100,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -123,15 +123,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -210,6 +208,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -238,7 +237,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xsc b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xsc index 6a8b05c..72db9b9 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xsc +++ b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xsc @@ -75,7 +75,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -100,9 +100,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -123,15 +123,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -210,6 +208,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -238,7 +237,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xsw b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xsw index b6e4dda..694d0ca 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xsw +++ b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xsw @@ -74,7 +74,7 @@ SECTIONS .text : { _ftext = . ; - *(.text.unlikely .text.*_unlikely) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) @@ -99,9 +99,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -122,15 +122,13 @@ 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)) } .fini_array : { 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)) } .ctors : { @@ -209,6 +207,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; @@ -237,7 +236,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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xu b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xu index 297326b..9172f14 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xu +++ b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xu @@ -98,8 +98,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 align at exactly - a page boundary to make life easier for apriori. */ + /* 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.*) } @@ -173,7 +173,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .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) } diff --git a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xw b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xw index c8a00f8..0419c03 100644 --- a/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xw +++ b/mipsel-linux-android/lib/ldscripts/elf64ltsmip.xw @@ -82,7 +82,7 @@ SECTIONS .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,9 +112,9 @@ 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. */ - . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); + /* 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)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } @@ -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 : @@ -226,6 +224,7 @@ SECTIONS . = ALIGN(64 / 8); } . = ALIGN(64 / 8); + . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } diff --git a/mipsel-linux-android/lib/libatomic.a b/mipsel-linux-android/lib/libatomic.a Binary files differindex 091892b..b2187ab 100644 --- a/mipsel-linux-android/lib/libatomic.a +++ b/mipsel-linux-android/lib/libatomic.a diff --git a/mipsel-linux-android/lib/libgomp.a b/mipsel-linux-android/lib/libgomp.a Binary files differindex 5f36d49..87d7a5b 100644 --- a/mipsel-linux-android/lib/libgomp.a +++ b/mipsel-linux-android/lib/libgomp.a diff --git a/mipsel-linux-android/lib/mips-r2/libatomic.a b/mipsel-linux-android/lib/mips-r2/libatomic.a Binary files differindex 9d82b10..05adf55 100644 --- a/mipsel-linux-android/lib/mips-r2/libatomic.a +++ b/mipsel-linux-android/lib/mips-r2/libatomic.a diff --git a/mipsel-linux-android/lib/mips-r2/libgomp.a b/mipsel-linux-android/lib/mips-r2/libgomp.a Binary files differindex 35b9fe4..4b6e054 100644 --- a/mipsel-linux-android/lib/mips-r2/libgomp.a +++ b/mipsel-linux-android/lib/mips-r2/libgomp.a |