From 5be1b39bdf080119dc5b7e56652a8c87b6b0dbbd Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Mon, 5 Jun 2006 06:00:58 +0000 Subject: [PATCH] *** empty log message *** --- dkarm-eabi/crtls/gp32.ld | 12 ++++++++---- dkarm-eabi/crtls/gp32_gpsdk.ld | 27 ++++++++++++++++++++++----- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/dkarm-eabi/crtls/gp32.ld b/dkarm-eabi/crtls/gp32.ld index f5f0209..4bf6fa0 100644 --- a/dkarm-eabi/crtls/gp32.ld +++ b/dkarm-eabi/crtls/gp32.ld @@ -48,6 +48,10 @@ SECTIONS . = ALIGN(4); /* REQUIRED. LD is flaky without it. */ } >ram = 0xff + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >ram + __exidx_start = .; + .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } >ram + __exidx_end = .; /* Ensure the __preinit_array_start label is properly aligned. We could instead move the label definition inside the section, but the linker would then create the section even if it turns out to @@ -122,12 +126,12 @@ SECTIONS *(.bss*) *(COMMON) . = ALIGN(4); /* REQUIRED. LD is flaky without it. */ + __bss_end = ABSOLUTE(.) ; } > ram - __bss_end = . ; - _end = . ; - __end__ = . ; - PROVIDE (end = _end); + end = __bss_end; + + PROVIDE (end = end); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } diff --git a/dkarm-eabi/crtls/gp32_gpsdk.ld b/dkarm-eabi/crtls/gp32_gpsdk.ld index 85de0b6..bd5daae 100644 --- a/dkarm-eabi/crtls/gp32_gpsdk.ld +++ b/dkarm-eabi/crtls/gp32_gpsdk.ld @@ -91,6 +91,25 @@ SECTIONS . = ALIGN(4); /* REQUIRED. LD is flaky without it. */ } >ram = 0xff + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >ram + __exidx_start = .; + .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } >ram + __exidx_end = .; + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(32 / 8); + PROVIDE (__preinit_array_start = .); + .preinit_array : { KEEP (*(.preinit_array)) } >ram = 0xff + PROVIDE (__preinit_array_end = .); + PROVIDE (__init_array_start = .); + .init_array : { KEEP (*(.init_array)) } >ram = 0xff + PROVIDE (__init_array_end = .); + PROVIDE (__fini_array_start = .); + .fini_array : { KEEP (*(.fini_array)) } >ram = 0xff + PROVIDE (__fini_array_end = .); + .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so @@ -149,14 +168,12 @@ SECTIONS *(COMMON) *(.bss*) . = ALIGN(4); /* REQUIRED. LD is flaky without it. */ + __bss_end = ABSOLUTE(.); } > ram - __bss_end = . ; - __eheap_start = . ; /* Needed by DevKitAdvance. Start of malloc() heap for DKA. */ + end = __bss_end; - _end = . ; - __end__ = . ; - PROVIDE (end = _end); + PROVIDE (end = end); __eheap_end = . ;