diff options
29 files changed, 40 insertions, 28 deletions
diff --git a/arch/alpha/kernel/vmlinux.lds.S b/arch/alpha/kernel/vmlinux.lds.S index ab60e81540b5..449e76f118d3 100644 --- a/arch/alpha/kernel/vmlinux.lds.S +++ b/arch/alpha/kernel/vmlinux.lds.S | |||
@@ -89,7 +89,7 @@ SECTIONS | |||
89 | 89 | ||
90 | _data = .; | 90 | _data = .; |
91 | .data : { /* Data */ | 91 | .data : { /* Data */ |
92 | *(.data) | 92 | DATA_DATA |
93 | CONSTRUCTORS | 93 | CONSTRUCTORS |
94 | } | 94 | } |
95 | 95 | ||
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index 8d4e248a9544..2b7a8f5d8cf2 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S | |||
@@ -158,7 +158,7 @@ SECTIONS | |||
158 | /* | 158 | /* |
159 | * and the usual data section | 159 | * and the usual data section |
160 | */ | 160 | */ |
161 | *(.data) | 161 | DATA_DATA |
162 | CONSTRUCTORS | 162 | CONSTRUCTORS |
163 | 163 | ||
164 | _edata = .; | 164 | _edata = .; |
diff --git a/arch/arm26/kernel/vmlinux-arm26-xip.lds.in b/arch/arm26/kernel/vmlinux-arm26-xip.lds.in index 89c806a3a51b..4ec715c25dea 100644 --- a/arch/arm26/kernel/vmlinux-arm26-xip.lds.in +++ b/arch/arm26/kernel/vmlinux-arm26-xip.lds.in | |||
@@ -111,7 +111,7 @@ SECTIONS | |||
111 | /* | 111 | /* |
112 | * and the usual data section | 112 | * and the usual data section |
113 | */ | 113 | */ |
114 | *(.data) | 114 | DATA_DATA |
115 | CONSTRUCTORS | 115 | CONSTRUCTORS |
116 | 116 | ||
117 | *(.init.data) | 117 | *(.init.data) |
diff --git a/arch/arm26/kernel/vmlinux-arm26.lds.in b/arch/arm26/kernel/vmlinux-arm26.lds.in index e3f9b18d9d23..6c44f6a17bf7 100644 --- a/arch/arm26/kernel/vmlinux-arm26.lds.in +++ b/arch/arm26/kernel/vmlinux-arm26.lds.in | |||
@@ -106,7 +106,7 @@ SECTIONS | |||
106 | /* | 106 | /* |
107 | * and the usual data section | 107 | * and the usual data section |
108 | */ | 108 | */ |
109 | *(.data) | 109 | DATA_DATA |
110 | CONSTRUCTORS | 110 | CONSTRUCTORS |
111 | 111 | ||
112 | _edata = .; | 112 | _edata = .; |
diff --git a/arch/avr32/kernel/vmlinux.lds.c b/arch/avr32/kernel/vmlinux.lds.c index dbba3912f7ce..db0438f35c00 100644 --- a/arch/avr32/kernel/vmlinux.lds.c +++ b/arch/avr32/kernel/vmlinux.lds.c | |||
@@ -112,7 +112,7 @@ SECTIONS | |||
112 | 112 | ||
113 | /* And the rest... */ | 113 | /* And the rest... */ |
114 | *(.data.rel*) | 114 | *(.data.rel*) |
115 | *(.data) | 115 | DATA_DATA |
116 | CONSTRUCTORS | 116 | CONSTRUCTORS |
117 | 117 | ||
118 | _edata = .; | 118 | _edata = .; |
diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S index 36fcc777ea81..86fe67995802 100644 --- a/arch/blackfin/kernel/vmlinux.lds.S +++ b/arch/blackfin/kernel/vmlinux.lds.S | |||
@@ -200,7 +200,7 @@ SECTIONS | |||
200 | __sdata = .; | 200 | __sdata = .; |
201 | . = ALIGN(0x2000); | 201 | . = ALIGN(0x2000); |
202 | *(.data.init_task) | 202 | *(.data.init_task) |
203 | *(.data) | 203 | DATA_DATA |
204 | 204 | ||
205 | . = ALIGN(32); | 205 | . = ALIGN(32); |
206 | *(.data.cacheline_aligned) | 206 | *(.data.cacheline_aligned) |
diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S index 7e0998f7f70f..481dc1374640 100644 --- a/arch/frv/kernel/vmlinux.lds.S +++ b/arch/frv/kernel/vmlinux.lds.S | |||
@@ -136,7 +136,8 @@ SECTIONS | |||
136 | 136 | ||
137 | _sdata = .; | 137 | _sdata = .; |
138 | .data : { /* Data */ | 138 | .data : { /* Data */ |
139 | *(.data .data.*) | 139 | DATA_DATA |
140 | *(.data.*) | ||
140 | *(.exit.data) | 141 | *(.exit.data) |
141 | CONSTRUCTORS | 142 | CONSTRUCTORS |
142 | } | 143 | } |
diff --git a/arch/h8300/kernel/vmlinux.lds.S b/arch/h8300/kernel/vmlinux.lds.S index 4365162952e4..a2e72d495551 100644 --- a/arch/h8300/kernel/vmlinux.lds.S +++ b/arch/h8300/kernel/vmlinux.lds.S | |||
@@ -103,7 +103,7 @@ SECTIONS | |||
103 | . = ALIGN(0x2000) ; | 103 | . = ALIGN(0x2000) ; |
104 | *(.data.init_task) | 104 | *(.data.init_task) |
105 | . = ALIGN(0x4) ; | 105 | . = ALIGN(0x4) ; |
106 | *(.data) | 106 | DATA_DATA |
107 | . = ALIGN(0x4) ; | 107 | . = ALIGN(0x4) ; |
108 | *(.data.*) | 108 | *(.data.*) |
109 | 109 | ||
diff --git a/arch/i386/kernel/vmlinux.lds.S b/arch/i386/kernel/vmlinux.lds.S index dfc439a570d0..aa87b06c7c82 100644 --- a/arch/i386/kernel/vmlinux.lds.S +++ b/arch/i386/kernel/vmlinux.lds.S | |||
@@ -74,7 +74,7 @@ SECTIONS | |||
74 | /* writeable */ | 74 | /* writeable */ |
75 | . = ALIGN(4096); | 75 | . = ALIGN(4096); |
76 | .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */ | 76 | .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */ |
77 | *(.data) | 77 | DATA_DATA |
78 | CONSTRUCTORS | 78 | CONSTRUCTORS |
79 | } :data | 79 | } :data |
80 | 80 | ||
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index 19108d0bb060..5a65965c8b53 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S | |||
@@ -214,7 +214,12 @@ SECTIONS | |||
214 | 214 | ||
215 | data : { } :data | 215 | data : { } :data |
216 | .data : AT(ADDR(.data) - LOAD_OFFSET) | 216 | .data : AT(ADDR(.data) - LOAD_OFFSET) |
217 | { *(.data) *(.data1) *(.gnu.linkonce.d*) CONSTRUCTORS } | 217 | { |
218 | DATA_DATA | ||
219 | *(.data1) | ||
220 | *(.gnu.linkonce.d*) | ||
221 | CONSTRUCTORS | ||
222 | } | ||
218 | 223 | ||
219 | . = ALIGN(16); /* gp must be 16-byte aligned for exc. table */ | 224 | . = ALIGN(16); /* gp must be 16-byte aligned for exc. table */ |
220 | .got : AT(ADDR(.got) - LOAD_OFFSET) | 225 | .got : AT(ADDR(.got) - LOAD_OFFSET) |
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S index bb1a2f50255e..4e2d5b9f0a9a 100644 --- a/arch/m32r/kernel/vmlinux.lds.S +++ b/arch/m32r/kernel/vmlinux.lds.S | |||
@@ -50,7 +50,7 @@ SECTIONS | |||
50 | .data : { /* Data */ | 50 | .data : { /* Data */ |
51 | *(.spu) | 51 | *(.spu) |
52 | *(.spi) | 52 | *(.spi) |
53 | *(.data) | 53 | DATA_DATA |
54 | CONSTRUCTORS | 54 | CONSTRUCTORS |
55 | } | 55 | } |
56 | 56 | ||
diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds index a65cef826976..78f139226a1b 100644 --- a/arch/m68k/kernel/vmlinux-std.lds +++ b/arch/m68k/kernel/vmlinux-std.lds | |||
@@ -28,7 +28,7 @@ SECTIONS | |||
28 | _etext = .; /* End of text section */ | 28 | _etext = .; /* End of text section */ |
29 | 29 | ||
30 | .data : { /* Data */ | 30 | .data : { /* Data */ |
31 | *(.data) | 31 | DATA_DATA |
32 | CONSTRUCTORS | 32 | CONSTRUCTORS |
33 | } | 33 | } |
34 | 34 | ||
diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds index fa44d6c49acc..c8999b2db23b 100644 --- a/arch/m68k/kernel/vmlinux-sun3.lds +++ b/arch/m68k/kernel/vmlinux-sun3.lds | |||
@@ -23,7 +23,7 @@ SECTIONS | |||
23 | _etext = .; /* End of text section */ | 23 | _etext = .; /* End of text section */ |
24 | 24 | ||
25 | .data : { /* Data */ | 25 | .data : { /* Data */ |
26 | *(.data) | 26 | DATA_DATA |
27 | CONSTRUCTORS | 27 | CONSTRUCTORS |
28 | . = ALIGN(16); /* Exception table */ | 28 | . = ALIGN(16); /* Exception table */ |
29 | __start___ex_table = .; | 29 | __start___ex_table = .; |
diff --git a/arch/m68knommu/kernel/vmlinux.lds.S b/arch/m68knommu/kernel/vmlinux.lds.S index 6d4585eb6e79..07a0055602f4 100644 --- a/arch/m68knommu/kernel/vmlinux.lds.S +++ b/arch/m68knommu/kernel/vmlinux.lds.S | |||
@@ -133,7 +133,7 @@ SECTIONS { | |||
133 | .data DATA_ADDR : { | 133 | .data DATA_ADDR : { |
134 | . = ALIGN(4); | 134 | . = ALIGN(4); |
135 | _sdata = . ; | 135 | _sdata = . ; |
136 | *(.data) | 136 | DATA_DATA |
137 | . = ALIGN(8192) ; | 137 | . = ALIGN(8192) ; |
138 | *(.data.init_task) | 138 | *(.data.init_task) |
139 | _edata = . ; | 139 | _edata = . ; |
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index cfe4b67ef268..9b9992cd562a 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S | |||
@@ -62,7 +62,7 @@ SECTIONS | |||
62 | . = ALIGN(_PAGE_SIZE); | 62 | . = ALIGN(_PAGE_SIZE); |
63 | *(.data.init_task) | 63 | *(.data.init_task) |
64 | 64 | ||
65 | *(.data) | 65 | DATA_DATA |
66 | 66 | ||
67 | CONSTRUCTORS | 67 | CONSTRUCTORS |
68 | } | 68 | } |
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S index 321de82fa867..4d96ba4b9849 100644 --- a/arch/parisc/kernel/vmlinux.lds.S +++ b/arch/parisc/kernel/vmlinux.lds.S | |||
@@ -91,7 +91,7 @@ SECTIONS | |||
91 | 91 | ||
92 | . = ALIGN(L1_CACHE_BYTES); | 92 | . = ALIGN(L1_CACHE_BYTES); |
93 | .data : { /* Data */ | 93 | .data : { /* Data */ |
94 | *(.data) | 94 | DATA_DATA |
95 | CONSTRUCTORS | 95 | CONSTRUCTORS |
96 | } | 96 | } |
97 | 97 | ||
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index f26620988860..f7d7bf19e4fb 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S | |||
@@ -168,7 +168,7 @@ SECTIONS | |||
168 | #ifdef CONFIG_PPC32 | 168 | #ifdef CONFIG_PPC32 |
169 | .data : | 169 | .data : |
170 | { | 170 | { |
171 | *(.data) | 171 | DATA_DATA |
172 | *(.sdata) | 172 | *(.sdata) |
173 | *(.got.plt) *(.got) | 173 | *(.got.plt) *(.got) |
174 | } | 174 | } |
diff --git a/arch/ppc/kernel/vmlinux.lds.S b/arch/ppc/kernel/vmlinux.lds.S index 419ef7e8e384..19db8746ff14 100644 --- a/arch/ppc/kernel/vmlinux.lds.S +++ b/arch/ppc/kernel/vmlinux.lds.S | |||
@@ -67,7 +67,7 @@ SECTIONS | |||
67 | . = ALIGN(4096); | 67 | . = ALIGN(4096); |
68 | .data : | 68 | .data : |
69 | { | 69 | { |
70 | *(.data) | 70 | DATA_DATA |
71 | *(.data1) | 71 | *(.data1) |
72 | *(.sdata) | 72 | *(.sdata) |
73 | *(.sdata2) | 73 | *(.sdata2) |
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index 89c2ec5c85ff..7158a804a5e4 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S | |||
@@ -48,7 +48,7 @@ SECTIONS | |||
48 | BUG_TABLE | 48 | BUG_TABLE |
49 | 49 | ||
50 | .data : { /* Data */ | 50 | .data : { /* Data */ |
51 | *(.data) | 51 | DATA_DATA |
52 | CONSTRUCTORS | 52 | CONSTRUCTORS |
53 | } | 53 | } |
54 | 54 | ||
diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S index 2367869d2141..4c5b57e9c3c1 100644 --- a/arch/sh/kernel/vmlinux.lds.S +++ b/arch/sh/kernel/vmlinux.lds.S | |||
@@ -41,7 +41,7 @@ SECTIONS | |||
41 | BUG_TABLE | 41 | BUG_TABLE |
42 | 42 | ||
43 | .data : { /* Data */ | 43 | .data : { /* Data */ |
44 | *(.data) | 44 | DATA_DATA |
45 | 45 | ||
46 | /* Align the initial ramdisk image (INITRD) on page boundaries. */ | 46 | /* Align the initial ramdisk image (INITRD) on page boundaries. */ |
47 | . = ALIGN(PAGE_SIZE); | 47 | . = ALIGN(PAGE_SIZE); |
diff --git a/arch/sh64/kernel/vmlinux.lds.S b/arch/sh64/kernel/vmlinux.lds.S index fdf72ceff869..02aea86c5907 100644 --- a/arch/sh64/kernel/vmlinux.lds.S +++ b/arch/sh64/kernel/vmlinux.lds.S | |||
@@ -78,7 +78,7 @@ SECTIONS | |||
78 | _etext = .; /* End of text section */ | 78 | _etext = .; /* End of text section */ |
79 | 79 | ||
80 | .data : C_PHYS(.data) { /* Data */ | 80 | .data : C_PHYS(.data) { /* Data */ |
81 | *(.data) | 81 | DATA_DATA |
82 | CONSTRUCTORS | 82 | CONSTRUCTORS |
83 | } | 83 | } |
84 | 84 | ||
diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S index 5cb600e29875..f75a1b822789 100644 --- a/arch/sparc/kernel/vmlinux.lds.S +++ b/arch/sparc/kernel/vmlinux.lds.S | |||
@@ -22,7 +22,7 @@ SECTIONS | |||
22 | RODATA | 22 | RODATA |
23 | .data : | 23 | .data : |
24 | { | 24 | { |
25 | *(.data) | 25 | DATA_DATA |
26 | CONSTRUCTORS | 26 | CONSTRUCTORS |
27 | } | 27 | } |
28 | .data1 : { *(.data1) } | 28 | .data1 : { *(.data1) } |
diff --git a/arch/sparc64/kernel/vmlinux.lds.S b/arch/sparc64/kernel/vmlinux.lds.S index f06da20533f5..fb648de18a8d 100644 --- a/arch/sparc64/kernel/vmlinux.lds.S +++ b/arch/sparc64/kernel/vmlinux.lds.S | |||
@@ -27,7 +27,7 @@ SECTIONS | |||
27 | 27 | ||
28 | .data : | 28 | .data : |
29 | { | 29 | { |
30 | *(.data) | 30 | DATA_DATA |
31 | CONSTRUCTORS | 31 | CONSTRUCTORS |
32 | } | 32 | } |
33 | .data1 : { *(.data1) } | 33 | .data1 : { *(.data1) } |
diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S index ec8477d0feb3..24547741b205 100644 --- a/arch/um/kernel/dyn.lds.S +++ b/arch/um/kernel/dyn.lds.S | |||
@@ -99,7 +99,8 @@ SECTIONS | |||
99 | *(.data.init_task) | 99 | *(.data.init_task) |
100 | . = ALIGN(KERNEL_STACK_SIZE); | 100 | . = ALIGN(KERNEL_STACK_SIZE); |
101 | *(.data.init_irqstack) | 101 | *(.data.init_irqstack) |
102 | *(.data .data.* .gnu.linkonce.d.*) | 102 | DATA_DATA |
103 | *(.data.* .gnu.linkonce.d.*) | ||
103 | SORT(CONSTRUCTORS) | 104 | SORT(CONSTRUCTORS) |
104 | } | 105 | } |
105 | .data1 : { *(.data1) } | 106 | .data1 : { *(.data1) } |
diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S index 84351059c356..307b9373676b 100644 --- a/arch/um/kernel/uml.lds.S +++ b/arch/um/kernel/uml.lds.S | |||
@@ -61,7 +61,7 @@ SECTIONS | |||
61 | *(.data.init_task) | 61 | *(.data.init_task) |
62 | . = ALIGN(KERNEL_STACK_SIZE); | 62 | . = ALIGN(KERNEL_STACK_SIZE); |
63 | *(.data.init_irqstack) | 63 | *(.data.init_irqstack) |
64 | *(.data) | 64 | DATA_DATA |
65 | *(.gnu.linkonce.d*) | 65 | *(.gnu.linkonce.d*) |
66 | CONSTRUCTORS | 66 | CONSTRUCTORS |
67 | } | 67 | } |
diff --git a/arch/v850/kernel/vmlinux.lds.S b/arch/v850/kernel/vmlinux.lds.S index 9e2b4bc06c68..6172599b4ce2 100644 --- a/arch/v850/kernel/vmlinux.lds.S +++ b/arch/v850/kernel/vmlinux.lds.S | |||
@@ -113,7 +113,7 @@ | |||
113 | /* Kernel data segment. */ | 113 | /* Kernel data segment. */ |
114 | #define DATA_CONTENTS \ | 114 | #define DATA_CONTENTS \ |
115 | __sdata = . ; \ | 115 | __sdata = . ; \ |
116 | *(.data) \ | 116 | DATA_DATA \ |
117 | *(.exit.data) /* 2.5 convention */ \ | 117 | *(.exit.data) /* 2.5 convention */ \ |
118 | *(.data.exit) /* 2.4 convention */ \ | 118 | *(.data.exit) /* 2.4 convention */ \ |
119 | . = ALIGN (16) ; \ | 119 | . = ALIGN (16) ; \ |
diff --git a/arch/x86_64/kernel/vmlinux.lds.S b/arch/x86_64/kernel/vmlinux.lds.S index c77142d9fba9..dbccfda8364f 100644 --- a/arch/x86_64/kernel/vmlinux.lds.S +++ b/arch/x86_64/kernel/vmlinux.lds.S | |||
@@ -55,7 +55,7 @@ SECTIONS | |||
55 | . = ALIGN(PAGE_SIZE); /* Align data segment to page size boundary */ | 55 | . = ALIGN(PAGE_SIZE); /* Align data segment to page size boundary */ |
56 | /* Data */ | 56 | /* Data */ |
57 | .data : AT(ADDR(.data) - LOAD_OFFSET) { | 57 | .data : AT(ADDR(.data) - LOAD_OFFSET) { |
58 | *(.data) | 58 | DATA_DATA |
59 | CONSTRUCTORS | 59 | CONSTRUCTORS |
60 | } :data | 60 | } :data |
61 | 61 | ||
diff --git a/arch/xtensa/kernel/vmlinux.lds.S b/arch/xtensa/kernel/vmlinux.lds.S index 7d2dfb286a92..4b7b4ff79973 100644 --- a/arch/xtensa/kernel/vmlinux.lds.S +++ b/arch/xtensa/kernel/vmlinux.lds.S | |||
@@ -145,7 +145,8 @@ SECTIONS | |||
145 | _fdata = .; | 145 | _fdata = .; |
146 | .data : | 146 | .data : |
147 | { | 147 | { |
148 | *(.data) CONSTRUCTORS | 148 | DATA_DATA |
149 | CONSTRUCTORS | ||
149 | . = ALIGN(XCHAL_ICACHE_LINESIZE); | 150 | . = ALIGN(XCHAL_ICACHE_LINESIZE); |
150 | *(.data.cacheline_aligned) | 151 | *(.data.cacheline_aligned) |
151 | } | 152 | } |
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index a464227a66b1..52e2d69ee535 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
@@ -9,6 +9,10 @@ | |||
9 | /* Align . to a 8 byte boundary equals to maximum function alignment. */ | 9 | /* Align . to a 8 byte boundary equals to maximum function alignment. */ |
10 | #define ALIGN_FUNCTION() . = ALIGN(8) | 10 | #define ALIGN_FUNCTION() . = ALIGN(8) |
11 | 11 | ||
12 | /* .data section */ | ||
13 | #define DATA_DATA \ | ||
14 | *(.data) | ||
15 | |||
12 | #define RODATA \ | 16 | #define RODATA \ |
13 | . = ALIGN(4096); \ | 17 | . = ALIGN(4096); \ |
14 | .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ | 18 | .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ |