1530d68baSNigel CroxonOUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") 2530d68baSNigel CroxonOUTPUT_ARCH(arm) 3530d68baSNigel CroxonENTRY(_start) 4530d68baSNigel CroxonSECTIONS 5530d68baSNigel Croxon{ 650b27a85SCallum Farmer .text 0 : { 7530d68baSNigel Croxon *(.text.head) 850b27a85SCallum Farmer _text = .; 9530d68baSNigel Croxon *(.text) 10530d68baSNigel Croxon *(.text.*) 11530d68baSNigel Croxon *(.gnu.linkonce.t.*) 128abf159dSCallum Farmer *(.plt) 13530d68baSNigel Croxon . = ALIGN(16); 1450b27a85SCallum Farmer _evtext = .; 1550b27a85SCallum Farmer . = ALIGN(4096); 1611a459baSNigel Croxon _etext = .; 1750b27a85SCallum Farmer } =0 1850b27a85SCallum Farmer _text_vsize = _evtext - _text; 1920110935SCallum Farmer _text_size = _etext - _text; 2089d55b36SCallum Farmer . = ALIGN(4096); 2150b27a85SCallum Farmer _reloc = .; 2250b27a85SCallum Farmer .areloc : { 2350b27a85SCallum Farmer *(.areloc) 2450b27a85SCallum Farmer _evreloc = .; 2550b27a85SCallum Farmer . = ALIGN(4096); 2650b27a85SCallum Farmer _ereloc = .; 2750b27a85SCallum Farmer } =0 2850b27a85SCallum Farmer _reloc_vsize = _evreloc - _reloc; 2950b27a85SCallum Farmer _reloc_size = _ereloc - _reloc; 30*cd786493SCallum Farmer . = ALIGN(65536); 3150b27a85SCallum Farmer _data = .; 32530d68baSNigel Croxon .dynamic : { *(.dynamic) } 337ad75d91SCallum Farmer . = ALIGN(4096); 34530d68baSNigel Croxon .data : 35530d68baSNigel Croxon { 36530d68baSNigel Croxon *(.sdata) 37530d68baSNigel Croxon *(.data) 38530d68baSNigel Croxon *(.data1) 3906db4a2bSNigel Croxon *(.data.*) 40530d68baSNigel Croxon *(.got.plt) 41530d68baSNigel Croxon *(.got) 42530d68baSNigel Croxon 434f8b339fSPeter Jones /* 444f8b339fSPeter Jones * Note that these aren't the using the GNU "CONSTRUCTOR" output section 454f8b339fSPeter Jones * command, so they don't start with a size. Because of p2align and the 464f8b339fSPeter Jones * end/END definitions, and the fact that they're mergeable, they can also 474f8b339fSPeter Jones * have NULLs which aren't guaranteed to be at the end. 484f8b339fSPeter Jones */ 494f8b339fSPeter Jones . = ALIGN(16); 509c5403e1SCallum Farmer __init_array_start = .; 51e2aa0997SCallum Farmer *(SORT(.init_array.*)) 52e2aa0997SCallum Farmer *(.init_array) 539c5403e1SCallum Farmer __init_array_end = .; 549dbfe1c3SCallum Farmer . = ALIGN(16); 554f8b339fSPeter Jones __CTOR_LIST__ = .; 56e2aa0997SCallum Farmer *(SORT(.ctors.*)) 57e2aa0997SCallum Farmer *(.ctors) 584f8b339fSPeter Jones __CTOR_END__ = .; 599dbfe1c3SCallum Farmer . = ALIGN(16); 604f8b339fSPeter Jones __DTOR_LIST__ = .; 61e2aa0997SCallum Farmer *(SORT(.dtors.*)) 62e2aa0997SCallum Farmer *(.dtors) 634f8b339fSPeter Jones __DTOR_END__ = .; 649dbfe1c3SCallum Farmer . = ALIGN(16); 659c5403e1SCallum Farmer __fini_array_start = .; 66e2aa0997SCallum Farmer *(SORT(.fini_array.*)) 67e2aa0997SCallum Farmer *(.fini_array) 689c5403e1SCallum Farmer __fini_array_end = .; 694f8b339fSPeter Jones 70530d68baSNigel Croxon /* the EFI loader doesn't seem to like a .bss section, so we stick 71530d68baSNigel Croxon it all into .data: */ 72530d68baSNigel Croxon . = ALIGN(16); 73530d68baSNigel Croxon _bss = .; 74530d68baSNigel Croxon *(.sbss) 75530d68baSNigel Croxon *(.scommon) 76530d68baSNigel Croxon *(.dynbss) 77530d68baSNigel Croxon *(.bss) 7806db4a2bSNigel Croxon *(.bss.*) 79530d68baSNigel Croxon *(COMMON) 80530d68baSNigel Croxon . = ALIGN(16); 81530d68baSNigel Croxon _bss_end = .; 8250b27a85SCallum Farmer _evdata = .; 8350b27a85SCallum Farmer . = ALIGN(4096); 8450b27a85SCallum Farmer _edata = .; 8550b27a85SCallum Farmer } =0 8650b27a85SCallum Farmer _data_vsize = _evdata - _data; 8750b27a85SCallum Farmer _data_size = _edata - _data; 88d39106b3SNigel Croxon 897ad75d91SCallum Farmer . = ALIGN(4096); 9050b27a85SCallum Farmer _rodata = .; 91eea6d31aSCallum Farmer .rel : 92eea6d31aSCallum Farmer { 93eea6d31aSCallum Farmer *(.rel.text*) 94eea6d31aSCallum Farmer *(.rel.data*) 95eea6d31aSCallum Farmer *(.rel.got) 9602f96e8aSCallum Farmer *(.rel.dyn) 97eea6d31aSCallum Farmer *(.rel.stab) 98e2aa0997SCallum Farmer *(.rel.init_array*) 99e2aa0997SCallum Farmer *(.rel.fini_array*) 100e2aa0997SCallum Farmer *(.rel.ctors*) 101e2aa0997SCallum Farmer *(.rel.dtors*) 1024c938facSCallum Farmer 103eea6d31aSCallum Farmer } 1041a10c661SCallum Farmer . = ALIGN(4096); 1051a10c661SCallum Farmer .rel.plt : { *(.rel.plt) } 106b3e80c38SCallum Farmer . = ALIGN(4096); 10750b27a85SCallum Farmer .rodata : { 10850b27a85SCallum Farmer *(.rodata*) 10950b27a85SCallum Farmer _evrodata = .; 11050b27a85SCallum Farmer . = ALIGN(4096); 11150b27a85SCallum Farmer _erodata = .; 11250b27a85SCallum Farmer } =0 11350b27a85SCallum Farmer _rodata_vsize = _evrodata - _rodata; 11450b27a85SCallum Farmer _rodata_size = _erodata - _rodata; 11550b27a85SCallum Farmer _image_end = .; 11650b27a85SCallum Farmer _alldata_size = _image_end - _reloc; 117530d68baSNigel Croxon 118530d68baSNigel Croxon . = ALIGN(4096); 119530d68baSNigel Croxon .dynsym : { *(.dynsym) } 120530d68baSNigel Croxon . = ALIGN(4096); 121530d68baSNigel Croxon .dynstr : { *(.dynstr) } 122530d68baSNigel Croxon . = ALIGN(4096); 123e64257b9SNigel Croxon .note.gnu.build-id : { *(.note.gnu.build-id) } 12450b27a85SCallum Farmer . = ALIGN(4096); 12550b27a85SCallum Farmer .hash : { *(.hash) } 12650b27a85SCallum Farmer . = ALIGN(4096); 12750b27a85SCallum Farmer .gnu.hash : { *(.gnu.hash) } 12850b27a85SCallum Farmer . = ALIGN(4096); 12950b27a85SCallum Farmer .ARM.exidx : { *(.ARM.exidx*) } 13050b27a85SCallum Farmer .ARM.extab : { *(.ARM.extab*) } 131530d68baSNigel Croxon /DISCARD/ : 132530d68baSNigel Croxon { 13350b27a85SCallum Farmer *(.rel.areloc) 134530d68baSNigel Croxon *(.note.GNU-stack) 135530d68baSNigel Croxon } 136530d68baSNigel Croxon .comment 0 : { *(.comment) } 137530d68baSNigel Croxon} 138