Commit 61ce1efe6e40233663d27ab8ac9ba9710eebcaad
Committed by
Linus Torvalds
1 parent
e803915000
[PATCH] vmlinux.lds: consolidate initcall sections
Add a vmlinux.lds.h helper macro for defining the eight-level initcall table, teach all the architectures to use it. This is a prerequisite for a patch which performs initcall synchronisation for multithreaded-probing. Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@osdl.org> [ Added AVR32 as well ] Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Showing 22 changed files with 31 additions and 147 deletions Side-by-side Diff
- arch/alpha/kernel/vmlinux.lds.S
- arch/arm/kernel/vmlinux.lds.S
- arch/avr32/kernel/vmlinux.lds.c
- arch/frv/kernel/vmlinux.lds.S
- arch/h8300/kernel/vmlinux.lds.S
- arch/i386/kernel/vmlinux.lds.S
- arch/ia64/kernel/vmlinux.lds.S
- arch/m32r/kernel/vmlinux.lds.S
- arch/m68knommu/kernel/vmlinux.lds.S
- arch/mips/kernel/vmlinux.lds.S
- arch/parisc/kernel/vmlinux.lds.S
- arch/powerpc/kernel/vmlinux.lds.S
- arch/ppc/kernel/vmlinux.lds.S
- arch/s390/kernel/vmlinux.lds.S
- arch/sh/kernel/vmlinux.lds.S
- arch/sh64/kernel/vmlinux.lds.S
- arch/sparc/kernel/vmlinux.lds.S
- arch/sparc64/kernel/vmlinux.lds.S
- arch/v850/kernel/vmlinux.lds.S
- arch/x86_64/kernel/vmlinux.lds.S
- arch/xtensa/kernel/vmlinux.lds.S
- include/asm-generic/vmlinux.lds.h
arch/alpha/kernel/vmlinux.lds.S
... | ... | @@ -48,13 +48,7 @@ |
48 | 48 | . = ALIGN(8); |
49 | 49 | __initcall_start = .; |
50 | 50 | .initcall.init : { |
51 | - *(.initcall1.init) | |
52 | - *(.initcall2.init) | |
53 | - *(.initcall3.init) | |
54 | - *(.initcall4.init) | |
55 | - *(.initcall5.init) | |
56 | - *(.initcall6.init) | |
57 | - *(.initcall7.init) | |
51 | + INITCALLS | |
58 | 52 | } |
59 | 53 | __initcall_end = .; |
60 | 54 |
arch/arm/kernel/vmlinux.lds.S
... | ... | @@ -45,13 +45,7 @@ |
45 | 45 | *(.early_param.init) |
46 | 46 | __early_end = .; |
47 | 47 | __initcall_start = .; |
48 | - *(.initcall1.init) | |
49 | - *(.initcall2.init) | |
50 | - *(.initcall3.init) | |
51 | - *(.initcall4.init) | |
52 | - *(.initcall5.init) | |
53 | - *(.initcall6.init) | |
54 | - *(.initcall7.init) | |
48 | + INITCALLS | |
55 | 49 | __initcall_end = .; |
56 | 50 | __con_initcall_start = .; |
57 | 51 | *(.con_initcall.init) |
arch/avr32/kernel/vmlinux.lds.c
... | ... | @@ -38,13 +38,7 @@ |
38 | 38 | __setup_end = .; |
39 | 39 | . = ALIGN(4); |
40 | 40 | __initcall_start = .; |
41 | - *(.initcall1.init) | |
42 | - *(.initcall2.init) | |
43 | - *(.initcall3.init) | |
44 | - *(.initcall4.init) | |
45 | - *(.initcall5.init) | |
46 | - *(.initcall6.init) | |
47 | - *(.initcall7.init) | |
41 | + INITCALLS | |
48 | 42 | __initcall_end = .; |
49 | 43 | __con_initcall_start = .; |
50 | 44 | *(.con_initcall.init) |
arch/frv/kernel/vmlinux.lds.S
... | ... | @@ -44,13 +44,7 @@ |
44 | 44 | |
45 | 45 | __initcall_start = .; |
46 | 46 | .initcall.init : { |
47 | - *(.initcall1.init) | |
48 | - *(.initcall2.init) | |
49 | - *(.initcall3.init) | |
50 | - *(.initcall4.init) | |
51 | - *(.initcall5.init) | |
52 | - *(.initcall6.init) | |
53 | - *(.initcall7.init) | |
47 | + INITCALLS | |
54 | 48 | } |
55 | 49 | __initcall_end = .; |
56 | 50 | __con_initcall_start = .; |
arch/h8300/kernel/vmlinux.lds.S
... | ... | @@ -118,13 +118,7 @@ |
118 | 118 | . = ALIGN(0x4) ; |
119 | 119 | ___setup_end = .; |
120 | 120 | ___initcall_start = .; |
121 | - *(.initcall1.init) | |
122 | - *(.initcall2.init) | |
123 | - *(.initcall3.init) | |
124 | - *(.initcall4.init) | |
125 | - *(.initcall5.init) | |
126 | - *(.initcall6.init) | |
127 | - *(.initcall7.init) | |
121 | + INITCALLS | |
128 | 122 | ___initcall_end = .; |
129 | 123 | ___con_initcall_start = .; |
130 | 124 | *(.con_initcall.init) |
arch/i386/kernel/vmlinux.lds.S
... | ... | @@ -126,13 +126,7 @@ |
126 | 126 | __setup_end = .; |
127 | 127 | __initcall_start = .; |
128 | 128 | .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) { |
129 | - *(.initcall1.init) | |
130 | - *(.initcall2.init) | |
131 | - *(.initcall3.init) | |
132 | - *(.initcall4.init) | |
133 | - *(.initcall5.init) | |
134 | - *(.initcall6.init) | |
135 | - *(.initcall7.init) | |
129 | + INITCALLS | |
136 | 130 | } |
137 | 131 | __initcall_end = .; |
138 | 132 | __con_initcall_start = .; |
arch/ia64/kernel/vmlinux.lds.S
... | ... | @@ -128,13 +128,7 @@ |
128 | 128 | .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) |
129 | 129 | { |
130 | 130 | __initcall_start = .; |
131 | - *(.initcall1.init) | |
132 | - *(.initcall2.init) | |
133 | - *(.initcall3.init) | |
134 | - *(.initcall4.init) | |
135 | - *(.initcall5.init) | |
136 | - *(.initcall6.init) | |
137 | - *(.initcall7.init) | |
131 | + INITCALLS | |
138 | 132 | __initcall_end = .; |
139 | 133 | } |
140 | 134 |
arch/m32r/kernel/vmlinux.lds.S
... | ... | @@ -83,13 +83,7 @@ |
83 | 83 | __setup_end = .; |
84 | 84 | __initcall_start = .; |
85 | 85 | .initcall.init : { |
86 | - *(.initcall1.init) | |
87 | - *(.initcall2.init) | |
88 | - *(.initcall3.init) | |
89 | - *(.initcall4.init) | |
90 | - *(.initcall5.init) | |
91 | - *(.initcall6.init) | |
92 | - *(.initcall7.init) | |
86 | + INITCALLS | |
93 | 87 | } |
94 | 88 | __initcall_end = .; |
95 | 89 | __con_initcall_start = .; |
arch/m68knommu/kernel/vmlinux.lds.S
... | ... | @@ -140,13 +140,7 @@ |
140 | 140 | *(.init.setup) |
141 | 141 | __setup_end = .; |
142 | 142 | __initcall_start = .; |
143 | - *(.initcall1.init) | |
144 | - *(.initcall2.init) | |
145 | - *(.initcall3.init) | |
146 | - *(.initcall4.init) | |
147 | - *(.initcall5.init) | |
148 | - *(.initcall6.init) | |
149 | - *(.initcall7.init) | |
143 | + INITCALLS | |
150 | 144 | __initcall_end = .; |
151 | 145 | __con_initcall_start = .; |
152 | 146 | *(.con_initcall.init) |
arch/mips/kernel/vmlinux.lds.S
... | ... | @@ -91,13 +91,7 @@ |
91 | 91 | |
92 | 92 | __initcall_start = .; |
93 | 93 | .initcall.init : { |
94 | - *(.initcall1.init) | |
95 | - *(.initcall2.init) | |
96 | - *(.initcall3.init) | |
97 | - *(.initcall4.init) | |
98 | - *(.initcall5.init) | |
99 | - *(.initcall6.init) | |
100 | - *(.initcall7.init) | |
94 | + INITCALLS | |
101 | 95 | } |
102 | 96 | __initcall_end = .; |
103 | 97 |
arch/parisc/kernel/vmlinux.lds.S
... | ... | @@ -153,13 +153,7 @@ |
153 | 153 | __setup_end = .; |
154 | 154 | __initcall_start = .; |
155 | 155 | .initcall.init : { |
156 | - *(.initcall1.init) | |
157 | - *(.initcall2.init) | |
158 | - *(.initcall3.init) | |
159 | - *(.initcall4.init) | |
160 | - *(.initcall5.init) | |
161 | - *(.initcall6.init) | |
162 | - *(.initcall7.init) | |
156 | + INITCALLS | |
163 | 157 | } |
164 | 158 | __initcall_end = .; |
165 | 159 | __con_initcall_start = .; |
arch/powerpc/kernel/vmlinux.lds.S
... | ... | @@ -108,13 +108,7 @@ |
108 | 108 | |
109 | 109 | .initcall.init : { |
110 | 110 | __initcall_start = .; |
111 | - *(.initcall1.init) | |
112 | - *(.initcall2.init) | |
113 | - *(.initcall3.init) | |
114 | - *(.initcall4.init) | |
115 | - *(.initcall5.init) | |
116 | - *(.initcall6.init) | |
117 | - *(.initcall7.init) | |
111 | + INITCALLS | |
118 | 112 | __initcall_end = .; |
119 | 113 | } |
120 | 114 |
arch/ppc/kernel/vmlinux.lds.S
... | ... | @@ -115,13 +115,7 @@ |
115 | 115 | __setup_end = .; |
116 | 116 | __initcall_start = .; |
117 | 117 | .initcall.init : { |
118 | - *(.initcall1.init) | |
119 | - *(.initcall2.init) | |
120 | - *(.initcall3.init) | |
121 | - *(.initcall4.init) | |
122 | - *(.initcall5.init) | |
123 | - *(.initcall6.init) | |
124 | - *(.initcall7.init) | |
118 | + INITCALLS | |
125 | 119 | } |
126 | 120 | __initcall_end = .; |
127 | 121 |
arch/s390/kernel/vmlinux.lds.S
... | ... | @@ -83,13 +83,7 @@ |
83 | 83 | __setup_end = .; |
84 | 84 | __initcall_start = .; |
85 | 85 | .initcall.init : { |
86 | - *(.initcall1.init) | |
87 | - *(.initcall2.init) | |
88 | - *(.initcall3.init) | |
89 | - *(.initcall4.init) | |
90 | - *(.initcall5.init) | |
91 | - *(.initcall6.init) | |
92 | - *(.initcall7.init) | |
86 | + INITCALLS | |
93 | 87 | } |
94 | 88 | __initcall_end = .; |
95 | 89 | __con_initcall_start = .; |
arch/sh/kernel/vmlinux.lds.S
... | ... | @@ -76,13 +76,7 @@ |
76 | 76 | __setup_end = .; |
77 | 77 | __initcall_start = .; |
78 | 78 | .initcall.init : { |
79 | - *(.initcall1.init) | |
80 | - *(.initcall2.init) | |
81 | - *(.initcall3.init) | |
82 | - *(.initcall4.init) | |
83 | - *(.initcall5.init) | |
84 | - *(.initcall6.init) | |
85 | - *(.initcall7.init) | |
79 | + INITCALLS | |
86 | 80 | } |
87 | 81 | __initcall_end = .; |
88 | 82 | __con_initcall_start = .; |
arch/sh64/kernel/vmlinux.lds.S
... | ... | @@ -108,13 +108,7 @@ |
108 | 108 | __setup_end = .; |
109 | 109 | __initcall_start = .; |
110 | 110 | .initcall.init : C_PHYS(.initcall.init) { |
111 | - *(.initcall1.init) | |
112 | - *(.initcall2.init) | |
113 | - *(.initcall3.init) | |
114 | - *(.initcall4.init) | |
115 | - *(.initcall5.init) | |
116 | - *(.initcall6.init) | |
117 | - *(.initcall7.init) | |
111 | + INITCALLS | |
118 | 112 | } |
119 | 113 | __initcall_end = .; |
120 | 114 | __con_initcall_start = .; |
arch/sparc/kernel/vmlinux.lds.S
... | ... | @@ -49,13 +49,7 @@ |
49 | 49 | __setup_end = .; |
50 | 50 | __initcall_start = .; |
51 | 51 | .initcall.init : { |
52 | - *(.initcall1.init) | |
53 | - *(.initcall2.init) | |
54 | - *(.initcall3.init) | |
55 | - *(.initcall4.init) | |
56 | - *(.initcall5.init) | |
57 | - *(.initcall6.init) | |
58 | - *(.initcall7.init) | |
52 | + INITCALLS | |
59 | 53 | } |
60 | 54 | __initcall_end = .; |
61 | 55 | __con_initcall_start = .; |
arch/sparc64/kernel/vmlinux.lds.S
... | ... | @@ -57,13 +57,7 @@ |
57 | 57 | __setup_end = .; |
58 | 58 | __initcall_start = .; |
59 | 59 | .initcall.init : { |
60 | - *(.initcall1.init) | |
61 | - *(.initcall2.init) | |
62 | - *(.initcall3.init) | |
63 | - *(.initcall4.init) | |
64 | - *(.initcall5.init) | |
65 | - *(.initcall6.init) | |
66 | - *(.initcall7.init) | |
60 | + INITCALLS | |
67 | 61 | } |
68 | 62 | __initcall_end = .; |
69 | 63 | __con_initcall_start = .; |
arch/v850/kernel/vmlinux.lds.S
... | ... | @@ -140,13 +140,7 @@ |
140 | 140 | ___setup_end = . ; \ |
141 | 141 | ___initcall_start = . ; \ |
142 | 142 | *(.initcall.init) \ |
143 | - *(.initcall1.init) \ | |
144 | - *(.initcall2.init) \ | |
145 | - *(.initcall3.init) \ | |
146 | - *(.initcall4.init) \ | |
147 | - *(.initcall5.init) \ | |
148 | - *(.initcall6.init) \ | |
149 | - *(.initcall7.init) \ | |
143 | + INITCALLS \ | |
150 | 144 | . = ALIGN (4) ; \ |
151 | 145 | ___initcall_end = . ; \ |
152 | 146 | ___con_initcall_start = .; \ |
arch/x86_64/kernel/vmlinux.lds.S
... | ... | @@ -175,13 +175,7 @@ |
175 | 175 | __setup_end = .; |
176 | 176 | __initcall_start = .; |
177 | 177 | .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) { |
178 | - *(.initcall1.init) | |
179 | - *(.initcall2.init) | |
180 | - *(.initcall3.init) | |
181 | - *(.initcall4.init) | |
182 | - *(.initcall5.init) | |
183 | - *(.initcall6.init) | |
184 | - *(.initcall7.init) | |
178 | + INITCALLS | |
185 | 179 | } |
186 | 180 | __initcall_end = .; |
187 | 181 | __con_initcall_start = .; |
arch/xtensa/kernel/vmlinux.lds.S
... | ... | @@ -184,13 +184,7 @@ |
184 | 184 | |
185 | 185 | __initcall_start = .; |
186 | 186 | .initcall.init : { |
187 | - *(.initcall1.init) | |
188 | - *(.initcall2.init) | |
189 | - *(.initcall3.init) | |
190 | - *(.initcall4.init) | |
191 | - *(.initcall5.init) | |
192 | - *(.initcall6.init) | |
193 | - *(.initcall7.init) | |
187 | + INITCALLS | |
194 | 188 | } |
195 | 189 | __initcall_end = .; |
196 | 190 |
include/asm-generic/vmlinux.lds.h
... | ... | @@ -213,4 +213,13 @@ |
213 | 213 | |
214 | 214 | #define NOTES \ |
215 | 215 | .notes : { *(.note.*) } :note |
216 | + | |
217 | +#define INITCALLS \ | |
218 | + *(.initcall1.init) \ | |
219 | + *(.initcall2.init) \ | |
220 | + *(.initcall3.init) \ | |
221 | + *(.initcall4.init) \ | |
222 | + *(.initcall5.init) \ | |
223 | + *(.initcall6.init) \ | |
224 | + *(.initcall7.init) |