OUTPUT_FORMAT("elf32-z80", "elf32-z80", "elf32-z80") OUTPUT_ARCH(z80) ENTRY(_start) /*PHDRS { text PT_LOAD ; rodata PT_LOAD ; data PT_LOAD ; bss PT_LOAD ; }*/ SECTIONS { /* Main binary */ PROVIDE(_org = .); . = _org; PROVIDE(_text = _org); __text = SEGMENT_START("text", _text); ".init$absolute" = __text != .; ".text$absolute" = __text != .; ".rodata$absolute" = __text != .; . = __text; .init : { __init_start = .; KEEP(*(SORT_BY_NAME(.init*))) __init_end = .; } /*:text*/ .text : { __text_start = .; *(.text*) __text_end = .; } /*:text*/ .rodata : { __rodata_start = .; *(.rodata*) __rodata_end = .; } /*:rodata*/ PROVIDE(_data = .); __data = SEGMENT_START("data", _data); ".data$absolute" = __data != .; . = __data; .data : { __data_start = .; *(.data*) __data_end = .; } /*:data*/ PROVIDE(_bss = .); __bss = SEGMENT_START("bss", _bss); ".bss$absolute" = __bss != .; . = __bss; .bss (NOLOAD) : { __bss_start = .; *(.bss*) __bss_end = .; } /*:bss*/ PROVIDE(_brk = .); __brk = SEGMENT_START("brk", _brk); ".brk$absolute" = __brk != .; . = __brk; /* .brk is like .bss, except will always be last for grow-up data */ .brk (NOLOAD) : { __brk_start = .; *(.brk*) __brk_end = .; } /*:bss*/ _end = .; PROVIDE (end = .); /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } }