/* * $Id$ */ OUTPUT_FORMAT("elf32-bigmips") OUTPUT_ARCH(mips) /* Do we need any of these for elf? __DYNAMIC = 0; */ _DYNAMIC_LINK = 0; SECTIONS { /* Read-only sections, merged into text segment: */ .text 0x80030000 : /* */ /* .text 0xa0020000 : /* */ /* .text 0x00020000 : /* */ { _ftext = . ; *(.init) eprol = .; *(.text) *(.text.*) *(.gnu.linkonce.t*) *(.mips16.fn.*) *(.mips16.call.*) PROVIDE (__runtime_reloc_start = .); *(.rel.sdata) PROVIDE (__runtime_reloc_stop = .); *(.fini) /* CREATE_OBJECT_SYMBOLS */ etext = .; _etext = .; } .ctors : { ___ctors = .; /* * This version is preferable but requires a very late * model binutils (post 2.9.1). KEEP(*crtbegin.o(.ctors)); KEEP(*(SORT(.ctors.*))); KEEP(*(.ctors)); */ *crtbegin.o(.ctors); *(.ctors.*); *(.ctors); ___ctors_end = .; } .dtors : { ___dtors = .; /* * This version is preferable but requires a very late * model binutils (post 2.9.1). KEEP(*crtbegin.o(.dtors)); KEEP(*(SORT(.dtors.*))); KEEP(*(.dtors)); */ *crtbegin.o(.dtors); *(.dtors.*); *(.dtors); ___dtors_end = .; } . = .; .rodata ALIGN(8) : { *(.rodata) *(.gnu.linkonce.r*) } .rodata1 ALIGN(8) : { *(.rodata1) . = ALIGN(8); } .reginfo . : { *(.reginfo) } /* also: .hash .dynsym .dynstr .plt(if r/o) .rel.got */ /* Read-write section, merged into data segment: */ .data ALIGN(16) : { _fdata = . ; *(.data) CONSTRUCTORS } .data1 ALIGN(8) : { *(.data1) } _gp = . + 0x8000; .lit8 . : { *(.lit8) } .lit4 . : { *(.lit4) } /* also (before uninitialized portion): .dynamic .got .plt(if r/w) (or does .dynamic go into its own segment?) */ /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so we can shorten the on-disk segment size. */ .sdata ALIGN(8) : { *(.sdata) } _edata = .; __bss_start = ALIGN(8); _fbss = .; .sbss ALIGN(8) : { *(.sbss) *(.scommon) } .bss ALIGN(8) : { *(.bss) *(COMMON) _end = . ; end = . ; } /* Debug sections. These should never be loadable, but they must have zero addresses for the debuggers to work correctly. */ .line 0 : { *(.line) } .debug 0 : { *(.debug) } .debug_sfnames 0 : { *(.debug_sfnames) } .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_macinfo 0 : { *(.debug_macinfo) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_aranges 0 : { *(.debug_aranges) } }