aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog6
-rw-r--r--ld/scripttempl/avr.sc18
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}