1/*
2 * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
3 * Copyright: Linux Kernel team
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * The code in here is derived from the Linux kernel
7 */
8
9OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
10OUTPUT_ARCH(arm)
11ENTRY(_gnuefi_start)
12SECTIONS
13{
14  .text 0x0 : {
15    _text = .;
16    *(.text.head)
17    *(.text)
18    *(.text.*)
19    *(.gnu.linkonce.t.*)
20    *(.srodata)
21    *(.rodata*)
22    . = ALIGN(16);
23  }
24  _etext = .;
25  _text_size = . - _text;
26  .dynamic  : { *(.dynamic) }
27  .data :
28  {
29   _data = .;
30   *(.sdata)
31   *(.data)
32   *(.data1)
33   *(.data.*)
34   *(.got.plt)
35   *(.got)
36
37   __start__driver_list = .;
38   *(_driver_list)
39   __stop__driver_list = .;
40
41   . = ALIGN(8);
42   _archive_start = .;
43   *(._archive_cpio)
44   _archive_end = .;
45
46   /* the EFI loader doesn't seem to like a .bss section, so we stick
47      it all into .data: */
48   . = ALIGN(16);
49   _bss = .;
50   *(.sbss)
51   *(.scommon)
52   *(.dynbss)
53   *(.bss)
54   *(.bss.*)
55   *(COMMON)
56   . = ALIGN(16);
57   _bss_end = .;
58  }
59
60  .rel.dyn : { *(.rel.dyn) }
61  .rel.plt : { *(.rel.plt) }
62  .rel.got : { *(.rel.got) }
63  .rel.data : { *(.rel.data) *(.rel.data*) }
64  _edata = .;
65  _data_size = . - _etext;
66
67  . = ALIGN(4096);
68  .dynsym   : { *(.dynsym) }
69  . = ALIGN(4096);
70  .dynstr   : { *(.dynstr) }
71  . = ALIGN(4096);
72  .note.gnu.build-id : { *(.note.gnu.build-id) }
73
74  _end = .;
75  /DISCARD/ :
76  {
77    *(.rel.reloc)
78    *(.eh_frame)
79    *(.note.GNU-stack)
80  }
81  .comment 0 : { *(.comment) }
82}
83