/******************************************************************************* * gcc_lm_ppc.lcf: GCC linker control file for PowerPC load modules * @(#) $FilePath: /vobs/ose5/system/refsys/compilers/gcc_lm_ppc.lcf $ * @(#) $FileRevision: /main/tb_current_ose5/10 $ * $Author: joka $$Date: 01/21/13 16:35:41 $ * $Copyright: (C) 2006 by Enea AB. All rights reserved. $ ******************************************************************************/ OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc", "elf32-powerpc") OUTPUT_ARCH("powerpc") ENTRY("crt0_lm") /* Note: * You may have to increase the length of the "rom" memory region and the * origin and length of the "ram" memory region below depending on the size * of the code and data in your load module. */ MEMORY { conf : ORIGIN = 0x00100000, LENGTH = 0x00030000 rom : ORIGIN = 0x01000000, LENGTH = 0x01000000 ram : ORIGIN = 0x03000000, LENGTH = 0x01000000 } PHDRS { ph_conf PT_LOAD ; ph_rom PT_LOAD ; ph_ram PT_LOAD ; } SECTIONS { /*--------------------------------------------------------------------------- * Load module configuration area *-------------------------------------------------------------------------*/ /* Load module configuration section. */ LMCONF : { obj/?*?/ose_confd.o(.rodata) *(LMCONF) } > conf :ph_conf /*--------------------------------------------------------------------------- * Read-only area *-------------------------------------------------------------------------*/ /* Code section. */ .text : { *(.text) *(.text.*) *(.stub) *(oscode) *(.init*) *(.fini*) *(.gnu.warning) *(.gnu.linkonce.t.*) } > rom :ph_rom = 0 /* OSE symbols section. */ OSESYMS : { *(.osesyms) } > 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 .gcc_except_table.*) } > rom :ph_rom /* PowerPC EABI initialized read-only data section. */ .sdata2 : { PROVIDE (_SDA2_BASE_ = .); *(.sdata2) *(.sdata2.*) *(.gnu.linkonce.s2.*) } > rom :ph_rom /* PowerPC EABI uninitialized read-only data section. */ .sbss2 : { *(.sbss2) *(.sbss2.*) *(.gnu.linkonce.sb2.*) } > rom :ph_rom /*--------------------------------------------------------------------------- * Read-write area *-------------------------------------------------------------------------*/ /*------------------------------------------------------------------- * Initialized data (copied by PM) *-----------------------------------------------------------------*/ /* Data section. */ .data : { *(.data) *(.data.*) *(.gnu.linkonce.d.*) SORT(CONSTRUCTORS) } > ram :ph_ram /* C++ constructor section. */ .ctors : { __CTOR_LIST__ = .; *(.ctors) *(SORT(.ctors.*)) __CTOR_END__ = .; } > ram :ph_ram /* C++ destructor section. */ .dtors : { __DTOR_LIST__ = .; *(.dtors) *(SORT(.dtors.*)) __DTOR_END__ = .; } > ram :ph_ram /* Small data section. */ .sdata ALIGN(0x10) : { PROVIDE (_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 : { *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b.*) } > ram :ph_ram /*--------------------------------------------------------------------------- * Debug information *-------------------------------------------------------------------------*/ /* * Stabs debug 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. */ /* 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) } }