aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2006-12-08 05:35:57 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-08 11:28:37 -0500
commitaad094701c6355cb2b3d74a07ec0496f4a48c787 (patch)
tree00d5635dbd8ea74947f58528d71cb41f8ee0d3dc
parentd93f7de8c5dfefb030a5e65d0857176879bf78e9 (diff)
[PATCH] move kallsyms data to .rodata
Kallsyms data is never written to, so it can as well benefit from CONFIG_DEBUG_RODATA. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--kernel/kallsyms.c16
-rw-r--r--scripts/kallsyms.c2
2 files changed, 9 insertions, 9 deletions
diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
index ab63cfc42992..6f294ff4f9ee 100644
--- a/kernel/kallsyms.c
+++ b/kernel/kallsyms.c
@@ -31,14 +31,14 @@
31#endif 31#endif
32 32
33/* These will be re-linked against their real values during the second link stage */ 33/* These will be re-linked against their real values during the second link stage */
34extern unsigned long kallsyms_addresses[] __attribute__((weak)); 34extern const unsigned long kallsyms_addresses[] __attribute__((weak));
35extern unsigned long kallsyms_num_syms __attribute__((weak,section("data"))); 35extern const unsigned long kallsyms_num_syms __attribute__((weak));
36extern u8 kallsyms_names[] __attribute__((weak)); 36extern const u8 kallsyms_names[] __attribute__((weak));
37 37
38extern u8 kallsyms_token_table[] __attribute__((weak)); 38extern const u8 kallsyms_token_table[] __attribute__((weak));
39extern u16 kallsyms_token_index[] __attribute__((weak)); 39extern const u16 kallsyms_token_index[] __attribute__((weak));
40 40
41extern unsigned long kallsyms_markers[] __attribute__((weak)); 41extern const unsigned long kallsyms_markers[] __attribute__((weak));
42 42
43static inline int is_kernel_inittext(unsigned long addr) 43static inline int is_kernel_inittext(unsigned long addr)
44{ 44{
@@ -84,7 +84,7 @@ static int is_ksym_addr(unsigned long addr)
84static unsigned int kallsyms_expand_symbol(unsigned int off, char *result) 84static unsigned int kallsyms_expand_symbol(unsigned int off, char *result)
85{ 85{
86 int len, skipped_first = 0; 86 int len, skipped_first = 0;
87 u8 *tptr, *data; 87 const u8 *tptr, *data;
88 88
89 /* get the compressed symbol length from the first symbol byte */ 89 /* get the compressed symbol length from the first symbol byte */
90 data = &kallsyms_names[off]; 90 data = &kallsyms_names[off];
@@ -132,7 +132,7 @@ static char kallsyms_get_symbol_type(unsigned int off)
132 * kallsyms array */ 132 * kallsyms array */
133static unsigned int get_symbol_offset(unsigned long pos) 133static unsigned int get_symbol_offset(unsigned long pos)
134{ 134{
135 u8 *name; 135 const u8 *name;
136 int i; 136 int i;
137 137
138 /* use the closest marker we have. We have markers every 256 positions, 138 /* use the closest marker we have. We have markers every 256 positions,
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index f359b730c2c5..8b809b264d18 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -265,7 +265,7 @@ static void write_src(void)
265 printf("#define ALGN .align 4\n"); 265 printf("#define ALGN .align 4\n");
266 printf("#endif\n"); 266 printf("#endif\n");
267 267
268 printf(".data\n"); 268 printf("\t.section .rodata, \"a\"\n");
269 269
270 /* Provide proper symbols relocatability by their '_text' 270 /* Provide proper symbols relocatability by their '_text'
271 * relativeness. The symbol names cannot be used to construct 271 * relativeness. The symbol names cannot be used to construct