aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiang Liu <liuj97@gmail.com>2013-07-03 18:03:40 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-07-03 19:07:34 -0400
commita214a8c68bcdef2fb0803425f7fe36fe41030d3f (patch)
treecc5ca146a1770ca54bf2d6f5436df935e1223602
parent40a3b8df7be3b813cef7e32f74dea398274c2d47 (diff)
UML: normalize global variables exported by vmlinux.lds
Normalize global variables exported by vmlinux.lds to conform usage guidelines from include/asm-generic/sections.h. 1) Use _text to mark the start of the kernel image including the head text, and _stext to mark the start of the .text section. 2) Export mandatory global variables __bss_stop. 3) Adjust __init_begin and __init_end to avoid acrossing .text and .data sections. Signed-off-by: Jiang Liu <jiang.liu@huawei.com> Cc: Jeff Dike <jdike@addtoit.com> Cc: Richard Weinberger <richard@nod.at> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/um/include/asm/common.lds.S1
-rw-r--r--arch/um/kernel/dyn.lds.S6
-rw-r--r--arch/um/kernel/uml.lds.S7
3 files changed, 9 insertions, 5 deletions
diff --git a/arch/um/include/asm/common.lds.S b/arch/um/include/asm/common.lds.S
index 4938de5512d2..1dd5bd8a8c59 100644
--- a/arch/um/include/asm/common.lds.S
+++ b/arch/um/include/asm/common.lds.S
@@ -57,7 +57,6 @@
57 *(.uml.initcall.init) 57 *(.uml.initcall.init)
58 __uml_initcall_end = .; 58 __uml_initcall_end = .;
59 } 59 }
60 __init_end = .;
61 60
62 SECURITY_INIT 61 SECURITY_INIT
63 62
diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S
index fb8fd6fb6563..adde088aeeff 100644
--- a/arch/um/kernel/dyn.lds.S
+++ b/arch/um/kernel/dyn.lds.S
@@ -14,8 +14,6 @@ SECTIONS
14 __binary_start = .; 14 __binary_start = .;
15 . = ALIGN(4096); /* Init code and data */ 15 . = ALIGN(4096); /* Init code and data */
16 _text = .; 16 _text = .;
17 _stext = .;
18 __init_begin = .;
19 INIT_TEXT_SECTION(PAGE_SIZE) 17 INIT_TEXT_SECTION(PAGE_SIZE)
20 18
21 . = ALIGN(PAGE_SIZE); 19 . = ALIGN(PAGE_SIZE);
@@ -67,6 +65,7 @@ SECTIONS
67 } =0x90909090 65 } =0x90909090
68 .plt : { *(.plt) } 66 .plt : { *(.plt) }
69 .text : { 67 .text : {
68 _stext = .;
70 TEXT_TEXT 69 TEXT_TEXT
71 SCHED_TEXT 70 SCHED_TEXT
72 LOCK_TEXT 71 LOCK_TEXT
@@ -91,7 +90,9 @@ SECTIONS
91 90
92 #include <asm/common.lds.S> 91 #include <asm/common.lds.S>
93 92
93 __init_begin = .;
94 init.data : { INIT_DATA } 94 init.data : { INIT_DATA }
95 __init_end = .;
95 96
96 /* Ensure the __preinit_array_start label is properly aligned. We 97 /* Ensure the __preinit_array_start label is properly aligned. We
97 could instead move the label definition inside the section, but 98 could instead move the label definition inside the section, but
@@ -155,6 +156,7 @@ SECTIONS
155 . = ALIGN(32 / 8); 156 . = ALIGN(32 / 8);
156 . = ALIGN(32 / 8); 157 . = ALIGN(32 / 8);
157 } 158 }
159 __bss_stop = .;
158 _end = .; 160 _end = .;
159 PROVIDE (end = .); 161 PROVIDE (end = .);
160 162
diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S
index ff65fb4f1a95..6899195602b7 100644
--- a/arch/um/kernel/uml.lds.S
+++ b/arch/um/kernel/uml.lds.S
@@ -20,13 +20,12 @@ SECTIONS
20 . = START + SIZEOF_HEADERS; 20 . = START + SIZEOF_HEADERS;
21 21
22 _text = .; 22 _text = .;
23 _stext = .;
24 __init_begin = .;
25 INIT_TEXT_SECTION(0) 23 INIT_TEXT_SECTION(0)
26 . = ALIGN(PAGE_SIZE); 24 . = ALIGN(PAGE_SIZE);
27 25
28 .text : 26 .text :
29 { 27 {
28 _stext = .;
30 TEXT_TEXT 29 TEXT_TEXT
31 SCHED_TEXT 30 SCHED_TEXT
32 LOCK_TEXT 31 LOCK_TEXT
@@ -62,7 +61,10 @@ SECTIONS
62 61
63 #include <asm/common.lds.S> 62 #include <asm/common.lds.S>
64 63
64 __init_begin = .;
65 init.data : { INIT_DATA } 65 init.data : { INIT_DATA }
66 __init_end = .;
67
66 .data : 68 .data :
67 { 69 {
68 INIT_TASK_DATA(KERNEL_STACK_SIZE) 70 INIT_TASK_DATA(KERNEL_STACK_SIZE)
@@ -97,6 +99,7 @@ SECTIONS
97 PROVIDE(_bss_start = .); 99 PROVIDE(_bss_start = .);
98 SBSS(0) 100 SBSS(0)
99 BSS(0) 101 BSS(0)
102 __bss_stop = .;
100 _end = .; 103 _end = .;
101 PROVIDE (end = .); 104 PROVIDE (end = .);
102 105