]> git.sur5r.net Git - u-boot/blob - arch/x86/lib/elf_x86_64_efi.lds
70c7c52332888b6460e95e767813c11a756b7eaa
[u-boot] / arch / x86 / lib / elf_x86_64_efi.lds
1 /*
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
9 OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
10 OUTPUT_ARCH(i386:x86-64)
11 ENTRY(_start)
12 SECTIONS
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 }