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