1530d68baSNigel CroxonOUTPUT_FORMAT("elf64-ia64-little") 2530d68baSNigel CroxonOUTPUT_ARCH(ia64) 3530d68baSNigel CroxonENTRY(_start_plabel) 4530d68baSNigel CroxonSECTIONS 5530d68baSNigel Croxon{ 6530d68baSNigel Croxon . = 0; 7530d68baSNigel Croxon ImageBase = .; 82cc0b085SSergei Trofimovich /* .hash and/or .gnu.hash MUST come first! */ 92cc0b085SSergei Trofimovich .hash : { *(.hash) } 102cc0b085SSergei Trofimovich .gnu.hash : { *(.gnu.hash) } 1115f10734SCallum Farmer .eh_frame : { *(.eh_frame) } 1215f10734SCallum Farmer .gcc_except_table : { *(.gcc_except_table*) } 13530d68baSNigel Croxon . = ALIGN(4096); 14530d68baSNigel Croxon .text : 15530d68baSNigel Croxon { 1611a459baSNigel Croxon _text = .; 17530d68baSNigel Croxon *(.text) 18530d68baSNigel Croxon *(.text.*) 19530d68baSNigel Croxon *(.gnu.linkonce.t.*) 2011a459baSNigel Croxon . = ALIGN(16); 21530d68baSNigel Croxon } 2211a459baSNigel Croxon _etext = .; 2311a459baSNigel Croxon _text_size = . - _text; 24231c7632SCallum Farmer . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); 25530d68baSNigel Croxon __gp = ALIGN (8) + 0x200000; 26530d68baSNigel Croxon .sdata : 27530d68baSNigel Croxon { 2811a459baSNigel Croxon _data = .; 29530d68baSNigel Croxon *(.got.plt) 30530d68baSNigel Croxon *(.got) 31530d68baSNigel Croxon *(.srodata) 32530d68baSNigel Croxon *(.sdata) 33530d68baSNigel Croxon *(.sbss) 34530d68baSNigel Croxon *(.scommon) 35530d68baSNigel Croxon } 36530d68baSNigel Croxon . = ALIGN(4096); 37530d68baSNigel Croxon .data : 38530d68baSNigel Croxon { 39530d68baSNigel Croxon *(.rodata*) 40530d68baSNigel Croxon *(.ctors) 41530d68baSNigel Croxon *(.data*) 42530d68baSNigel Croxon *(.gnu.linkonce.d*) 43530d68baSNigel Croxon *(.plabel) /* data whose relocs we want to ignore */ 44530d68baSNigel Croxon /* the EFI loader doesn't seem to like a .bss section, so we stick 45530d68baSNigel Croxon it all into .data: */ 46530d68baSNigel Croxon *(.dynbss) 4715f10734SCallum Farmer *(.bss*) 48530d68baSNigel Croxon *(COMMON) 49530d68baSNigel Croxon } 50d39106b3SNigel Croxon .note.gnu.build-id : { *(.note.gnu.build-id) } 51d39106b3SNigel Croxon 52530d68baSNigel Croxon . = ALIGN(4096); 53530d68baSNigel Croxon .dynamic : { *(.dynamic) } 54530d68baSNigel Croxon . = ALIGN(4096); 55530d68baSNigel Croxon .rela : 56530d68baSNigel Croxon { 57eea6d31aSCallum Farmer *(.rela.text*) 58eea6d31aSCallum Farmer *(.rela.sdata*) 59530d68baSNigel Croxon *(.rela.data*) 60530d68baSNigel Croxon *(.rela.got) 6102f96e8aSCallum Farmer *(.rela.dyn) 62530d68baSNigel Croxon *(.rela.gnu.linkonce.d*) 63530d68baSNigel Croxon *(.rela.stab) 64530d68baSNigel Croxon *(.rela.ctors) 65530d68baSNigel Croxon } 661a10c661SCallum Farmer . = ALIGN(4096); 671a10c661SCallum Farmer .rela.plt : { *(.rela.plt) } 6811a459baSNigel Croxon _edata = .; 6911a459baSNigel Croxon _data_size = . - _etext; 70530d68baSNigel Croxon . = ALIGN(4096); 71530d68baSNigel Croxon .reloc : /* This is the PECOFF .reloc section! */ 72530d68baSNigel Croxon { 73*bc233a7aSCallum Farmer KEEP (*(.reloc)) 74530d68baSNigel Croxon } 75530d68baSNigel Croxon . = ALIGN(4096); 76530d68baSNigel Croxon .dynsym : { *(.dynsym) } 77530d68baSNigel Croxon . = ALIGN(4096); 78530d68baSNigel Croxon .dynstr : { *(.dynstr) } 79231c7632SCallum Farmer . = DATA_SEGMENT_END (.); 80530d68baSNigel Croxon /DISCARD/ : 81530d68baSNigel Croxon { 82530d68baSNigel Croxon *(.rela.plabel) 83530d68baSNigel Croxon *(.rela.reloc) 84530d68baSNigel Croxon *(.IA_64.unwind*) 85530d68baSNigel Croxon *(.IA64.unwind*) 86530d68baSNigel Croxon } 87530d68baSNigel Croxon} 88