/******************************************************************************* * Copyright (C) 2013-2014 by Enea Software AB, * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * 3. Neither the name of the copyright holder nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. ******************************************************************************/ OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc", "elf32-powerpc") OUTPUT_ARCH("powerpc") 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 { .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 .ctors : { __CTOR_LIST__ = .; *(.ctors) *(SORT(.ctors.*)) __CTOR_END__ = .; } > rom :ph_rom .dtors : { __DTOR_LIST__ = .; *(.dtors) *(SORT(.dtors.*)) __DTOR_END__ = .; } > rom :ph_rom OSESYMS : { *(.osesyms) } > rom :ph_rom .rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r.*) } > rom :ph_rom .eh_frame_hdr : { *(.eh_frame_hdr) } > rom :ph_rom .eh_frame : { __EH_FRAME_BEGIN__ = .; *(.eh_frame) LONG(0) __EH_FRAME_END__ = .; } > rom :ph_rom .gcc_except_table : { *(.gcc_except_table .gcc_except_table.*) } > rom :ph_rom .sdata2 : { PROVIDE (_SDA2_BASE_ = .); *(.sdata2) *(.sdata2.*) *(.gnu.linkonce.s2.*) } > rom :ph_rom .sbss2 : { *(.sbss2) *(.sbss2.*) *(.gnu.linkonce.sb2.*) } > rom :ph_rom LMCONF : { obj/?*?/ose_confd.o(.rodata) *(LMCONF) } > rom :ph_conf .data : { LONG(0xDEADBABE) *(.data) *(.data.*) *(.gnu.linkonce.d.*) SORT(CONSTRUCTORS) . = ALIGN(0x10); } > ram :ph_ram = 0 .sdata2 : { _SDA2_BASE_ = .; *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) }> ram :ph_ram .sdata : { PROVIDE (_SDA_BASE_ = .); *(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*) } > ram :ph_ram .sbss : { *(.sbss) *(.sbss.*) *(.scommon) *(.gnu.linkonce.sb.*) } > ram :ph_ram .bss (NOLOAD) : { *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b.*) *(.osvars) } > ram :ph_ram .ignore (NOLOAD) : { *(.rel.dyn) } > ram :ph_ram .debug 0 : { *(.debug) } .line 0 : { *(.line) } .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } .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) } .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } } __OSESYMS_START = ADDR(OSESYMS); __OSESYMS_END = ADDR(OSESYMS) + SIZEOF(OSESYMS);