* scripttempl/avr.sc: Remove KEEP for .data and
authorDenis Chertykov <chertykov@gmail.com>
Tue, 8 Jul 2014 16:15:18 +0000 (20:15 +0400)
committerDenis Chertykov <chertykov@gmail.com>
Tue, 8 Jul 2014 16:15:18 +0000 (20:15 +0400)
force .bss VMA to end of .data VMA.

ld/ChangeLog
ld/scripttempl/avr.sc

index c1ab4a1..279ece8 100644 (file)
@@ -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
index 10714e1..d356b71 100644 (file)
@@ -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)