changes for latest binutils

This commit is contained in:
Dave Murphy
2011-01-24 13:45:07 +00:00
parent 788879146e
commit ab52a4810c
11 changed files with 46 additions and 66 deletions

View File

@@ -134,15 +134,10 @@ SECTIONS
*(.bss*)
*(COMMON)
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
__bss_end__ = ABSOLUTE(.);
__end__ = ABSOLUTE(.);
} >iwram
__bss_end = . ;
__bss_end__ = . ;
_end = . ;
__end__ = . ;
PROVIDE (end = _end);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }

View File

@@ -23,8 +23,8 @@ _start:
msr cpsr, r0
ldr sp, =__sp_usr @ Set user stack
ldr r0, =__bss_start @ Clear BSS section to 0x00
ldr r1, =__bss_end
ldr r0, =__bss_start__ @ Clear BSS section to 0x00
ldr r1, =__bss_end__
sub r1, r1, r0
bl ClearMem

View File

@@ -138,15 +138,10 @@ SECTIONS
*(.bss*)
*(COMMON)
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
__bss_end__ = ABSOLUTE(.);
__end__ = ABSOLUTE(.);
} >vram
__bss_end = . ;
__bss_end__ = . ;
_end = . ;
__end__ = . ;
PROVIDE (end = _end);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }

View File

@@ -63,8 +63,8 @@ _start:
bl checkARGV @ check and process argv trickery
ldr r0, =__bss_start @ Clear BSS section
ldr r1, =__bss_end
ldr r0, =__bss_start__ @ Clear BSS section
ldr r1, =__bss_end__
sub r1, r1, r0
bl ClearMem

View File

@@ -171,11 +171,10 @@ SECTIONS
*(.bss*)
*(COMMON)
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
__bss_end__ = ABSOLUTE(.);
__end__ = ABSOLUTE(.);
} >iwram
__bss_end = . ;
__bss_end__ = . ;
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }

View File

@@ -107,10 +107,10 @@ SECTIONS
SORT(CONSTRUCTORS)
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
} >rom = 0xff
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >rom
__exidx_start = .;
.ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } >rom
__exidx_end = .;
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >rom
__exidx_start = .;
.ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } >rom
__exidx_end = .;
.ctors :
{
@@ -153,11 +153,11 @@ SECTIONS
.iwram __iwram_start : AT (__iwram_lma)
{
__iwram_start = ABSOLUTE(.) ;
__iwram_start__ = ABSOLUTE(.) ;
*(.iwram)
*iwram.*(.text)
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
__iwram_end = ABSOLUTE(.) ;
__iwram_end__ = ABSOLUTE(.) ;
} >iwram = 0xff
__data_lma = __iwram_lma + SIZEOF(.iwram) ;
@@ -171,15 +171,13 @@ SECTIONS
*(.bss*)
*(COMMON)
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
__bss_end = ABSOLUTE(.) ;
__bss_end__ = ABSOLUTE(.);
} AT>iwram
__bss_end__ = __bss_end ;
.data ALIGN(4) : AT (__data_lma)
{
__data_start = ABSOLUTE(.);
__data_start__ = ABSOLUTE(.);
*(.data)
*(.data.*)
*(.gnu.linkonce.d*)
@@ -216,7 +214,7 @@ SECTIONS
__jcr_lma = __fini_lma + SIZEOF(.fini_array);
.jcr : AT (__jcr_lma) { KEEP (*(.jcr)) } >iwram
__data_end = ABSOLUTE(.);
__data_end__ = ABSOLUTE(.);
__iwram_overlay_lma = __jcr_lma + SIZEOF(.jcr);
__iwram_overlay_start = . ;
@@ -236,7 +234,7 @@ SECTIONS
}>iwram = 0xff
__iwram_overlay_end = . ;
__ewram_lma = __iwram_overlay_lma + (__iwram_overlay_end - __iwram_overlay_start) ;
__ewram_lma = __iwram_overlay_lma + (__iwram_overlay_end - __iwram_overlay_start) ;
__iheap_start = . ;
@@ -251,16 +249,15 @@ SECTIONS
.sbss ALIGN(4)(NOLOAD):
{
__sbss_start = ABSOLUTE(.);
__sbss_start__ = ABSOLUTE(.);
*(.sbss)
. = ALIGN(4);
__sbss_end = ABSOLUTE(.);
__sbss_end__ = ABSOLUTE(.);
__end__ = ABSOLUTE(.);
__ewram_end = ABSOLUTE(.);
__eheap_start = ABSOLUTE(.);
} AT>ewram
__ewram_end = __sbss_end ;
__eheap_start = __sbss_end;
__end__ = __sbss_end;
/* EZF Advance strips trailing 0xff bytes, add a pad section so nothing important is removed */
.pad ALIGN(4) : AT (__pad_lma)
{

View File

@@ -104,16 +104,16 @@ SkipEWRAMClear: @ Clear Internal WRAM to 0x00
@---------------------------------------------------------------------------------
@ Clear BSS section to 0x00
@---------------------------------------------------------------------------------
ldr r0, =__bss_start
ldr r1, =__bss_end
ldr r0, =__bss_start__
ldr r1, =__bss_end__
sub r1, r0
bl ClearMem
@---------------------------------------------------------------------------------
@ Clear SBSS section to 0x00
@---------------------------------------------------------------------------------
ldr r0, =__sbss_start
ldr r1, =__sbss_end
ldr r0, =__sbss_start__
ldr r1, =__sbss_end__
sub r1, r0
bl ClearMem
@@ -121,16 +121,16 @@ SkipEWRAMClear: @ Clear Internal WRAM to 0x00
@ Copy initialized data (data section) from LMA to VMA (ROM to RAM)
@---------------------------------------------------------------------------------
ldr r1, =__data_lma
ldr r2, =__data_start
ldr r4, =__data_end
ldr r2, =__data_start__
ldr r4, =__data_end__
bl CopyMemChk
@---------------------------------------------------------------------------------
@ Copy internal work ram (iwram section) from LMA to VMA (ROM to RAM)
@---------------------------------------------------------------------------------
ldr r1,= __iwram_lma
ldr r2,= __iwram_start
ldr r4,= __iwram_end
ldr r2,= __iwram_start__
ldr r4,= __iwram_end__
bl CopyMemChk
@---------------------------------------------------------------------------------

View File

@@ -42,9 +42,8 @@ SECTIONS
__bss_start = .;
*(.bss)
. = ALIGN(4);
__bss_end__ = ABSOLUTE(.);
__end__ = ABSOLUTE(.);
}
__bss_end = .;
__end = .;
}

View File

@@ -161,29 +161,26 @@ SECTIONS
.iwram __iwram_start : AT (__iwram_lma)
{
__iwram_start = ABSOLUTE(.) ;
__iwram_start__ = ABSOLUTE(.) ;
*(.iwram)
*iwram.*(.text)
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
__iwram_end = ABSOLUTE(.) ;
__iwram_end__ = ABSOLUTE(.) ;
} >iwram = 0xff
__data_lma = __iwram_lma + SIZEOF(.iwram) ;
.bss ALIGN(4) (NOLOAD):
{
__bss_start = ABSOLUTE(.);
__bss_start__ = ABSOLUTE(.);
*(.dynbss)
*(.gnu.linkonce.b*)
*(.bss*)
*(COMMON)
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
__bss_end = ABSOLUTE(.) ;
__bss_end__ = ABSOLUTE(.) ;
}
__bss_end__ = __bss_end ;
.data ALIGN(4) : AT (__data_lma)
{
__data_start = ABSOLUTE(.);
@@ -231,15 +228,14 @@ SECTIONS
.sbss ALIGN(4)(NOLOAD):
{
__sbss_start = ABSOLUTE(.);
__sbss_start__ = ABSOLUTE(.);
*(.sbss)
. = ALIGN(4);
__sbss_end = ABSOLUTE(.);
__sbss_end__ = ABSOLUTE(.);
__end__ = ABSOLUTE(.);
__ewram_end = ABSOLUTE(.);
__eheap_start = ABSOLUTE(.);
}
__ewram_end = __sbss_end ;
__ewram_overlay_start = __sbss_end ;
OVERLAY ALIGN(4): NOCROSSREFS AT (__ewram_overlay_lma)
{

View File

@@ -110,9 +110,9 @@ SECTIONS
*(.gnu.linkonce.d*)
CONSTRUCTORS
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
__data_end = ABSOLUTE(.);
} >ram = 0xff
__data_end = . ;
.bss ALIGN(4) :
{
@@ -124,10 +124,9 @@ SECTIONS
*(COMMON)
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
__bss_end = ABSOLUTE(.) ;
__end__ = ABSOLUTE(.) ;
} > ram
__end__ = __bss_end;
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }

View File

@@ -169,9 +169,9 @@ SECTIONS
*(.bss*)
. = ALIGN(4); /* REQUIRED. LD is flaky without it. */
__bss_end = ABSOLUTE(.);
__end__ = ABSOLUTE(.);
} > ram
__end__ = __bss_end;
__eheap_end = . ;