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.
This commit is contained in:
Joel Sherrill
2003-03-18 19:24:59 +00:00
parent 2e0ee93e04
commit 2ae52c7583
8 changed files with 49 additions and 22 deletions

View File

@@ -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) {