diff options
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/scripttempl/avr.sc | 18 |
2 files changed, 15 insertions, 9 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 2c93588..f9cc7e6 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2013-08-23 Nick Clifton <nickc@redhat.com> + + PR ld/15839 + * scripttempl/avr.sc: Do not include gc'able sections into general + sections during relocatable links. + 2013-08-22 Christian Franke <franke@computer.org> * emultempl/pe.em: Add --disable-large-address-aware option. diff --git a/ld/scripttempl/avr.sc b/ld/scripttempl/avr.sc index 2ecbd2c..77200d0 100644 --- a/ld/scripttempl/avr.sc +++ b/ld/scripttempl/avr.sc @@ -81,7 +81,7 @@ SECTIONS KEEP(*(.vectors)) /* For data that needs to reside in the lower 64k of progmem. */ - *(.progmem.gcc*) + ${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. */ @@ -89,21 +89,21 @@ SECTIONS ${CONSTRUCTING+ __trampolines_start = . ; } /* The jump trampolines for the 16-bit limited relocs will reside here. */ *(.trampolines) - *(.trampolines*) + ${RELOCATING+. *(.trampolines*)} ${CONSTRUCTING+ __trampolines_end = . ; } - *(.progmem*) + ${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) } @@ -138,7 +138,7 @@ SECTIONS KEEP (*(.init9)) *(.text) ${RELOCATING+. = ALIGN(2);} - *(.text.*) + ${RELOCATING+ *(.text.*)} ${RELOCATING+. = ALIGN(2);} *(.fini9) /* _exit() starts here. */ KEEP (*(.fini9)) @@ -170,9 +170,9 @@ SECTIONS addresses for subsequent sections because -Tdata= from the command line will have no effect, see PR13697. Thus, keep .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 = . ; } @@ -183,7 +183,7 @@ SECTIONS { ${RELOCATING+ PROVIDE (__bss_start = .) ; } *(.bss) - *(.bss*) + ${RELOCATING+ *(.bss*)} *(COMMON) ${RELOCATING+ PROVIDE (__bss_end = .) ; } } ${RELOCATING+ > data} |