* bsp_specs: Added crtbegin/crtend and INIT_FINI for C++ support.
	* linkcmds: Added .init, .fini & related sections.
This commit is contained in:
Joel Sherrill
2003-01-03 16:45:10 +00:00
parent 828be6d2f4
commit 8f10c925f6
7 changed files with 92 additions and 34 deletions
@@ -1,3 +1,8 @@
2002-12-08 Greg Menke <gregory.menke@gsfc.nasa.gov>
* bsp_specs: Added crtbegin/crtend and INIT_FINI for C++ support.
* linkcmds: Added .init, .fini & related sections.
2002-12-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Don't include @RTEMS_BSP@.cfg.
+6 -3
View File
@@ -5,7 +5,7 @@
%rename link old_link
*cpp:
%(old_cpp) %{qrtems: -D__embedded__} -Asystem(embedded)
%(old_cpp) %{qrtems: -D__embedded__ -D__USE_INIT_FINI__ } -Asystem(embedded)
*lib:
%{!qrtems: %(old_lib)} %{!nostdlib: %{qrtems: --start-group \
@@ -15,9 +15,12 @@
*startfile:
%{!qrtems: %(old_startfile)} %{!nostdlib: %{qrtems: \
%{!qnostartfile: %{!qrtems_debug: start.o%s} \
%{qrtems_debug: start_g.o%s}}}}
%{!qnostartfile: %{!qrtems_debug: start.o%s} \
%{qrtems_debug: start_g.o%s}} crti.o%s crtbegin.o%s }}
*link:
%(old_link) %{!qrtems: %(old_link)} %{qrtems: -dc -dp -N -e _start}
*endfile:
%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s crtn.o%s }
@@ -411,9 +411,9 @@ zerobss:
** Function: _init
*/
.globl exit .text
.globl _init
.ent _init
_init:
.globl _initialize_rtems
.ent _initialize_rtems
_initialize_rtems:
/*
** Print 'i'. Starting to initialize RTEMS.
@@ -445,7 +445,7 @@ _init:
*/
jal _sys_exit
nop
.end _init
.end _initialize_rtems
/**********************************************************************
@@ -578,7 +578,10 @@ _cpuinit:
# INV = 0: 1 : Disable invalidate mode
# LOCK = 0: 0 : Disable cache lock
#
li t0,0x00027AA0
# 0x00027AA0 caches on
# 0x00027220 caches off
#
li t0,0x00027aa0
sw t0,M_BIU
#
@@ -14,7 +14,7 @@
_RamBase = DEFINED(_RamBase) ? _RamBase : 0x80000000;
_RamSize = DEFINED(_RamSize) ? _RamSize : 32M;
HeapSize = DEFINED(HeapSize) ? HeapSize : 0x40000;
_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000;
_StackSize = DEFINED(_StackSize) ? _StackSize : 0x4000;
ClockRate = DEFINED(ClockRate) ? ClockRate : 12000000;
@@ -29,11 +29,11 @@ SECTIONS
.text :
{
_ftext = . ;
*(.init)
eprol = .;
*/start.o(.text)
*(.text)
*(.text.*)
*(.eh_frame)
*(.gnu.linkonce.t*)
*(.mips16.fn.*)
*(.mips16.call.*)
@@ -41,10 +41,25 @@ SECTIONS
*(.rel.sdata)
*(.rel.dyn)
PROVIDE (__runtime_reloc_stop = .);
*(.fini)
*(.gcc_except_table)
*(.eh_frame_hdr)
*(.eh_frame)
} >ram
.init :
{
KEEP(*(.init))
} > ram
.fini :
{
KEEP(*(.fini))
} > ram
.ctors :
{
/* gcc uses crtbegin.o to find the start of
@@ -99,13 +114,17 @@ SECTIONS
*(.gnu.linkonce.d*)
} >ram
.jcr :
{
. = ALIGN(8);
KEEP (*(.jcr))
_gp = ALIGN(16) + 0x7440;
__global = _gp;
} >ram
.lit8 :
{
. = ALIGN(8);
_gp = . + 0x8000;
__global = _gp;
*(.lit8)
} >ram
+5
View File
@@ -1,3 +1,8 @@
2002-12-08 Greg Menke <gregory.menke@gsfc.nasa.gov>
* bsp_specs: Added crtbegin/crtend and INIT_FINI for C++ support.
* linkcmds: Added .init, .fini & related sections.
2002-12-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Don't include @RTEMS_BSP@.cfg.
+5 -3
View File
@@ -5,7 +5,7 @@
%rename link old_link
*cpp:
%(old_cpp) %{qrtems: -D__embedded__} -Asystem(embedded)
%(old_cpp) %{qrtems: -D__embedded__ -D__USE_INIT_FINI__} -Asystem(embedded)
*lib:
%{!qrtems: %(old_lib)} %{!nostdlibs: %{qrtems: --start-group \
@@ -16,9 +16,11 @@
*startfile:
%{!qrtems: %(old_startfile)} %{!nostdlibs: %{qrtems: \
%{!qrtems_debug: start.o%s} \
%{qrtems_debug: start_g.o%s}}}
%{!qrtems_debug: start.o%s} \
%{qrtems_debug: start_g.o%s} crti.o%s crtbegin.o%s }}
*link:
%(old_link) %{!qrtems: %(old_link)} %{qrtems: -dc -dp -N -e _start}
*endfile:
%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s crtn.o%s }
+35 -14
View File
@@ -22,16 +22,27 @@ SECTIONS
*(.text)
*(.text.*)
*(.gnu.linkonce.t*)
*(.init)
*(.mips16.fn.*)
*(.mips16.call.*)
PROVIDE (__runtime_reloc_start = .);
*(.rel.sdata)
PROVIDE (__runtime_reloc_stop = .);
*(.fini)
etext = .;
_etext = .;
}
*(.gcc_except_table)
*(.eh_frame_hdr)
*(.eh_frame)
}
.init :
{
KEEP(*(.init))
}
.fini :
{
KEEP(*(.fini))
}
.ctors :
{
/* gcc uses crtbegin.o to find the start of
@@ -62,9 +73,11 @@ SECTIONS
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
etext = .;
_etext = .;
}
. = .;
.rdata : {
*(.rdata)
*(.rodata)
@@ -72,30 +85,38 @@ SECTIONS
*(.gnu.linkonce.r*)
}
_fdata = ALIGN(16);
.data : {
*(.data)
*(.data.*)
*(.gnu.linkonce.d*)
SORT(CONSTRUCTORS)
SORT(CONSTRUCTORS)
}
. = ALIGN(8);
_gp = . + 0x8000;
.jcr : {
KEEP (*(.jcr))
}
_gp = ALIGN(16) + 0x7440;
__global = _gp;
.sdata : {
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s*)
}
.lit8 : {
*(.lit8)
}
.lit4 : {
*(.lit4)
}
.sdata : {
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s*)
}
. = ALIGN(4);
edata = .;
_edata = .;
_fbss = .;
.sbss : {
*(.sbss)
*(.scommon)