URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [lib/] [libbsp/] [m68k/] [mvme167/] [startup/] [linkcmds] - Rev 173
Compare with Previous | Blame | View Log
/** This file contains directives for the GNU linker which are specific* to the Motorola MVME167 board. This linker script produces ELF* executables.** Copyright (c) 1999, National Research Council of Canada.* Some of this material was copied from binutils-2.9.4 linker scripts,* and is therefore likely to be copyrighted by the Free Software* Foundation, even though explicit copyright notices did not appear in* those files.** 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.** $Id: linkcmds,v 1.2 2001-09-27 12:00:20 chris Exp $*//* These are not really needed here *//* OUTPUT_FORMAT("elf32-m68k") */OUTPUT_ARCH(m68k)ENTRY(_start)/** Declare some sizes. Heap is sized at whatever ram space is left.*/_RamBase = DEFINED(_RamBase) ? _RamBase : 0x00800000;_RamSize = DEFINED(_RamSize) ? _RamSize : 4M;_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0;_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000;MEMORY{/* The location of RAM is the address space is configurable.This is where we put one board. The base address should bepassed as a parameter when building multiprocessor imageswhere each board resides at a different address. */ram : org = 0x00800000, l = 4Mrom : org = 0xFF800000, l = 4Msram : org = 0xFFE00000, l = 128K}SECTIONS{/** Text, data and bss segments*/.text : {*(.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);PROVIDE(_rodata_start = . );*(.rodata)*(.gnu.linkonce.r*)PROVIDE(_erodata = . );. = ALIGN (16);PROVIDE (_etext = .);} >ram.data : {PROVIDE (_copy_start = .);*(.data)*(.gnu.linkonce.d*)*(.gcc_except_table). = 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 . */}
