diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2003-03-18 19:20:55 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2003-03-18 19:20:55 +0000 |
commit | 64f8ae44ccb651e550fe5d7369feda6b3f21fcb6 (patch) | |
tree | afd706051b15ea39a81e286f4c6642cd4dcb9510 /c/src/lib/libbsp/powerpc/shared/startup/pgtbl_setup.c | |
parent | 2003-03-18 Till Straumann <strauman@slac.stanford.edu> (diff) | |
download | rtems-64f8ae44ccb651e550fe5d7369feda6b3f21fcb6.tar.bz2 |
2003-03-18 Till Straumann <strauman@slac.stanford.edu>
PR 356/bsps
This patch makes RTEMS/powerpc/shared EABI compliant.
* irq/irq_init.c, start/Makefile.am, start/start.S, startup/bspstart.c,
startup/pgtbl_setup.c, vectors/vectors.h, vectors/vectors_init.c:
zero_bss() should clear not only bss but sbss and sbss2
also (this is probably a bugfix, as sbss/sbss2 are
probably used even if -msdata=eabi is not specified).
* start/rtems_crti.S: New file which must
be linked immediately after ecrti.o. rtems_crti.o contains
a code snippet who lets __init() return immediately. Also,
a new entry point '_init' to the C++ Ctors is generated
for use by the RTEMS Thread_Handler.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/shared/startup/pgtbl_setup.c')
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/startup/pgtbl_setup.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/c/src/lib/libbsp/powerpc/shared/startup/pgtbl_setup.c b/c/src/lib/libbsp/powerpc/shared/startup/pgtbl_setup.c index b36ac47d78..5cd462a65d 100644 --- a/c/src/lib/libbsp/powerpc/shared/startup/pgtbl_setup.c +++ b/c/src/lib/libbsp/powerpc/shared/startup/pgtbl_setup.c @@ -50,14 +50,14 @@ unsigned ldPtSize,tmp; /* get those from the linker script. * NOTE THAT THE CORRECTNESS OF THE LINKER SCRIPT IS CRUCIAL */ - extern unsigned long __DATA_START__, _etext; + extern unsigned long __DATA_START__[], _etext[]; /* map text and RO data read-only */ tmp = triv121PgTblMap( pt, TRIV121_121_VSID, 0, - (PAGE_ALIGN((unsigned long)&_etext) - 0) >> PG_SHIFT, + (PAGE_ALIGN((unsigned long)_etext) - 0) >> PG_SHIFT, 0, /* WIMG */ TRIV121_PP_RO_PAGE); if (TRIV121_MAP_SUCCESS != tmp) { @@ -69,8 +69,8 @@ unsigned ldPtSize,tmp; tmp = triv121PgTblMap( pt, TRIV121_121_VSID, - (unsigned long)&__DATA_START__, - (*pmemsize - (1<<ldPtSize) - (unsigned long)&__DATA_START__ )>> PG_SHIFT, + (unsigned long)__DATA_START__, + (*pmemsize - (1<<ldPtSize) - (unsigned long)__DATA_START__ )>> PG_SHIFT, 0, /* WIMG */ TRIV121_PP_RW_PAGE); if (TRIV121_MAP_SUCCESS != tmp) { |