blob: 90af469f48b9ea0f1e2af520e541c44f5ce04eb3 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: BSD-2-Clause */
Simon Glass61378fd2016-11-07 08:47:11 -07002/*
3 * U-Boot aarch64 EFI linker script
4 *
Simon Glass61378fd2016-11-07 08:47:11 -07005 * Modified from elf_aarch64_efi.lds in gnu-efi
6 */
7
8OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
9OUTPUT_ARCH(aarch64)
10ENTRY(_start)
11SECTIONS
12{
13 .text 0x0 : {
14 _text = .;
15 *(.text.head)
16 *(.text)
17 *(.text.*)
18 *(.gnu.linkonce.t.*)
19 *(.srodata)
20 *(.rodata*)
21 . = ALIGN(16);
22 }
23 _etext = .;
24 _text_size = . - _text;
25 .dynamic : { *(.dynamic) }
26 .data : {
27 _data = .;
28 *(.sdata)
29 *(.data)
30 *(.data1)
31 *(.data.*)
32 *(.got.plt)
33 *(.got)
34
35 /*
36 * The EFI loader doesn't seem to like a .bss section, so we
37 * stick it all into .data:
38 */
39 . = ALIGN(16);
40 _bss = .;
41 *(.sbss)
42 *(.scommon)
43 *(.dynbss)
44 *(.bss)
45 *(.bss.*)
46 *(COMMON)
47 . = ALIGN(16);
48 _bss_end = .;
49 _edata = .;
50 }
51 .rela.dyn : { *(.rela.dyn) }
52 .rela.plt : { *(.rela.plt) }
53 .rela.got : { *(.rela.got) }
54 .rela.data : { *(.rela.data) *(.rela.data*) }
55 _data_size = . - _etext;
56
57 . = ALIGN(4096);
58 .dynsym : { *(.dynsym) }
59 . = ALIGN(4096);
60 .dynstr : { *(.dynstr) }
61 . = ALIGN(4096);
62 .note.gnu.build-id : { *(.note.gnu.build-id) }
63 /DISCARD/ : {
64 *(.rel.reloc)
65 *(.eh_frame)
66 *(.note.GNU-stack)
67 }
68 .comment 0 : { *(.comment) }
69}