blob: 767ebda6351b5463ecb1958b8a791ccd58dc708b [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: BSD-2-Clause */
Simon Glassfc03fb92016-11-07 08:47:10 -07002/*
3 * U-Boot ARM EFI linker script
4 *
Simon Glassfc03fb92016-11-07 08:47:10 -07005 * Modified from elf_arm_efi.lds in gnu-efi
6 */
7
8OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
9OUTPUT_ARCH(arm)
10ENTRY(_start)
11SECTIONS
12{
13 .text 0x0 : {
14 _text = .;
15 *(.text.head)
16 *(.text)
17 *(.text.*)
18 *(.gnu.linkonce.t.*)
19 *(.srodata)
20 *(.rodata*)
Heinrich Schuchardtf2634792022-01-14 21:40:15 +010021 . = ALIGN(512);
Simon Glassfc03fb92016-11-07 08:47:10 -070022 }
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)
Heinrich Schuchardtf2634792022-01-14 21:40:15 +010047 . = ALIGN(512);
Simon Glassfc03fb92016-11-07 08:47:10 -070048 _bss_end = .;
49 _edata = .;
50 }
51 .rel.dyn : { *(.rel.dyn) }
52 .rel.plt : { *(.rel.plt) }
53 .rel.got : { *(.rel.got) }
54 .rel.data : { *(.rel.data) *(.rel.data*) }
55 _data_size = . - _etext;
56
Simon Glassfc03fb92016-11-07 08:47:10 -070057 /DISCARD/ : {
58 *(.rel.reloc)
59 *(.eh_frame)
60 *(.note.GNU-stack)
Alexander Graf71acd4f2017-12-11 09:45:30 +010061 *(.dynsym)
62 *(.dynstr)
63 *(.note.gnu.build-id)
64 *(.comment)
Simon Glassfc03fb92016-11-07 08:47:10 -070065 }
Simon Glassfc03fb92016-11-07 08:47:10 -070066}