URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [binutils-2.20.1/] [ld/] [scripttempl/] [mmo.sc] - Rev 205
Compare with Previous | Blame | View Log
# MMO is not a relocateable format, and we don't want to require an# explicit (e.g.) "-m elf64mmix" when -r is used.test -z $RELOCATEABLE_OUTPUT_FORMAT && RELOCATEABLE_OUTPUT_FORMAT=$OUTPUT_FORMATtest -z ${RELOCATING+0} && OUTPUT_FORMAT=$RELOCATEABLE_OUTPUT_FORMATcat <<EOFOUTPUT_FORMAT("$OUTPUT_FORMAT")OUTPUT_ARCH(mmix)${RELOCATING+ENTRY(Main)}SECTIONS{.text ${RELOCATING+ ${TEXT_START_ADDR}}:{*(.text)${RELOCATING+*(.text.*)}${RELOCATING+*(.gnu.linkonce.t*)}${RELOCATING+*(.rodata)}${RELOCATING+*(.rodata.*)}${RELOCATING+*(.gnu.linkonce.r*)}/* FIXME: Move .init, .fini, .ctors and .dtors to their own sections. */${RELOCATING+ PROVIDE (_init_start = .);}${RELOCATING+ PROVIDE (_init = .);}${RELOCATING+ KEEP (*(.init))}${RELOCATING+ PROVIDE (_init_end = .);}${RELOCATING+ PROVIDE (_fini_start = .);}${RELOCATING+ PROVIDE (_fini = .);}${RELOCATING+ KEEP (*(.fini))}${RELOCATING+ PROVIDE (_fini_end = .);}/* FIXME: Align ctors, dtors, ehframe. */${RELOCATING+ PROVIDE (_ctors_start = .);}${RELOCATING+ PROVIDE (__ctors_start = .);}${RELOCATING+ PROVIDE (_ctors = .);}${RELOCATING+ PROVIDE (__ctors = .);}${RELOCATING+ KEEP (*crtbegin.o(.ctors))}${RELOCATING+ KEEP (*crtbegin?.o(.ctors))}${RELOCATING+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o) .ctors))}${RELOCATING+ KEEP (*(SORT(.ctors.*)))}${RELOCATING+ KEEP (*(.ctors))}${RELOCATING+ PROVIDE (_ctors_end = .);}${RELOCATING+ PROVIDE (__ctors_end = .);}${RELOCATING+ PROVIDE (_dtors_start = .);}${RELOCATING+ PROVIDE (__dtors_start = .);}${RELOCATING+ PROVIDE (_dtors = .);}${RELOCATING+ PROVIDE (__dtors = .);}${RELOCATING+ KEEP (*crtbegin.o(.dtors))}${RELOCATING+ KEEP (*crtbegin?.o(.dtors))}${RELOCATING+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o) .dtors))}${RELOCATING+ KEEP (*(SORT(.dtors.*)))}${RELOCATING+ KEEP (*(.dtors))}${RELOCATING+ PROVIDE (_dtors_end = .);}${RELOCATING+ PROVIDE (__dtors_end = .);}${RELOCATING+KEEP (*(.jcr))}${RELOCATING+KEEP (*(.eh_frame))}${RELOCATING+*(.gcc_except_table)}${RELOCATING+ PROVIDE(etext = .);}${RELOCATING+ PROVIDE(_etext = .);}${RELOCATING+ PROVIDE(__etext = .);}}${RELOCATING+Main = DEFINED (Main) ? Main : (DEFINED (_start) ? _start : ADDR (.text));}.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) }.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_ranges 0 : { *(.debug_ranges) }.data ${RELOCATING+ ${DATA_ADDR}}:{${RELOCATING+ PROVIDE(__Sdata = .);}*(.data);${RELOCATING+*(.data.*)}${RELOCATING+*(.gnu.linkonce.d*)}${RELOCATING+ PROVIDE(__Edata = .);}/* Deprecated, use __Edata. */${RELOCATING+ PROVIDE(edata = .);}${RELOCATING+ PROVIDE(_edata = .);}${RELOCATING+ PROVIDE(__edata = .);}}/* At the moment, although perhaps we should, we can't map sectionswithout contents to sections *with* contents due to FIXME: a BFD bug.Anyway, the mmo back-end ignores sections without contents whenwriting out sections, so this works fine. */.bss :{${RELOCATING+ PROVIDE(__Sbss = .);}${RELOCATING+ PROVIDE(__bss_start = .);}${RELOCATING+ *(.sbss);}${RELOCATING+ *(.bss);}${RELOCATING+*(.bss.*)}${RELOCATING+ *(COMMON);}${RELOCATING+ PROVIDE(__Ebss = .);}}/* Deprecated, use __Ebss or __Eall as appropriate. */${RELOCATING+ PROVIDE(end = .);}${RELOCATING+ PROVIDE(_end = .);}${RELOCATING+ PROVIDE(__end = .);}${RELOCATING+ PROVIDE(__Eall = .);}.MMIX.reg_contents :{/* Note that this section always has a fixed VMA - that of itsfirst register * 8. */*(.MMIX.reg_contents.linker_allocated);*(.MMIX.reg_contents);}/* By default, put the high end of the stack where the register stackbegins. They grow in opposite directions. */PROVIDE (__Stack_start = 0x6000000000000000);/* Unfortunately, stabs are not mappable from ELF to MMO.It can probably be fixed with some amount of work. *//DISCARD/ :{ ${RELOCATING+ *(.gnu.warning.*);} }}EOF
