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