diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2003-01-03 16:45:10 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2003-01-03 16:45:10 +0000 |
commit | 8f10c925f6a4a02a870d16057ec9e57f5c6ee2c3 (patch) | |
tree | 75d0e71c5d80ebf8523fe3c2859d1c03b53eb10b /c/src/lib/libbsp/mips/jmr3904 | |
parent | 2003-01-03 Eugeny S. Mints <Eugeny.Mints@oktet.ru> (diff) | |
download | rtems-8f10c925f6a4a02a870d16057ec9e57f5c6ee2c3.tar.bz2 |
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.
Diffstat (limited to 'c/src/lib/libbsp/mips/jmr3904')
-rw-r--r-- | c/src/lib/libbsp/mips/jmr3904/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/mips/jmr3904/bsp_specs | 8 | ||||
-rw-r--r-- | c/src/lib/libbsp/mips/jmr3904/startup/linkcmds | 49 |
3 files changed, 45 insertions, 17 deletions
diff --git a/c/src/lib/libbsp/mips/jmr3904/ChangeLog b/c/src/lib/libbsp/mips/jmr3904/ChangeLog index b10468ab21..d3aa899ac0 100644 --- a/c/src/lib/libbsp/mips/jmr3904/ChangeLog +++ b/c/src/lib/libbsp/mips/jmr3904/ChangeLog @@ -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. diff --git a/c/src/lib/libbsp/mips/jmr3904/bsp_specs b/c/src/lib/libbsp/mips/jmr3904/bsp_specs index 29eebcc50e..f60e4cfe73 100644 --- a/c/src/lib/libbsp/mips/jmr3904/bsp_specs +++ b/c/src/lib/libbsp/mips/jmr3904/bsp_specs @@ -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 } diff --git a/c/src/lib/libbsp/mips/jmr3904/startup/linkcmds b/c/src/lib/libbsp/mips/jmr3904/startup/linkcmds index 0c52ba4b3e..02b9d192a2 100644 --- a/c/src/lib/libbsp/mips/jmr3904/startup/linkcmds +++ b/c/src/lib/libbsp/mips/jmr3904/startup/linkcmds @@ -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) |