1OUTPUT_ARCH(arm) 2ENTRY(_start) 3SECTIONS 4{ 5 /* Read-only sections, merged into text segment: */ 6 . = 0; 7 ImageBase = .; 8 .text : { 9 *(.peheader) 10 *(.text .stub .text.* .gnu.linkonce.t.*) 11 /* .gnu.warning sections are handled specially by elf32.em. */ 12 *(.gnu.warning) 13 *(.gnu.linkonce.t*) 14 } =0 15 _etext = .; 16 PROVIDE (etext = .); 17 . = ALIGN(16); 18 .data : 19 { 20 *(.data .data.*) 21 *(.gnu.linkonce.d*) 22 *(.rodata) 23 *(.rodata.*) 24 CONSTRUCTORS 25 26 . = ALIGN(4); 27 PROVIDE (__bss_start = .); 28 *(.sbss) 29 *(.scommon) 30 *(.dynsbss) 31 *(.dynbss) 32 *(.bss) 33 *(COMMON) 34 . = ALIGN(4); 35 PROVIDE (__bss_end = .); 36 } 37 .dynamic : { *(.dynamic) } 38 /* We want the small data sections together, so single-instruction offsets 39 can access them all, and initialized data all before uninitialized, so 40 we can shorten the on-disk segment size. */ 41 .sdata : { 42 *(.got.plt .got) 43 *(.sdata*.sdata.* .gnu.linkonce.s.*) 44 } 45 __gp = .; 46 .plt : { *(.plt) } 47 .reloc : { *(.reloc) } 48 .dynsym : { *(.dynsym) } 49 .dynstr : { *(.dynstr) } 50 .rel.dyn : { 51 *(.rel.*) 52 *(.relset_*) 53 } 54 _edata = .; 55 .hash : { *(.hash) } 56} 57