]> git.ipfire.org Git - people/ms/u-boot.git/blob - arch/mips/cpu/u-boot.lds
Merge branch 'agust@denx.de' of git://git.denx.de/u-boot-staging
[people/ms/u-boot.git] / arch / mips / cpu / u-boot.lds
1 /*
2 * (C) Copyright 2003
3 * Wolfgang Denk Engineering, <wd@denx.de>
4 *
5 * SPDX-License-Identifier: GPL-2.0+
6 */
7
8 #if defined(CONFIG_64BIT)
9 #define PTR_COUNT_SHIFT 3
10 #else
11 #define PTR_COUNT_SHIFT 2
12 #endif
13
14 OUTPUT_ARCH(mips)
15 ENTRY(_start)
16 SECTIONS
17 {
18 . = 0x00000000;
19
20 . = ALIGN(4);
21 .text : {
22 *(.text*)
23 }
24
25 . = ALIGN(4);
26 .rodata : {
27 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
28 }
29
30 . = ALIGN(4);
31 .data : {
32 *(.data*)
33 }
34
35 . = .;
36 _gp = ALIGN(16) + 0x7ff0;
37
38 .got : {
39 *(.got)
40 }
41
42 num_got_entries = SIZEOF(.got) >> PTR_COUNT_SHIFT;
43
44 . = ALIGN(4);
45 .sdata : {
46 *(.sdata*)
47 }
48
49 . = ALIGN(4);
50 .u_boot_list : {
51 KEEP(*(SORT(.u_boot_list*)));
52 }
53
54 . = ALIGN(4);
55 __image_copy_end = .;
56 __init_end = .;
57
58 .rel.dyn : {
59 __rel_dyn_start = .;
60 *(.rel.dyn)
61 __rel_dyn_end = .;
62 }
63
64 .padding : {
65 /*
66 * Workaround for a binutils feature (or bug?).
67 *
68 * The GNU ld from binutils puts the dynamic relocation
69 * entries into the .rel.dyn section. Sometimes it
70 * allocates more dynamic relocation entries than it needs
71 * and the unused slots are set to R_MIPS_NONE entries.
72 *
73 * However the size of the .rel.dyn section in the ELF
74 * section header does not cover the unused entries, so
75 * objcopy removes those during stripping.
76 *
77 * Create a small section here to avoid that.
78 */
79 LONG(0xFFFFFFFF)
80 }
81
82 _end = .;
83
84 .bss __rel_dyn_start (OVERLAY) : {
85 __bss_start = .;
86 *(.sbss.*)
87 *(.bss.*)
88 *(COMMON)
89 . = ALIGN(4);
90 __bss_end = .;
91 }
92
93 .dynsym _end : {
94 *(.dynsym)
95 }
96
97 .dynbss : {
98 *(.dynbss)
99 }
100
101 .dynstr : {
102 *(.dynstr)
103 }
104
105 .dynamic : {
106 *(.dynamic)
107 }
108
109 .plt : {
110 *(.plt)
111 }
112
113 .interp : {
114 *(.interp)
115 }
116
117 .gnu : {
118 *(.gnu*)
119 }
120
121 .MIPS.stubs : {
122 *(.MIPS.stubs)
123 }
124
125 .hash : {
126 *(.hash)
127 }
128 }