diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2003-01-20 20:33:17 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2003-01-20 20:33:17 +0000 |
commit | c0c6168feaea81fceceba3933c9ca90696b0620c (patch) | |
tree | 7e29853dc225d01a2e431dc7f82a84e261100c65 /c/src/lib/libbsp/m68k/mrm332/startup/linkcmds_ROM | |
parent | 2003-01-20 Joel Sherrill <joel@OARcorp.com> (diff) | |
download | rtems-c0c6168feaea81fceceba3933c9ca90696b0620c.tar.bz2 |
2003-01-20 Duane Gustavus <duane@unt.edu>
* console/sci.c, include/mrm332.h, startup/linkcmds,
startup/linkcmds_ROM: Various updates to make this run properly
from ROM.
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/m68k/mrm332/startup/linkcmds_ROM | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/c/src/lib/libbsp/m68k/mrm332/startup/linkcmds_ROM b/c/src/lib/libbsp/m68k/mrm332/startup/linkcmds_ROM index 7467f78a25..cf883874a4 100644 --- a/c/src/lib/libbsp/m68k/mrm332/startup/linkcmds_ROM +++ b/c/src/lib/libbsp/m68k/mrm332/startup/linkcmds_ROM @@ -50,7 +50,7 @@ _RamEnd = _RamBase + _RamSize; __end_of_ram = 0x080000; _copy_data_from_rom = 1; _HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x10000; -_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000; +_StackSize = DEFINED(_StackSize) ? _StackSize : 0x2000; /* * @@ -91,7 +91,37 @@ SECTIONS *(.fini) *crtn.o(.fini) - *(.eh_fram) + /* + * Special FreeBSD sysctl sections. + */ + . = ALIGN (16); + __start_set_sysctl_set = .; + *(set_sysctl_*); + __stop_set_sysctl_set = ABSOLUTE(.); + *(set_domain_*); + *(set_pseudo_*); + + /* + * C++ constructors/destructors + * + * gcc uses crtbegin.o to find the start of the constructors + * and destructors so we make sure it is first. Because this + * is a wildcard, it doesn't matter if the user does not + * actually link against crtbegin.o; the linker won't look for + * a file to match a wildcard. The wildcard also means that + * it doesn't matter which directory crtbegin.o is in. The + * constructor and destructor list are terminated in + * crtend.o. The same comments apply to it. + */ + . = ALIGN (16); + *crtbegin.o(.ctors) + *(.ctors) + *crtend.o(.ctors) + *crtbegin.o(.dtors) + *(.dtors) + *crtend.o(.dtors) + + *(.eh_frame) . = ALIGN (16); /* @@ -99,7 +129,7 @@ SECTIONS */ . = ALIGN (16); _rodata_start = . ; - *(.rodata) + *(.rodata*) *(.gnu.linkonce.r*) etext = ALIGN(0x10); @@ -130,6 +160,10 @@ SECTIONS _copy_start = .; _sdata = . ; *(.data) + *(.gnu.linkonce.d*) + *(.gcc_except_table) + *(.jcr) + CONSTRUCTORS edata = ALIGN(0x10); _edata = .; @@ -146,6 +180,7 @@ SECTIONS _clear_start = .; *(.bss) *(COMMON) + . = ALIGN (16); end = .; _end = ALIGN(0x8); __end = ALIGN(0x8); |