blob: 70c7c52332888b6460e95e767813c11a756b7eaa [file] [log] [blame]
Simon Glass672e82c2015-08-04 12:33:51 -06001/*
2 * U-Boot EFI linker script
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 *
6 * Modified from usr/lib32/elf_x86_64_efi.lds in gnu-efi
7 */
8
Simon Glass672e82c2015-08-04 12:33:51 -06009OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
10OUTPUT_ARCH(i386:x86-64)
11ENTRY(_start)
12SECTIONS
13{
14 image_base = .;
15 .hash : { *(.hash) } /* this MUST come first, EFI expects it */
16 . = ALIGN(4096);
17 .eh_frame : {
18 *(.eh_frame)
19 }
20
21 . = ALIGN(4096);
22
23 .text : {
24 *(.text)
25 *(.text.*)
26 *(.gnu.linkonce.t.*)
27 }
28
29 . = ALIGN(4096);
30
31 .reloc : {
32 *(.reloc)
33 }
34
35 . = ALIGN(4096);
36
37 .data : {
38 *(.rodata*)
39 *(.got.plt)
40 *(.got)
41 *(.data*)
42 *(.sdata)
43 /* the EFI loader doesn't seem to like a .bss section, so we stick
44 * it all into .data: */
45 *(.sbss)
46 *(.scommon)
47 *(.dynbss)
48 *(.bss)
49 *(COMMON)
50 *(.rel.local)
51
52 /* U-Boot lists and device tree */
53 . = ALIGN(8);
54 *(SORT(.u_boot_list*));
55 . = ALIGN(8);
56 *(.dtb*);
57 }
58
59 . = ALIGN(4096);
60 .dynamic : { *(.dynamic) }
61 . = ALIGN(4096);
62
63 .rela : {
64 *(.rela.data*)
65 *(.rela.got)
66 *(.rela.stab)
67 }
68
69 . = ALIGN(4096);
70 .dynsym : { *(.dynsym) }
71 . = ALIGN(4096);
72 .dynstr : { *(.dynstr) }
73 . = ALIGN(4096);
74 .ignored.reloc : {
75 *(.rela.reloc)
76 *(.eh_frame)
77 *(.note.GNU-stack)
78 }
79
80 .comment 0 : { *(.comment) }
81}