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