boards/mips Linker Scripts: The PIC32M* start-up code initializes .bss by writing 16 bytes at a time in a loop. The start (_sbss) alignment is only required to be 4 bytes since the write is done with 4 store instructions. In a previous change, the end address, _ebss, was aligned to 16 byte to prevent initializing past the end off the .bss region. However, that does not work unless the start address, _sbss, is also aligned to 16 bytes.
This commit is contained in:
parent
ec4a7be5c2
commit
5995714cfd
@ -253,6 +253,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -255,6 +255,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -253,6 +253,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -255,6 +255,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -253,6 +253,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -255,6 +255,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -257,6 +257,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -257,6 +257,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -257,6 +257,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -257,6 +257,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -257,6 +257,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -257,6 +257,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -257,6 +257,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -257,6 +257,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -276,6 +276,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -276,6 +276,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -276,6 +276,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -276,6 +276,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -276,6 +276,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -276,6 +276,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -276,6 +276,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
@ -276,6 +276,7 @@ SECTIONS
|
|||||||
|
|
||||||
.sbss :
|
.sbss :
|
||||||
{
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
*(.dynsbss)
|
*(.dynsbss)
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||||
|
Loading…
Reference in New Issue
Block a user