/* COPYRIGHT-ENEA-EXAMPLE-R2 * ************************************************************************** * Copyright (C) 2010 by Enea Software AB. * All rights reserved. * * This Example is furnished under a Software License Agreement and * may be used only in accordance with the terms of such agreement. * No title to and ownership of the Example is hereby transferred. * * The information in this Example is subject to change * without notice and should not be construed as a commitment * by Enea Software AB. * * DISCLAIMER * This Example is delivered "AS IS", consequently * Enea Software AB makes no representations or warranties, * expressed or implied, for the Example. ************************************************************************** * COPYRIGHT-END */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH("i386") ENTRY("crt0_lm") MEMORY { rom : ORIGIN = 0x01000000, LENGTH = 0x01000000 ram : ORIGIN = 0x02000000, LENGTH = 0x01000000 } PHDRS { ph_conf PT_LOAD ; ph_rom PT_LOAD ; ph_ram PT_LOAD ; } SECTIONS { /*--------------------------------------------------------------------------- * Read-only area *-------------------------------------------------------------------------*/ /* Code section. */ .text : { *(.text_first) *(.text) *(.text.*) *(.stub) *(oscode) *(.init*) *(.fini*) *(.gnu.warning) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) } > rom :ph_rom = 0 .ose_sfk_biosentry : { *(.ose_sfk_biosentry) } > rom :ph_rom /* C++ constructor section. */ .ctors : { __CTOR_LIST__ = .; *(.ctors) *(SORT(.ctors.*)) __CTOR_END__ = .; } > rom :ph_rom /* C++ destructor section. */ .dtors : { __DTOR_LIST__ = .; *(.dtors) *(SORT(.dtors.*)) __DTOR_END__ = .; } > rom :ph_rom /* OSE symbols section. */ OSESYMS : { *(.osesyms) } > rom :ph_rom .plt : { *(.plt) *(.iplt) } > rom :ph_rom /* Read-only data section. */ .rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r.*) } > rom :ph_rom /* C++ exception handling section. */ .eh_frame : { __EH_FRAME_BEGIN__ = .; *(.eh_frame) LONG(0) __EH_FRAME_END__ = .; } > rom :ph_rom /* C++ exception handling section. */ .gcc_except_table : { *(.gcc_except_table) } > rom :ph_rom /* PowerPC EABI initialized read-only data section. */ .sdata2 : { *(.sdata2) *(.sdata2.*) *(.gnu.linkonce.s2.*) } > rom :ph_rom /* PowerPC EABI uninitialized read-only data section. */ .sbss2 : { *(.sbss2) *(.sbss2.*) *(.gnu.linkonce.sb2.*) } > rom :ph_rom /* Dynamic relocations */ .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } > rom :ph_rom /*--------------------------------------------------------------------------- * Load module configuration area *-------------------------------------------------------------------------*/ /* Load module configuration section. */ LMCONF : { obj/?*?/ose_confd.o(.rodata) *(LMCONF) } > rom :ph_conf /*--------------------------------------------------------------------------- * Read-write area *-------------------------------------------------------------------------*/ /*------------------------------------------------------------------- * Initialized data (copied by PM ) *-----------------------------------------------------------------*/ /* Data section. */ .data : { LONG(0xDEADBABE) *(.data) *(.data.*) *(.gnu.linkonce.d.*) SORT(CONSTRUCTORS) . = ALIGN(0x10); } > ram :ph_ram = 0 .got : { *(.got.plt) *(.got) } > rom :ph_ram /* Global offset table for dynamically linked procedures. */ .got.plt : { *(.got.plt) *(.igot.plt) } > rom :ph_ram /* Small data section. */ .sdata2 : { _SDA2_BASE_ = .; *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) }> ram :ph_ram .sdata : { _SDA_BASE_ = .; *(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*) } > ram :ph_ram /*------------------------------------------------------------------- * Uninitialized data (cleared by PM ) *-----------------------------------------------------------------*/ /* Small bss section. */ .sbss : { *(.sbss) *(.sbss.*) *(.scommon) *(.gnu.linkonce.sb.*) } > ram :ph_ram /* Bss section. */ .bss (NOLOAD) : { *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b.*) *(.osvars) } > ram :ph_ram /* Ignore unwanted sections that are not used in OSE. */ .ignore (NOLOAD) : { *(.rel.dyn) } > ram :ph_ram /*--------------------------------------------------------------------------- * Debug information *-------------------------------------------------------------------------*/ /* * DWARF debug sections. */ /* 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) *(.gnu.linkonce.wi.*) } .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) } } /* Symbols used by DDA. */ __OSESYMS_START = ADDR(OSESYMS); __OSESYMS_END = ADDR(OSESYMS) + SIZEOF(OSESYMS);