1*211483cbSFredrik Holmqvist/* Same as elf_x86_64_fbsd_efi.lds, except for OUTPUT_FORMAT below & ctor support - KEEP IN SYNC */ 2*211483cbSFredrik HolmqvistOUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") 3*211483cbSFredrik HolmqvistOUTPUT_ARCH(i386:x86-64) 4*211483cbSFredrik HolmqvistENTRY(_start) 5*211483cbSFredrik HolmqvistSECTIONS 6*211483cbSFredrik Holmqvist{ 7*211483cbSFredrik Holmqvist . = 0; 8*211483cbSFredrik Holmqvist ImageBase = .; 9*211483cbSFredrik Holmqvist .hash : { *(.hash) } /* this MUST come first! */ 10*211483cbSFredrik Holmqvist . = ALIGN(4096); 11*211483cbSFredrik Holmqvist .eh_frame : 12*211483cbSFredrik Holmqvist { 13*211483cbSFredrik Holmqvist *(.eh_frame) 14*211483cbSFredrik Holmqvist } 15*211483cbSFredrik Holmqvist . = ALIGN(4096); 16*211483cbSFredrik Holmqvist .text : 17*211483cbSFredrik Holmqvist { 18*211483cbSFredrik Holmqvist _text = .; 19*211483cbSFredrik Holmqvist *(.text) 20*211483cbSFredrik Holmqvist *(.text.*) 21*211483cbSFredrik Holmqvist *(.gnu.linkonce.t.*) 22*211483cbSFredrik Holmqvist . = ALIGN(16); 23*211483cbSFredrik Holmqvist } 24*211483cbSFredrik Holmqvist _etext = .; 25*211483cbSFredrik Holmqvist _text_size = . - _text; 26*211483cbSFredrik Holmqvist . = ALIGN(4096); 27*211483cbSFredrik Holmqvist .reloc : 28*211483cbSFredrik Holmqvist { 29*211483cbSFredrik Holmqvist *(.reloc) 30*211483cbSFredrik Holmqvist } 31*211483cbSFredrik Holmqvist . = ALIGN(4096); 32*211483cbSFredrik Holmqvist .data : 33*211483cbSFredrik Holmqvist { 34*211483cbSFredrik Holmqvist . = ALIGN(0x4); 35*211483cbSFredrik Holmqvist __ctor_list = .; 36*211483cbSFredrik Holmqvist *(.ctors) 37*211483cbSFredrik Holmqvist __ctor_end = .; 38*211483cbSFredrik Holmqvist _data = .; 39*211483cbSFredrik Holmqvist *(.rodata*) 40*211483cbSFredrik Holmqvist *(.got.plt) 41*211483cbSFredrik Holmqvist *(.got) 42*211483cbSFredrik Holmqvist *(.data*) 43*211483cbSFredrik Holmqvist *(.sdata) 44*211483cbSFredrik Holmqvist /* the EFI loader doesn't seem to like a .bss section, so we stick 45*211483cbSFredrik Holmqvist it all into .data: */ 46*211483cbSFredrik Holmqvist *(.sbss) 47*211483cbSFredrik Holmqvist *(.scommon) 48*211483cbSFredrik Holmqvist *(.dynbss) 49*211483cbSFredrik Holmqvist *(.bss) 50*211483cbSFredrik Holmqvist *(COMMON) 51*211483cbSFredrik Holmqvist *(.rel.local) 52*211483cbSFredrik Holmqvist } 53*211483cbSFredrik Holmqvist .note.gnu.build-id : { *(.note.gnu.build-id) } 54*211483cbSFredrik Holmqvist 55*211483cbSFredrik Holmqvist _edata = .; 56*211483cbSFredrik Holmqvist _data_size = . - _etext; 57*211483cbSFredrik Holmqvist . = ALIGN(4096); 58*211483cbSFredrik Holmqvist .dynamic : { *(.dynamic) } 59*211483cbSFredrik Holmqvist . = ALIGN(4096); 60*211483cbSFredrik Holmqvist .rela : 61*211483cbSFredrik Holmqvist { 62*211483cbSFredrik Holmqvist *(.rela.data*) 63*211483cbSFredrik Holmqvist *(.rela.ctors) 64*211483cbSFredrik Holmqvist *(.rela.got) 65*211483cbSFredrik Holmqvist *(.rela.stab) 66*211483cbSFredrik Holmqvist } 67*211483cbSFredrik Holmqvist . = ALIGN(4096); 68*211483cbSFredrik Holmqvist .dynsym : { *(.dynsym) } 69*211483cbSFredrik Holmqvist . = ALIGN(4096); 70*211483cbSFredrik Holmqvist .dynstr : { *(.dynstr) } 71*211483cbSFredrik Holmqvist . = ALIGN(4096); 72*211483cbSFredrik Holmqvist .ignored.reloc : 73*211483cbSFredrik Holmqvist { 74*211483cbSFredrik Holmqvist *(.rela.reloc) 75*211483cbSFredrik Holmqvist *(.eh_frame) 76*211483cbSFredrik Holmqvist *(.note.GNU-stack) 77*211483cbSFredrik Holmqvist } 78*211483cbSFredrik Holmqvist .comment 0 : { *(.comment) } 79*211483cbSFredrik Holmqvist} 80