xref: /illumos-gate/usr/src/boot/efi/loader/arch/arm/ldscript.arm (revision dd72704bd9e794056c558153663c739e2012d721)
1/* $FreeBSD$ */
2OUTPUT_ARCH(arm)
3ENTRY(_start)
4SECTIONS
5{
6  /* Read-only sections, merged into text segment: */
7  . = 0;
8  ImageBase = .;
9  .text		: {
10    *(.peheader)
11    *(.text .stub .text.* .gnu.linkonce.t.*)
12    /* .gnu.warning sections are handled specially by elf32.em. */
13    *(.gnu.warning)
14    *(.gnu.linkonce.t*)
15  } =0
16  _etext = .;
17  PROVIDE (etext = .);
18  . = ALIGN(16);
19  .data    :
20  {
21    *(.data *.data.*)
22    *(.gnu.linkonce.d*)
23    *(.rodata)
24    *(.rodata.*)
25    CONSTRUCTORS
26
27    . = ALIGN(4);
28    PROVIDE (__bss_start = .);
29    *(.sbss)
30    *(.scommon)
31    *(.dynsbss)
32    *(.dynbss)
33    *(.bss)
34    *(COMMON)
35    . = ALIGN(4);
36    PROVIDE (__bss_end = .);
37  }
38  /* We want the small data sections together, so single-instruction offsets
39     can access them all, and initialized data all before uninitialized, so
40     we can shorten the on-disk segment size.  */
41  .sdata     : {
42    *(.got.plt .got)
43    *(.sdata*.sdata.* .gnu.linkonce.s.*)
44  }
45  set_Xcommand_set	: {
46    __start_set_Xcommand_set = .;
47    *(set_Xcommand_set)
48    __stop_set_Xcommand_set = .;
49  }
50  set_Xficl_compile_set : {
51    __start_set_Xficl_compile_set = .;
52    *(set_Xficl_compile_set)
53    __stop_set_Xficl_compile_set = .;
54  }
55  __gp = .;
56  .plt   : { *(.plt) }
57  .dynamic	: { *(.dynamic) }
58  .reloc	: { *(.reloc) }
59  .dynsym	: { *(.dynsym) }
60  .dynstr	: { *(.dynstr) }
61  .rel.dyn	: {
62    *(.rel.*)
63    *(.relset_*)
64  }
65  _edata = .;
66  .hash		: { *(.hash) }
67}
68