diff options
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/scripttempl/avr.sc | 7 |
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) |