URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [rtems-20020807/] [c/] [src/] [lib/] [libbsp/] [m68k/] [mvme162/] [startup/] [linkcmds] - Rev 1765
Compare with Previous | Blame | View Log
/** This file contains directives for the GNU linker which are specific* to the Motorola MVME162 board.** COPYRIGHT (c) 1989-1999.* On-Line Applications Research Corporation (OAR).** The license and distribution terms for this file may be* found in the file LICENSE in this distribution or at* http://www.OARcorp.com/rtems/license.html.** Modifications of respective RTEMS file: COPYRIGHT (c) 1994.* EISCAT Scientific Association. M.Savitski** This material is a part of the MVME162 Board Support Package* for the RTEMS executive. Its licensing policies are those of the* RTEMS above.** linkcmds,v 1.17 2002/05/09 21:37:02 joel Exp*//** Declare some sizes.*/_RamBase = DEFINED(_RamBase) ? _RamBase : 0x20000;_RamSize = DEFINED(_RamSize) ? _RamSize : 1M;_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x10000;_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000;MEMORY{ram : org = 0x000000, l = 1M}SECTIONS{ram : {. = .;} >ram/** Text, data and bss segments*/.text 0x20000 : {*(.text)/** C++ constructors/destructors*/*(.gnu.linkonce.t.*)/** Initialization and finalization code.** Various files can provide initialization and finalization* functions. crtbegin.o and crtend.o are two instances. The* body of these functions are in .init and .fini sections. We* accumulate the bodies here, and prepend function prologues* from crti.o and function epilogues from crtn.o. crti.o must* be linked first; crtn.o must be linked last. Because these* are wildcards, it doesn't matter if the user does not* actually link against crti.o and crtn.o; the linker won't* look for a file to match a wildcard. The wildcard also* means that it doesn't matter which directory crti.o and* crtn.o are in.*/PROVIDE (_init = .);*crti.o(.init)*(.init)*crtn.o(.init)PROVIDE (_fini = .);*crti.o(.fini)*(.fini)*crtn.o(.fini)/** 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)/** Exception frame info*/. = ALIGN (16);*(.eh_frame)/** Read-only data*/. = ALIGN (16);_rodata_start = .;*(.rodata*)*(.gnu.linkonce.r*). = ALIGN (16);PROVIDE (_etext = .);} >ram.data : {PROVIDE (_copy_start = .);*(.data)*(.gnu.linkonce.d*)*(.gcc_except_table)*(.jcr). = ALIGN (16);PROVIDE (_edata = .);PROVIDE (_copy_end = .);} >ram.bss : {_clear_start = .;*(.bss)*(COMMON). = ALIGN (16);PROVIDE (end = .);. += _StackSize;. = ALIGN (16);_stack_init = .;_clear_end = .;_WorkspaceBase = .;} >ram/* Stabs debugging sections. */.stab 0 : { *(.stab) }.stabstr 0 : { *(.stabstr) }.stab.excl 0 : { *(.stab.excl) }.stab.exclstr 0 : { *(.stab.exclstr) }.stab.index 0 : { *(.stab.index) }.stab.indexstr 0 : { *(.stab.indexstr) }.comment 0 : { *(.comment) }/* DWARF debug sections.Symbols in the DWARF debugging sections are relative to the beginningof the section so we begin them at 0. *//* DWARF 1 */.debug 0 : { *(.debug) }.line 0 : { *(.line) }/* GNU DWARF 1 extensions */.debug_srcinfo 0 : { *(.debug_srcinfo) }.debug_sfnames 0 : { *(.debug_sfnames) }/* DWARF 1.1 and DWARF 2 */.debug_aranges 0 : { *(.debug_aranges) }.debug_pubnames 0 : { *(.debug_pubnames) }/* DWARF 2 */.debug_info 0 : { *(.debug_info) }.debug_abbrev 0 : { *(.debug_abbrev) }.debug_line 0 : { *(.debug_line) }.debug_frame 0 : { *(.debug_frame) }.debug_str 0 : { *(.debug_str) }.debug_loc 0 : { *(.debug_loc) }.debug_macinfo 0 : { *(.debug_macinfo) }/* SGI/MIPS DWARF 2 extensions */.debug_weaknames 0 : { *(.debug_weaknames) }.debug_funcnames 0 : { *(.debug_funcnames) }.debug_typenames 0 : { *(.debug_typenames) }.debug_varnames 0 : { *(.debug_varnames) }/* These must appear regardless of . */}
