]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/mips/cpu/u-boot.lds
Merge branch 'buildman' of git://git.denx.de/u-boot-x86
[karo-tx-uboot.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 }