xref: /illumos-gate/usr/src/boot/efi/loader/arch/arm64/ldscript.arm64 (revision d48be21240dfd051b689384ce2b23479d757f2d8)
1/* $FreeBSD$ */
2/*
3OUTPUT_FORMAT("elf64-aarch64-freebsd", "elf64-aarch64-freebsd", "elf64-aarch64-freebsd")
4*/
5OUTPUT_ARCH(aarch64)
6ENTRY(_start)
7SECTIONS
8{
9  /* Read-only sections, merged into text segment: */
10  . = 0;
11  ImageBase = .;
12  .text		: {
13    *(.peheader)
14    *(.text .stub .text.* .gnu.linkonce.t.*)
15    /* .gnu.warning sections are handled specially by elf32.em. */
16    *(.gnu.warning)
17    *(.plt)
18  } =0xD4200000
19  . = ALIGN(16);
20  .data		: {
21    *(.rodata .rodata.* .gnu.linkonce.r.*)
22    *(.rodata1)
23    *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
24    *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
25    *(.opd)
26    *(.data .data.* .gnu.linkonce.d.*)
27    *(.data1)
28    *(.plabel)
29
30    . = ALIGN(16);
31    __bss_start = .;
32    *(.sbss .sbss.* .gnu.linkonce.sb.*)
33    *(.scommon)
34    *(.dynbss)
35    *(.bss *.bss.*)
36    *(COMMON)
37    . = ALIGN(16);
38    __bss_end = .;
39  }
40  . = ALIGN(16);
41  set_Xcommand_set	: {
42    __start_set_Xcommand_set = .;
43    *(set_Xcommand_set)
44    __stop_set_Xcommand_set = .;
45  }
46  set_Xficl_compile_set : {
47    __start_set_Xficl_compile_set = .;
48    *(set_Xficl_compile_set)
49    __stop_set_Xficl_compile_set = .;
50  }
51  . = ALIGN(16);
52  __gp = .;
53  .sdata	: {
54    *(.got.plt .got)
55    *(.sdata .sdata.* .gnu.linkonce.s.*)
56    *(dynsbss)
57    *(.scommon)
58  }
59  . = ALIGN(16);
60  .dynamic	: { *(.dynamic) }
61  . = ALIGN(16);
62  .rela.dyn	: {
63    *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
64    *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
65    *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
66    *(.rela.got)
67    *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
68    *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
69    *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
70    *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
71    *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
72    *(.rela.plt)
73    *(.relset_*)
74    *(.rela.dyn .rela.dyn.*)
75  }
76  . = ALIGN(16);
77  .reloc	: { *(.reloc) }
78  . = ALIGN(16);
79  .dynsym	: { *(.dynsym) }
80  _edata = .;
81
82  /* Unused sections */
83  .dynstr	: { *(.dynstr) }
84  .hash		: { *(.hash) }
85}
86