diff --git a/c/src/lib/libbsp/powerpc/psim/ChangeLog b/c/src/lib/libbsp/powerpc/psim/ChangeLog index f3526edd43..4af5cba2ce 100644 --- a/c/src/lib/libbsp/powerpc/psim/ChangeLog +++ b/c/src/lib/libbsp/powerpc/psim/ChangeLog @@ -1,3 +1,9 @@ +2007-11-30 Till Straumann + + * startup/linkcmds.c, start/start.S: call __eabi() from start.S + and make sure linkcmds defines _SDA_BASE_ + _SDA2_BASE_ so that + sysv + eabi are properly supported. + 2007-11-30 Joel Sherrill * startup/bspstart.c: BSP_DIRTY_MEMORY should be tested for zero not diff --git a/c/src/lib/libbsp/powerpc/psim/start/start.S b/c/src/lib/libbsp/powerpc/psim/start/start.S index 2b4a3c980c..95a5a52b20 100644 --- a/c/src/lib/libbsp/powerpc/psim/start/start.S +++ b/c/src/lib/libbsp/powerpc/psim/start/start.S @@ -103,6 +103,7 @@ _start: lis r0,0 stw r0,0(sp) /* clear back chain */ stwu sp,-56(sp) /* push another stack frame */ + bl FUNC_NAME(__eabi) lis r5,environ@ha la r5,environ@l(r5) /* environp */ diff --git a/c/src/lib/libbsp/powerpc/psim/startup/linkcmds b/c/src/lib/libbsp/powerpc/psim/startup/linkcmds index ce85282d5a..b66c88db98 100644 --- a/c/src/lib/libbsp/powerpc/psim/startup/linkcmds +++ b/c/src/lib/libbsp/powerpc/psim/startup/linkcmds @@ -119,7 +119,7 @@ SECTIONS PROVIDE (__FRAME_END__ = .); PROVIDE (_etext = .); PROVIDE (etext = .); - PROVIDE (__SDATA2_START__ = .); +_SDA2_BASE_ = __SDATA2_START__ + 0x8000; .sdata2 : { *(.sdata2) *(.gnu.linkonce.s2.*) } >RAM .sbss2 : { *(.sbss2) *(.gnu.linkonce.sb2.*) } >RAM PROVIDE (__SBSS2_END__ = .); @@ -187,7 +187,7 @@ SECTIONS /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so we can shorten the on-disk segment size. */ - PROVIDE (__SDATA_START__ = .); +_SDA_BASE_ = __SDATA_START__ + 0x8000; .sdata : { *(.sdata*) *(.gnu.linkonce.s.*) } >RAM _edata = .; PROVIDE (edata = .);