Prevent .noinit section from incorrect placement for AVR.
When .data and .bss sections are empty .noinit section is placed at data region's start. This will be incorrect for devices that has different data start address than data region start in linker script. The patch updates .noinit section's VMA to end of .bss section. So, .noinit section will be placed at .data section address (-Tdata=<address>) when .data and .bss sections are empty. ld/ * scripttempl/avr.sc (.noinit): Force .noinit VMA to end of .bss VMA. * scripttempl/avrtiny.sc (.noinit): Likewise.
This commit is contained in:
parent
a0f8e08a3c
commit
7585b2b8b6
|
@ -1,3 +1,8 @@
|
|||
2016-01-22 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
|
||||
|
||||
* scripttempl/avr.sc (.noinit): Force .noinit VMA to end of .bss VMA.
|
||||
* scripttempl/avrtiny.sc (.noinit): Likewise.
|
||||
|
||||
2016-01-21 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR ld/19453
|
||||
|
|
|
@ -210,7 +210,7 @@ SECTIONS
|
|||
${RELOCATING+ __data_load_end = __data_load_start + SIZEOF(.data); }
|
||||
|
||||
/* Global data not cleared after reset. */
|
||||
.noinit ${RELOCATING-0}:
|
||||
.noinit ${RELOCATING+ ADDR(.bss) + SIZEOF (.bss)} ${RELOCATING-0}: ${RELOCATING+ AT (ADDR (.noinit))}
|
||||
{
|
||||
${RELOCATING+ PROVIDE (__noinit_start = .) ; }
|
||||
*(.noinit*)
|
||||
|
|
|
@ -210,7 +210,7 @@ SECTIONS
|
|||
${RELOCATING+ __data_load_end = __data_load_start + SIZEOF(.data); }
|
||||
|
||||
/* Global data not cleared after reset. */
|
||||
.noinit ${RELOCATING-0}:
|
||||
.noinit ${RELOCATING+ ADDR(.bss) + SIZEOF (.bss)} ${RELOCATING-0} : ${RELOCATING+ AT (ADDR (.noinit))}
|
||||
{
|
||||
${RELOCATING+ PROVIDE (__noinit_start = .) ; }
|
||||
*(.noinit*)
|
||||
|
|
Loading…
Reference in New Issue