123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- 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_*) }
- }
|