1*479ab7f0SSascha Wildner/* $FreeBSD: head/sys/boot/efi/loader/arch/amd64/ldscript.amd64 280950 2015-04-01 08:30:40Z andrew $ */ 2*479ab7f0SSascha WildnerOUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") 3*479ab7f0SSascha WildnerOUTPUT_ARCH(i386:x86-64) 4*479ab7f0SSascha WildnerENTRY(_start) 5*479ab7f0SSascha WildnerSECTIONS 6*479ab7f0SSascha Wildner{ 7*479ab7f0SSascha Wildner /* Read-only sections, merged into text segment: */ 8*479ab7f0SSascha Wildner . = 0; 9*479ab7f0SSascha Wildner ImageBase = .; 10*479ab7f0SSascha Wildner .hash : { *(.hash) } /* this MUST come first! */ 11*479ab7f0SSascha Wildner . = ALIGN(4096); 12*479ab7f0SSascha Wildner .eh_frame : 13*479ab7f0SSascha Wildner { 14*479ab7f0SSascha Wildner *(.eh_frame) 15*479ab7f0SSascha Wildner } 16*479ab7f0SSascha Wildner . = ALIGN(4096); 17*479ab7f0SSascha Wildner .text : { 18*479ab7f0SSascha Wildner *(.text .stub .text.* .gnu.linkonce.t.*) 19*479ab7f0SSascha Wildner /* .gnu.warning sections are handled specially by elf32.em. */ 20*479ab7f0SSascha Wildner *(.gnu.warning) 21*479ab7f0SSascha Wildner *(.plt) 22*479ab7f0SSascha Wildner } =0xCCCCCCCC 23*479ab7f0SSascha Wildner . = ALIGN(4096); 24*479ab7f0SSascha Wildner .data : { 25*479ab7f0SSascha Wildner *(.rodata .rodata.* .gnu.linkonce.r.*) 26*479ab7f0SSascha Wildner *(.rodata1) 27*479ab7f0SSascha Wildner *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) 28*479ab7f0SSascha Wildner *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) 29*479ab7f0SSascha Wildner *(.opd) 30*479ab7f0SSascha Wildner *(.data .data.* .gnu.linkonce.d.*) 31*479ab7f0SSascha Wildner *(.data1) 32*479ab7f0SSascha Wildner *(.plabel) 33*479ab7f0SSascha Wildner *(.dynbss) 34*479ab7f0SSascha Wildner *(.bss .bss.* .gnu.linkonce.b.*) 35*479ab7f0SSascha Wildner *(COMMON) 36*479ab7f0SSascha Wildner } 37*479ab7f0SSascha Wildner . = ALIGN(4096); 38*479ab7f0SSascha Wildner set_Xcommand_set : { 39*479ab7f0SSascha Wildner __start_set_Xcommand_set = .; 40*479ab7f0SSascha Wildner *(set_Xcommand_set) 41*479ab7f0SSascha Wildner __stop_set_Xcommand_set = .; 42*479ab7f0SSascha Wildner } 43*479ab7f0SSascha Wildner . = ALIGN(4096); 44*479ab7f0SSascha Wildner __gp = .; 45*479ab7f0SSascha Wildner .sdata : { 46*479ab7f0SSascha Wildner *(.got.plt .got) 47*479ab7f0SSascha Wildner *(.sdata .sdata.* .gnu.linkonce.s.*) 48*479ab7f0SSascha Wildner *(dynsbss) 49*479ab7f0SSascha Wildner *(.sbss .sbss.* .gnu.linkonce.sb.*) 50*479ab7f0SSascha Wildner *(.scommon) 51*479ab7f0SSascha Wildner } 52*479ab7f0SSascha Wildner . = ALIGN(4096); 53*479ab7f0SSascha Wildner .dynamic : { *(.dynamic) } 54*479ab7f0SSascha Wildner . = ALIGN(4096); 55*479ab7f0SSascha Wildner .rela.dyn : { 56*479ab7f0SSascha Wildner *(.rela.data*) 57*479ab7f0SSascha Wildner *(.rela.got) 58*479ab7f0SSascha Wildner *(.rela.stab) 59*479ab7f0SSascha Wildner *(.relaset_*) 60*479ab7f0SSascha Wildner } 61*479ab7f0SSascha Wildner . = ALIGN(4096); 62*479ab7f0SSascha Wildner .reloc : { *(.reloc) } 63*479ab7f0SSascha Wildner . = ALIGN(4096); 64*479ab7f0SSascha Wildner .dynsym : { *(.dynsym) } 65*479ab7f0SSascha Wildner . = ALIGN(4096); 66*479ab7f0SSascha Wildner .dynstr : { *(.dynstr) } 67*479ab7f0SSascha Wildner} 68