1530d68baSNigel CroxonOUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") 2530d68baSNigel CroxonOUTPUT_ARCH(arm) 3530d68baSNigel CroxonENTRY(_start) 4530d68baSNigel CroxonSECTIONS 5530d68baSNigel Croxon{ 6530d68baSNigel Croxon .text 0x0 : { 711a459baSNigel Croxon _text = .; 8530d68baSNigel Croxon *(.text.head) 9530d68baSNigel Croxon *(.text) 10530d68baSNigel Croxon *(.text.*) 11530d68baSNigel Croxon *(.gnu.linkonce.t.*) 12530d68baSNigel Croxon *(.srodata) 13530d68baSNigel Croxon *(.rodata*) 14530d68baSNigel Croxon . = ALIGN(16); 15530d68baSNigel Croxon } 1611a459baSNigel Croxon _etext = .; 17*20110935SCallum Farmer _text_size = _etext - _text; 1889d55b36SCallum Farmer . = ALIGN(4096); 19530d68baSNigel Croxon .dynamic : { *(.dynamic) } 207ad75d91SCallum Farmer . = ALIGN(4096); 21530d68baSNigel Croxon .data : 22530d68baSNigel Croxon { 2311a459baSNigel Croxon _data = .; 24530d68baSNigel Croxon *(.sdata) 25530d68baSNigel Croxon *(.data) 26530d68baSNigel Croxon *(.data1) 2706db4a2bSNigel Croxon *(.data.*) 28530d68baSNigel Croxon *(.got.plt) 29530d68baSNigel Croxon *(.got) 30530d68baSNigel Croxon 314f8b339fSPeter Jones /* 324f8b339fSPeter Jones * Note that these aren't the using the GNU "CONSTRUCTOR" output section 334f8b339fSPeter Jones * command, so they don't start with a size. Because of p2align and the 344f8b339fSPeter Jones * end/END definitions, and the fact that they're mergeable, they can also 354f8b339fSPeter Jones * have NULLs which aren't guaranteed to be at the end. 364f8b339fSPeter Jones */ 374f8b339fSPeter Jones . = ALIGN(16); 389c5403e1SCallum Farmer __init_array_start = .; 39e2aa0997SCallum Farmer *(SORT(.init_array.*)) 40e2aa0997SCallum Farmer *(.init_array) 419c5403e1SCallum Farmer __init_array_end = .; 429dbfe1c3SCallum Farmer . = ALIGN(16); 434f8b339fSPeter Jones __CTOR_LIST__ = .; 44e2aa0997SCallum Farmer *(SORT(.ctors.*)) 45e2aa0997SCallum Farmer *(.ctors) 464f8b339fSPeter Jones __CTOR_END__ = .; 479dbfe1c3SCallum Farmer . = ALIGN(16); 484f8b339fSPeter Jones __DTOR_LIST__ = .; 49e2aa0997SCallum Farmer *(SORT(.dtors.*)) 50e2aa0997SCallum Farmer *(.dtors) 514f8b339fSPeter Jones __DTOR_END__ = .; 529dbfe1c3SCallum Farmer . = ALIGN(16); 539c5403e1SCallum Farmer __fini_array_start = .; 54e2aa0997SCallum Farmer *(SORT(.fini_array.*)) 55e2aa0997SCallum Farmer *(.fini_array) 569c5403e1SCallum Farmer __fini_array_end = .; 574f8b339fSPeter Jones 58530d68baSNigel Croxon /* the EFI loader doesn't seem to like a .bss section, so we stick 59530d68baSNigel Croxon it all into .data: */ 60530d68baSNigel Croxon . = ALIGN(16); 61530d68baSNigel Croxon _bss = .; 62530d68baSNigel Croxon *(.sbss) 63530d68baSNigel Croxon *(.scommon) 64530d68baSNigel Croxon *(.dynbss) 65530d68baSNigel Croxon *(.bss) 6606db4a2bSNigel Croxon *(.bss.*) 67530d68baSNigel Croxon *(COMMON) 68530d68baSNigel Croxon . = ALIGN(16); 69530d68baSNigel Croxon _bss_end = .; 70530d68baSNigel Croxon } 71d39106b3SNigel Croxon 727ad75d91SCallum Farmer . = ALIGN(4096); 73eea6d31aSCallum Farmer .rel : 74eea6d31aSCallum Farmer { 75eea6d31aSCallum Farmer *(.rel.text*) 76eea6d31aSCallum Farmer *(.rel.data*) 77eea6d31aSCallum Farmer *(.rel.got) 7802f96e8aSCallum Farmer *(.rel.dyn) 79eea6d31aSCallum Farmer *(.rel.stab) 80e2aa0997SCallum Farmer *(.rel.init_array*) 81e2aa0997SCallum Farmer *(.rel.fini_array*) 82e2aa0997SCallum Farmer *(.rel.ctors*) 83e2aa0997SCallum Farmer *(.rel.dtors*) 844c938facSCallum Farmer 85eea6d31aSCallum Farmer } 861a10c661SCallum Farmer . = ALIGN(4096); 871a10c661SCallum Farmer .rel.plt : { *(.rel.plt) } 88530d68baSNigel Croxon _edata = .; 89*20110935SCallum Farmer _data_size = _edata - _etext; 90530d68baSNigel Croxon 91530d68baSNigel Croxon . = ALIGN(4096); 92530d68baSNigel Croxon .dynsym : { *(.dynsym) } 93530d68baSNigel Croxon . = ALIGN(4096); 94530d68baSNigel Croxon .dynstr : { *(.dynstr) } 95530d68baSNigel Croxon . = ALIGN(4096); 96e64257b9SNigel Croxon .note.gnu.build-id : { *(.note.gnu.build-id) } 97530d68baSNigel Croxon /DISCARD/ : 98530d68baSNigel Croxon { 99530d68baSNigel Croxon *(.rel.reloc) 100530d68baSNigel Croxon *(.eh_frame) 101530d68baSNigel Croxon *(.note.GNU-stack) 102530d68baSNigel Croxon } 103530d68baSNigel Croxon .comment 0 : { *(.comment) } 104530d68baSNigel Croxon} 105