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