xref: /freebsd/stand/efi/loader/arch/arm/arm.ldscript (revision 5b56413d04e608379c9a306373554a8e4d321bc0)
1OUTPUT_ARCH(arm)
2ENTRY(_start)
3SECTIONS
4{
5  /* Read-only sections, merged into text segment: */
6  . = 0;
7  ImageBase = .;
8  .text		: {
9    *(.peheader)
10    *(.text .stub .text.* .gnu.linkonce.t.*)
11    /* .gnu.warning sections are handled specially by elf32.em. */
12    *(.gnu.warning)
13    *(.gnu.linkonce.t*)
14  } =0
15  _etext = .;
16  PROVIDE (etext = .);
17  . = ALIGN(16);
18  .data    :
19  {
20    *(.data .data.*)
21    *(.gnu.linkonce.d*)
22    *(.rodata)
23    *(.rodata.*)
24    CONSTRUCTORS
25
26    . = ALIGN(4);
27    PROVIDE (__bss_start = .);
28    *(.sbss)
29    *(.scommon)
30    *(.dynsbss)
31    *(.dynbss)
32    *(.bss)
33    *(COMMON)
34    . = ALIGN(4);
35    PROVIDE (__bss_end = .);
36  }
37  .dynamic	: { *(.dynamic) }
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  __gp = .;
46  .plt   : { *(.plt) }
47  .reloc	: { *(.reloc) }
48  .dynsym	: { *(.dynsym) }
49  .dynstr	: { *(.dynstr) }
50  .rel.dyn	: {
51    *(.rel.*)
52    *(.relset_*)
53  }
54  _edata = .;
55  .hash		: { *(.hash) }
56}
57