1530d68baSNigel CroxonOUTPUT_FORMAT("elf64-ia64-little") 2530d68baSNigel CroxonOUTPUT_ARCH(ia64) 3530d68baSNigel CroxonENTRY(_start_plabel) 4530d68baSNigel CroxonSECTIONS 5530d68baSNigel Croxon{ 6530d68baSNigel Croxon . = 0; 7530d68baSNigel Croxon ImageBase = .; 8*2cc0b085SSergei Trofimovich /* .hash and/or .gnu.hash MUST come first! */ 9*2cc0b085SSergei Trofimovich .hash : { *(.hash) } 10*2cc0b085SSergei Trofimovich .gnu.hash : { *(.gnu.hash) } 11530d68baSNigel Croxon . = ALIGN(4096); 12530d68baSNigel Croxon .text : 13530d68baSNigel Croxon { 1411a459baSNigel Croxon _text = .; 15530d68baSNigel Croxon *(.text) 16530d68baSNigel Croxon *(.text.*) 17530d68baSNigel Croxon *(.gnu.linkonce.t.*) 1811a459baSNigel Croxon . = ALIGN(16); 19530d68baSNigel Croxon } 2011a459baSNigel Croxon _etext = .; 2111a459baSNigel Croxon _text_size = . - _text; 22530d68baSNigel Croxon . = ALIGN(4096); 23530d68baSNigel Croxon __gp = ALIGN (8) + 0x200000; 24530d68baSNigel Croxon .sdata : 25530d68baSNigel Croxon { 2611a459baSNigel Croxon _data = .; 27530d68baSNigel Croxon *(.got.plt) 28530d68baSNigel Croxon *(.got) 29530d68baSNigel Croxon *(.srodata) 30530d68baSNigel Croxon *(.sdata) 31530d68baSNigel Croxon *(.sbss) 32530d68baSNigel Croxon *(.scommon) 33530d68baSNigel Croxon } 34530d68baSNigel Croxon . = ALIGN(4096); 35530d68baSNigel Croxon .data : 36530d68baSNigel Croxon { 37530d68baSNigel Croxon *(.rodata*) 38530d68baSNigel Croxon *(.ctors) 39530d68baSNigel Croxon *(.data*) 40530d68baSNigel Croxon *(.gnu.linkonce.d*) 41530d68baSNigel Croxon *(.plabel) /* data whose relocs we want to ignore */ 42530d68baSNigel Croxon /* the EFI loader doesn't seem to like a .bss section, so we stick 43530d68baSNigel Croxon it all into .data: */ 44530d68baSNigel Croxon *(.dynbss) 45530d68baSNigel Croxon *(.bss) 46530d68baSNigel Croxon *(COMMON) 47530d68baSNigel Croxon } 48d39106b3SNigel Croxon .note.gnu.build-id : { *(.note.gnu.build-id) } 49d39106b3SNigel Croxon 50530d68baSNigel Croxon . = ALIGN(4096); 51530d68baSNigel Croxon .dynamic : { *(.dynamic) } 52530d68baSNigel Croxon . = ALIGN(4096); 53530d68baSNigel Croxon .rela : 54530d68baSNigel Croxon { 55530d68baSNigel Croxon *(.rela.text) 56530d68baSNigel Croxon *(.rela.data*) 57530d68baSNigel Croxon *(.rela.sdata) 58530d68baSNigel Croxon *(.rela.got) 59530d68baSNigel Croxon *(.rela.gnu.linkonce.d*) 60530d68baSNigel Croxon *(.rela.stab) 61530d68baSNigel Croxon *(.rela.ctors) 62530d68baSNigel Croxon } 6311a459baSNigel Croxon _edata = .; 6411a459baSNigel Croxon _data_size = . - _etext; 65530d68baSNigel Croxon . = ALIGN(4096); 66530d68baSNigel Croxon .reloc : /* This is the PECOFF .reloc section! */ 67530d68baSNigel Croxon { 68530d68baSNigel Croxon *(.reloc) 69530d68baSNigel Croxon } 70530d68baSNigel Croxon . = ALIGN(4096); 71530d68baSNigel Croxon .dynsym : { *(.dynsym) } 72530d68baSNigel Croxon . = ALIGN(4096); 73530d68baSNigel Croxon .dynstr : { *(.dynstr) } 74530d68baSNigel Croxon /DISCARD/ : 75530d68baSNigel Croxon { 76530d68baSNigel Croxon *(.rela.plabel) 77530d68baSNigel Croxon *(.rela.reloc) 78530d68baSNigel Croxon *(.IA_64.unwind*) 79530d68baSNigel Croxon *(.IA64.unwind*) 80530d68baSNigel Croxon } 81530d68baSNigel Croxon} 82