xref: /OK3568_Linux_fs/u-boot/arch/arm/lib/elf_arm_efi.lds (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/*
2*4882a593Smuzhiyun * U-Boot ARM EFI linker script
3*4882a593Smuzhiyun *
4*4882a593Smuzhiyun * SPDX-License-Identifier:	BSD-2-Clause
5*4882a593Smuzhiyun *
6*4882a593Smuzhiyun * Modified from elf_arm_efi.lds in gnu-efi
7*4882a593Smuzhiyun */
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunOUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
10*4882a593SmuzhiyunOUTPUT_ARCH(arm)
11*4882a593SmuzhiyunENTRY(_start)
12*4882a593SmuzhiyunSECTIONS
13*4882a593Smuzhiyun{
14*4882a593Smuzhiyun	.text 0x0 : {
15*4882a593Smuzhiyun		_text = .;
16*4882a593Smuzhiyun		*(.text.head)
17*4882a593Smuzhiyun		*(.text)
18*4882a593Smuzhiyun		*(.text.*)
19*4882a593Smuzhiyun		*(.gnu.linkonce.t.*)
20*4882a593Smuzhiyun		*(.srodata)
21*4882a593Smuzhiyun		*(.rodata*)
22*4882a593Smuzhiyun		. = ALIGN(16);
23*4882a593Smuzhiyun	}
24*4882a593Smuzhiyun	_etext = .;
25*4882a593Smuzhiyun	_text_size = . - _text;
26*4882a593Smuzhiyun	.dynamic  : { *(.dynamic) }
27*4882a593Smuzhiyun	.data : {
28*4882a593Smuzhiyun		_data = .;
29*4882a593Smuzhiyun		*(.sdata)
30*4882a593Smuzhiyun		*(.data)
31*4882a593Smuzhiyun		*(.data1)
32*4882a593Smuzhiyun		*(.data.*)
33*4882a593Smuzhiyun		*(.got.plt)
34*4882a593Smuzhiyun		*(.got)
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun		/*
37*4882a593Smuzhiyun		 * The EFI loader doesn't seem to like a .bss section, so we
38*4882a593Smuzhiyun		 * stick it all into .data:
39*4882a593Smuzhiyun		 */
40*4882a593Smuzhiyun		. = ALIGN(16);
41*4882a593Smuzhiyun		_bss = .;
42*4882a593Smuzhiyun		*(.sbss)
43*4882a593Smuzhiyun		*(.scommon)
44*4882a593Smuzhiyun		*(.dynbss)
45*4882a593Smuzhiyun		*(.bss)
46*4882a593Smuzhiyun		*(.bss.*)
47*4882a593Smuzhiyun		*(COMMON)
48*4882a593Smuzhiyun		. = ALIGN(16);
49*4882a593Smuzhiyun		_bss_end = .;
50*4882a593Smuzhiyun		_edata = .;
51*4882a593Smuzhiyun	}
52*4882a593Smuzhiyun	.rel.dyn : { *(.rel.dyn) }
53*4882a593Smuzhiyun	.rel.plt : { *(.rel.plt) }
54*4882a593Smuzhiyun	.rel.got : { *(.rel.got) }
55*4882a593Smuzhiyun	.rel.data : { *(.rel.data) *(.rel.data*) }
56*4882a593Smuzhiyun	_data_size = . - _etext;
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun	. = ALIGN(4096);
59*4882a593Smuzhiyun	.dynsym   : { *(.dynsym) }
60*4882a593Smuzhiyun	. = ALIGN(4096);
61*4882a593Smuzhiyun	.dynstr   : { *(.dynstr) }
62*4882a593Smuzhiyun	. = ALIGN(4096);
63*4882a593Smuzhiyun	.note.gnu.build-id : { *(.note.gnu.build-id) }
64*4882a593Smuzhiyun	/DISCARD/ : {
65*4882a593Smuzhiyun		*(.rel.reloc)
66*4882a593Smuzhiyun		*(.eh_frame)
67*4882a593Smuzhiyun		*(.note.GNU-stack)
68*4882a593Smuzhiyun	}
69*4882a593Smuzhiyun	.comment 0 : { *(.comment) }
70*4882a593Smuzhiyun}
71