diff options
author | David Howells <dhowells@redhat.com> | 2009-06-22 10:32:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-22 16:34:50 -0400 |
commit | 2e8b5a09ebf1f98f02c1988a48415e89d4c25168 (patch) | |
tree | e2affc58f82f20012d507f1ee257720451b779c5 /arch/mn10300/kernel/vmlinux.lds.S | |
parent | eadfe21989d728b5af936487627b4e288bd805f8 (diff) |
MN10300: Fix the vmlinux ldscript
Fix the MN10300 vmlinux ldscript. It needs to use various macros from
asm-generic/vmlinux.lds.h to correctly include all that it needs to.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/mn10300/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/mn10300/kernel/vmlinux.lds.S | 60 |
1 files changed, 16 insertions, 44 deletions
diff --git a/arch/mn10300/kernel/vmlinux.lds.S b/arch/mn10300/kernel/vmlinux.lds.S index 24de6b90f401..bcebcefb4ad7 100644 --- a/arch/mn10300/kernel/vmlinux.lds.S +++ b/arch/mn10300/kernel/vmlinux.lds.S | |||
@@ -38,14 +38,10 @@ SECTIONS | |||
38 | 38 | ||
39 | _etext = .; /* End of text section */ | 39 | _etext = .; /* End of text section */ |
40 | 40 | ||
41 | . = ALIGN(16); /* Exception table */ | 41 | EXCEPTION_TABLE(16) |
42 | __start___ex_table = .; | ||
43 | __ex_table : { *(__ex_table) } | ||
44 | __stop___ex_table = .; | ||
45 | |||
46 | BUG_TABLE | 42 | BUG_TABLE |
47 | 43 | ||
48 | RODATA | 44 | RO_DATA(PAGE_SIZE) |
49 | 45 | ||
50 | /* writeable */ | 46 | /* writeable */ |
51 | .data : { /* Data */ | 47 | .data : { /* Data */ |
@@ -53,27 +49,19 @@ SECTIONS | |||
53 | CONSTRUCTORS | 49 | CONSTRUCTORS |
54 | } | 50 | } |
55 | 51 | ||
56 | . = ALIGN(PAGE_SIZE); | 52 | .data_nosave : { NOSAVE_DATA; } |
57 | __nosave_begin = .; | ||
58 | .data_nosave : { *(.data.nosave) } | ||
59 | . = ALIGN(PAGE_SIZE); | ||
60 | __nosave_end = .; | ||
61 | |||
62 | . = ALIGN(PAGE_SIZE); | ||
63 | .data.page_aligned : { *(.data.idt) } | ||
64 | 53 | ||
65 | . = ALIGN(32); | 54 | .data.page_aligned : { PAGE_ALIGNED_DATA(PAGE_SIZE); } |
66 | .data.cacheline_aligned : { *(.data.cacheline_aligned) } | 55 | .data.cacheline_aligned : { CACHELINE_ALIGNED_DATA(32); } |
67 | 56 | ||
68 | /* rarely changed data like cpu maps */ | 57 | /* rarely changed data like cpu maps */ |
69 | . = ALIGN(32); | 58 | . = ALIGN(32); |
70 | .data.read_mostly : AT(ADDR(.data.read_mostly)) { | 59 | .data.read_mostly : AT(ADDR(.data.read_mostly)) { |
71 | *(.data.read_mostly) | 60 | READ_MOSTLY_DATA(32); |
72 | _edata = .; /* End of data section */ | 61 | _edata = .; /* End of data section */ |
73 | } | 62 | } |
74 | 63 | ||
75 | . = ALIGN(THREAD_SIZE); /* init_task */ | 64 | .data.init_task : { INIT_TASK(THREAD_SIZE); } |
76 | .data.init_task : { *(.data.init_task) } | ||
77 | 65 | ||
78 | /* might get freed after init */ | 66 | /* might get freed after init */ |
79 | . = ALIGN(PAGE_SIZE); | 67 | . = ALIGN(PAGE_SIZE); |
@@ -88,23 +76,18 @@ SECTIONS | |||
88 | __init_begin = .; | 76 | __init_begin = .; |
89 | .init.text : { | 77 | .init.text : { |
90 | _sinittext = .; | 78 | _sinittext = .; |
91 | *(.init.text) | 79 | INIT_TEXT; |
92 | _einittext = .; | 80 | _einittext = .; |
93 | } | 81 | } |
94 | .init.data : { *(.init.data) } | 82 | .init.data : { INIT_DATA; } |
95 | . = ALIGN(16); | 83 | .setup.init : { INIT_SETUP(16); } |
96 | __setup_start = .; | ||
97 | .setup.init : { KEEP(*(.init.setup)) } | ||
98 | __setup_end = .; | ||
99 | 84 | ||
100 | __initcall_start = .; | 85 | __initcall_start = .; |
101 | .initcall.init : { | 86 | .initcall.init : { |
102 | INITCALLS | 87 | INITCALLS |
103 | } | 88 | } |
104 | __initcall_end = .; | 89 | __initcall_end = .; |
105 | __con_initcall_start = .; | 90 | .con_initcall.init : { CON_INITCALL; } |
106 | .con_initcall.init : { *(.con_initcall.init) } | ||
107 | __con_initcall_end = .; | ||
108 | 91 | ||
109 | SECURITY_INIT | 92 | SECURITY_INIT |
110 | . = ALIGN(4); | 93 | . = ALIGN(4); |
@@ -114,28 +97,17 @@ SECTIONS | |||
114 | .altinstr_replacement : { *(.altinstr_replacement) } | 97 | .altinstr_replacement : { *(.altinstr_replacement) } |
115 | /* .exit.text is discard at runtime, not link time, to deal with references | 98 | /* .exit.text is discard at runtime, not link time, to deal with references |
116 | from .altinstructions and .eh_frame */ | 99 | from .altinstructions and .eh_frame */ |
117 | .exit.text : { *(.exit.text) } | 100 | .exit.text : { EXIT_TEXT; } |
118 | .exit.data : { *(.exit.data) } | 101 | .exit.data : { EXIT_DATA; } |
119 | 102 | ||
120 | #ifdef CONFIG_BLK_DEV_INITRD | 103 | .init.ramfs : { INIT_RAM_FS; } |
121 | . = ALIGN(PAGE_SIZE); | ||
122 | __initramfs_start = .; | ||
123 | .init.ramfs : { *(.init.ramfs) } | ||
124 | __initramfs_end = .; | ||
125 | #endif | ||
126 | 104 | ||
127 | PERCPU(32) | 105 | PERCPU(32) |
128 | . = ALIGN(PAGE_SIZE); | 106 | . = ALIGN(PAGE_SIZE); |
129 | __init_end = .; | 107 | __init_end = .; |
130 | /* freed after init ends here */ | 108 | /* freed after init ends here */ |
131 | 109 | ||
132 | __bss_start = .; /* BSS */ | 110 | BSS(4) |
133 | .bss : { | ||
134 | *(.bss.page_aligned) | ||
135 | *(.bss) | ||
136 | } | ||
137 | . = ALIGN(4); | ||
138 | __bss_stop = .; | ||
139 | 111 | ||
140 | _end = . ; | 112 | _end = . ; |
141 | 113 | ||
@@ -145,7 +117,7 @@ SECTIONS | |||
145 | 117 | ||
146 | /* Sections to be discarded */ | 118 | /* Sections to be discarded */ |
147 | /DISCARD/ : { | 119 | /DISCARD/ : { |
148 | *(.exitcall.exit) | 120 | EXIT_CALL |
149 | } | 121 | } |
150 | 122 | ||
151 | STABS_DEBUG | 123 | STABS_DEBUG |