From 51b26797b4a05304e4d00e2fd77810e38147bb7f Mon Sep 17 00:00:00 2001 From: Denis Chertykov Date: Tue, 11 Nov 2014 20:44:03 +0300 Subject: [PATCH] * avrtiny.sc: Apply avr.sc fixes. --- ld/ChangeLog | 4 ++++ ld/scripttempl/avrtiny.sc | 60 +++++++++++++++++------------------------------ 2 files changed, 26 insertions(+), 38 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index ecc9fa7..ec4be3f 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,7 @@ +2014-10-08 Senthil Kumar Selvaraj + + * avrtiny.sc: Apply avr.sc fixes. + 2014-11-04 Alan Modra * emultempl/spu_icache.o_c: Regenerate. diff --git a/ld/scripttempl/avrtiny.sc b/ld/scripttempl/avrtiny.sc index ab7294b..70c5d92 100644 --- a/ld/scripttempl/avrtiny.sc +++ b/ld/scripttempl/avrtiny.sc @@ -96,24 +96,29 @@ SECTIONS KEEP(*(.vectors)) /* For data that needs to reside in the lower 64k of progmem. */ - *(.progmem.gcc*) - *(.progmem*) - ${RELOCATING+. = ALIGN(2);} + ${RELOCATING+ *(.progmem.gcc*)} + /* PR 13812: Placing the trampolines here gives a better chance + that they will be in range of the code that uses them. */ + ${RELOCATING+. = ALIGN(2);} ${CONSTRUCTING+ __trampolines_start = . ; } /* The jump trampolines for the 16-bit limited relocs will reside here. */ *(.trampolines) - *(.trampolines*) + ${RELOCATING+ *(.trampolines*)} ${CONSTRUCTING+ __trampolines_end = . ; } + ${RELOCATING+ *(.progmem*)} + + ${RELOCATING+. = ALIGN(2);} + /* For future tablejump instruction arrays for 3 byte pc devices. We don't relax jump/call instructions within these sections. */ *(.jumptables) - *(.jumptables*) + ${RELOCATING+ *(.jumptables*)} /* For code that needs to reside in the lower 128k progmem. */ *(.lowtext) - *(.lowtext*) + ${RELOCATING+ *(.lowtext*)} ${CONSTRUCTING+ __ctors_start = . ; } ${CONSTRUCTING+ *(.ctors) } @@ -148,7 +153,7 @@ SECTIONS KEEP (*(.init9)) *(.text) ${RELOCATING+. = ALIGN(2);} - *(.text.*) + ${RELOCATING+ *(.text.*)} ${RELOCATING+. = ALIGN(2);} *(.fini9) /* _exit() starts here. */ KEEP (*(.fini9)) @@ -173,25 +178,24 @@ SECTIONS ${RELOCATING+ _etext = . ; } } ${RELOCATING+ > text} - .data ${RELOCATING-0} : ${RELOCATING+AT (ADDR (.text) + SIZEOF (.text))} + .data ${RELOCATING-0} : { ${RELOCATING+ PROVIDE (__data_start = .) ; } *(.data) - KEEP (*(.data)) - *(.data*) + ${RELOCATING+ *(.data*)} *(.rodata) /* We need to include .rodata here if gcc is used */ - *(.rodata*) /* with -fdata-sections. */ + ${RELOCATING+ *(.rodata*)} /* with -fdata-sections. */ *(.gnu.linkonce.d*) ${RELOCATING+. = ALIGN(2);} ${RELOCATING+ _edata = . ; } ${RELOCATING+ PROVIDE (__data_end = .) ; } - } ${RELOCATING+ > data} + } ${RELOCATING+ > data ${RELOCATING+AT> text}} - .bss ${RELOCATING-0} :${RELOCATING+ AT (ADDR (.bss))} + .bss ${RELOCATING+ ADDR(.data) + SIZEOF (.data)} ${RELOCATING-0} :${RELOCATING+ AT (ADDR (.bss))} { ${RELOCATING+ PROVIDE (__bss_start = .) ; } *(.bss) - *(.bss*) + ${RELOCATING+ *(.bss*)} *(COMMON) ${RELOCATING+ PROVIDE (__bss_end = .) ; } } ${RELOCATING+ > data} @@ -232,31 +236,11 @@ SECTIONS .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } - - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } + .note.gnu.build-id : { *(.note.gnu.build-id) } +EOF - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } +. $srcdir/scripttempl/DWARF.sc - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } +cat <