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("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
10OUTPUT_ARCH(aarch64)
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 : ALIGN(4096)
28  {
29   _data = .;
30   *(.sdata)
31   *(.data)
32   *(.data1)
33   *(.data.*)
34   *(.got.plt)
35   *(.got)
36
37   /* the EFI loader doesn't seem to like a .bss section, so we stick
38      it all into .data: */
39   . = ALIGN(16);
40   _bss = .;
41   *(.sbss)
42   *(.scommon)
43   *(.dynbss)
44   *(.bss)
45   *(COMMON)
46   . = ALIGN(16);
47   _bss_end = .;
48  }
49
50  .rela.dyn : { *(.rela.dyn) }
51  .rela.plt : { *(.rela.plt) }
52  .rela.got : { *(.rela.got) }
53  .rela.data : { *(.rela.data) *(.rela.data*) }
54  . = ALIGN(512);
55  _edata = .;
56  _data_size = . - _data;
57
58  . = ALIGN(4096);
59  .dynsym   : { *(.dynsym) }
60  . = ALIGN(4096);
61  .dynstr   : { *(.dynstr) }
62  . = ALIGN(4096);
63  .note.gnu.build-id : { *(.note.gnu.build-id) }
64  /DISCARD/ :
65  {
66    *(.rel.reloc)
67    *(.eh_frame)
68    *(.note.GNU-stack)
69  }
70  .comment 0 : { *(.comment) }
71}
72