1135549Sdes/* $FreeBSD: stable/11/stand/efi/loader/arch/arm64/ldscript.arm64 329011 2018-02-08 02:50:47Z kevans $ */
2135549Sdes/*
3135549SdesOUTPUT_FORMAT("elf64-aarch64-freebsd", "elf64-aarch64-freebsd", "elf64-aarch64-freebsd")
4218384Sdougb*/
5135549SdesOUTPUT_ARCH(aarch64)
6135549SdesENTRY(_start)
7135549SdesSECTIONS
8135549Sdes{
9135549Sdes  /* Read-only sections, merged into text segment: */
10135549Sdes  . = 0;
11135549Sdes  ImageBase = .;
12135549Sdes  .text		: {
13135549Sdes    *(.peheader)
14135549Sdes    *(.text .stub .text.* .gnu.linkonce.t.*)
15135549Sdes    /* .gnu.warning sections are handled specially by elf32.em. */
16135549Sdes    *(.gnu.warning)
17135549Sdes    *(.plt)
18135549Sdes  } =0xD4200000
19135549Sdes  . = ALIGN(16);
20135549Sdes  .data		: {
21135549Sdes    *(.rodata .rodata.* .gnu.linkonce.r.*)
22135549Sdes    *(.rodata1)
23135549Sdes    *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
24135549Sdes    *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
25135549Sdes    *(.opd)
26135549Sdes    *(.data .data.* .gnu.linkonce.d.*)
27170224Sdougb    *(.data1)
28170224Sdougb    *(.plabel)
29135549Sdes
30135549Sdes    . = ALIGN(16);
31135549Sdes    __bss_start = .;
32135549Sdes    *(.sbss .sbss.* .gnu.linkonce.sb.*)
33135549Sdes    *(.scommon)
34135549Sdes    *(.dynbss)
35135549Sdes    *(.bss *.bss.*)
36135549Sdes    *(COMMON)
37135549Sdes    . = ALIGN(16);
38135549Sdes    __bss_end = .;
39135549Sdes  }
40135549Sdes  . = ALIGN(16);
41135549Sdes  set_Xcommand_set	: {
42135549Sdes    __start_set_Xcommand_set = .;
43135549Sdes    *(set_Xcommand_set)
44135549Sdes    __stop_set_Xcommand_set = .;
45135549Sdes  }
46135549Sdes  set_Xficl_compile_set	: {
47135549Sdes    __start_set_Xficl_compile_set = .;
48135549Sdes    *(set_Xficl_compile_set)
49135549Sdes    __stop_set_Xficl_compile_set = .;
50135549Sdes  }
51135549Sdes  . = ALIGN(16);
52135549Sdes  __gp = .;
53135549Sdes  .sdata	: {
54135549Sdes    *(.got.plt .got)
55135549Sdes    *(.sdata .sdata.* .gnu.linkonce.s.*)
56135549Sdes    *(dynsbss)
57135549Sdes    *(.scommon)
58135549Sdes  }
59135549Sdes  . = ALIGN(16);
60135549Sdes  .dynamic	: { *(.dynamic) }
61135549Sdes  . = ALIGN(16);
62135549Sdes  .rela.dyn	: {
63135549Sdes    *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
64135549Sdes    *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
65135549Sdes    *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
66135549Sdes    *(.rela.got)
67135549Sdes    *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
68135549Sdes    *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
69135549Sdes    *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
70135549Sdes    *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
71135549Sdes    *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
72135549Sdes    *(.rela.plt)
73135549Sdes    *(.relset_*)
74170224Sdougb    *(.rela.dyn .rela.dyn.*)
75135549Sdes  }
76135549Sdes  . = ALIGN(16);
77135549Sdes  .reloc	: { *(.reloc) }
78193149Sdougb  . = ALIGN(16);
79193149Sdougb  .dynsym	: { *(.dynsym) }
80193149Sdougb  _edata = .;
81224093Sdougb
82170224Sdougb  /* Unused sections */
83135549Sdes  .dynstr	: { *(.dynstr) }
84135549Sdes  .hash		: { *(.hash) }
85135549Sdes}
86165077Sdougb