aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/scripttempl/avr.sc7
2 files changed, 7 insertions, 5 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index c1ab4a1..279ece8 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2014-07-08 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
+
+ * scripttempl/avr.sc: Remove KEEP for .data and
+ force .bss VMA to end of .data VMA.
+
2014-07-08 Will Newton <will.newton@linaro.org>
* emulparams/armelf_linux.sh (TEXT_START_ADDR): Increase
diff --git a/ld/scripttempl/avr.sc b/ld/scripttempl/avr.sc
index 10714e1..d356b71 100644
--- a/ld/scripttempl/avr.sc
+++ b/ld/scripttempl/avr.sc
@@ -166,10 +166,7 @@ SECTIONS
.data ${RELOCATING-0} :
{
${RELOCATING+ PROVIDE (__data_start = .) ; }
- /* --gc-sections will delete empty .data. This leads to wrong start
- 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 */
${RELOCATING+ *(.rodata*)} /* with -fdata-sections. */
@@ -179,7 +176,7 @@ SECTIONS
${RELOCATING+ PROVIDE (__data_end = .) ; }
} ${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)