From ab52a4810c1a597c1fb1efde5919aba97c7361dd Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Mon, 24 Jan 2011 13:45:07 +0000 Subject: [PATCH] changes for latest binutils --- dkarm-eabi/crtls/ds_arm7.ld | 9 ++------- dkarm-eabi/crtls/ds_arm7_crt0.s | 4 ++-- dkarm-eabi/crtls/ds_arm7_vram.ld | 9 ++------- dkarm-eabi/crtls/ds_arm9_crt0.s | 4 ++-- dkarm-eabi/crtls/ds_cart.ld | 5 ++--- dkarm-eabi/crtls/gba_cart.ld | 33 +++++++++++++++----------------- dkarm-eabi/crtls/gba_crt0.s | 16 ++++++++-------- dkarm-eabi/crtls/gba_er.ld | 5 ++--- dkarm-eabi/crtls/gba_mb.ld | 20 ++++++++----------- dkarm-eabi/crtls/gp32.ld | 5 ++--- dkarm-eabi/crtls/gp32_gpsdk.ld | 2 +- 11 files changed, 46 insertions(+), 66 deletions(-) diff --git a/dkarm-eabi/crtls/ds_arm7.ld b/dkarm-eabi/crtls/ds_arm7.ld index bd1926b..e92d798 100644 --- a/dkarm-eabi/crtls/ds_arm7.ld +++ b/dkarm-eabi/crtls/ds_arm7.ld @@ -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) } diff --git a/dkarm-eabi/crtls/ds_arm7_crt0.s b/dkarm-eabi/crtls/ds_arm7_crt0.s index 232b6dc..bb27fd6 100644 --- a/dkarm-eabi/crtls/ds_arm7_crt0.s +++ b/dkarm-eabi/crtls/ds_arm7_crt0.s @@ -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 diff --git a/dkarm-eabi/crtls/ds_arm7_vram.ld b/dkarm-eabi/crtls/ds_arm7_vram.ld index de3f126..1f3ac5f 100644 --- a/dkarm-eabi/crtls/ds_arm7_vram.ld +++ b/dkarm-eabi/crtls/ds_arm7_vram.ld @@ -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) } diff --git a/dkarm-eabi/crtls/ds_arm9_crt0.s b/dkarm-eabi/crtls/ds_arm9_crt0.s index bee8590..9d26e0b 100644 --- a/dkarm-eabi/crtls/ds_arm9_crt0.s +++ b/dkarm-eabi/crtls/ds_arm9_crt0.s @@ -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 diff --git a/dkarm-eabi/crtls/ds_cart.ld b/dkarm-eabi/crtls/ds_cart.ld index 15db3ee..03590dd 100644 --- a/dkarm-eabi/crtls/ds_cart.ld +++ b/dkarm-eabi/crtls/ds_cart.ld @@ -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) } diff --git a/dkarm-eabi/crtls/gba_cart.ld b/dkarm-eabi/crtls/gba_cart.ld index 2b81678..0ad42d8 100644 --- a/dkarm-eabi/crtls/gba_cart.ld +++ b/dkarm-eabi/crtls/gba_cart.ld @@ -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) { diff --git a/dkarm-eabi/crtls/gba_crt0.s b/dkarm-eabi/crtls/gba_crt0.s index b3d1b99..39a4df9 100644 --- a/dkarm-eabi/crtls/gba_crt0.s +++ b/dkarm-eabi/crtls/gba_crt0.s @@ -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 @--------------------------------------------------------------------------------- diff --git a/dkarm-eabi/crtls/gba_er.ld b/dkarm-eabi/crtls/gba_er.ld index 4147ebe..3bc24c6 100644 --- a/dkarm-eabi/crtls/gba_er.ld +++ b/dkarm-eabi/crtls/gba_er.ld @@ -42,9 +42,8 @@ SECTIONS __bss_start = .; *(.bss) . = ALIGN(4); + __bss_end__ = ABSOLUTE(.); + __end__ = ABSOLUTE(.); } - __bss_end = .; - - __end = .; } diff --git a/dkarm-eabi/crtls/gba_mb.ld b/dkarm-eabi/crtls/gba_mb.ld index 347e702..8540243 100644 --- a/dkarm-eabi/crtls/gba_mb.ld +++ b/dkarm-eabi/crtls/gba_mb.ld @@ -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) { diff --git a/dkarm-eabi/crtls/gp32.ld b/dkarm-eabi/crtls/gp32.ld index 6c4c627..16b3143 100644 --- a/dkarm-eabi/crtls/gp32.ld +++ b/dkarm-eabi/crtls/gp32.ld @@ -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) } diff --git a/dkarm-eabi/crtls/gp32_gpsdk.ld b/dkarm-eabi/crtls/gp32_gpsdk.ld index 6afb79b..b6824e4 100644 --- a/dkarm-eabi/crtls/gp32_gpsdk.ld +++ b/dkarm-eabi/crtls/gp32_gpsdk.ld @@ -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 = . ;