STARTUP(LIBC_PREFIX/arch/UARCH/src/entry.o) ENTRY(__entry) PHDRS { interp PT_INTERP; text PT_LOAD FLAGS(5); data PT_LOAD FLAGS(6); dynamic PT_DYNAMIC; } SECTIONS { . = 0x4000 + SIZEOF_HEADERS; .interp : { *(.interp); } :text :interp /* Align on word boundary -- instructions will follow. */ . = ALIGN(4); .init : { *(.init); } :text .text : { *(.text); *(.rodata*); *(.MIPS.stubs); } :text .hash : { *(.hash); } : text .reginfo : { *(.reginfo); } : text .rel.plt : { *(.rel.plt); } : text /* *.rel.dyn MUST FOLLOW IMMEDIATELY after .rel.plt * without alignment gap or DT_REL will be broken */ .rel.dyn : { *(.rel.*); } :text .plt : { *(.plt); } : text .dynsym : { *(.dynsym); } : text .dynstr : { *(.dynstr); } : text . = . + 0x4000; .dynamic : { *(.dynamic); } :data :dynamic .data : { *(.data); *(.data.rel*); } :data .got : { _gp = .; *(.got); } :data /* .tdata : { _tdata_start = .; *(.tdata); _tdata_end = .; } :data .tbss : { _tbss_start = .; *(.tbss); _tbss_end = .; } :data _tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss)); */ .sbss : { *(.scommon); *(.sbss); } .bss : { *(.bss); *(COMMON); } :data . = ALIGN(0x4000); _heap = .; /* /DISCARD/ : { *(*); }*/ }