diff options
author | Vivek Goyal <vgoyal@in.ibm.com> | 2006-12-06 20:14:10 -0500 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-12-06 20:14:10 -0500 |
commit | 2c22d8baa98a92022acb85b0b7c6f4a60df55f47 (patch) | |
tree | f37268c7540ad822166e398a6ac6a2e09c2f43fb /scripts/kallsyms.c | |
parent | ba10650a880c2df23bd1db6c0570ddb66f389641 (diff) |
[PATCH] relocatable kernel: Fix kallsyms on avr32 after relocatable kernel changes
o On some platforms like avr32, section init comes before .text and
not necessarily a symbol's relative position w.r.t _text is positive.
In such cases assembler detects the overflow and emits warning. This
patch fixes it.
Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Andi Kleen <ak@suse.de>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Diffstat (limited to 'scripts/kallsyms.c')
-rw-r--r-- | scripts/kallsyms.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index 4c1ad0acbb4b..f359b730c2c5 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c | |||
@@ -277,8 +277,12 @@ static void write_src(void) | |||
277 | output_label("kallsyms_addresses"); | 277 | output_label("kallsyms_addresses"); |
278 | for (i = 0; i < table_cnt; i++) { | 278 | for (i = 0; i < table_cnt; i++) { |
279 | if (toupper(table[i].sym[0]) != 'A') { | 279 | if (toupper(table[i].sym[0]) != 'A') { |
280 | printf("\tPTR\t_text + %#llx\n", | 280 | if (_text <= table[i].addr) |
281 | table[i].addr - _text); | 281 | printf("\tPTR\t_text + %#llx\n", |
282 | table[i].addr - _text); | ||
283 | else | ||
284 | printf("\tPTR\t_text - %#llx\n", | ||
285 | _text - table[i].addr); | ||
282 | } else { | 286 | } else { |
283 | printf("\tPTR\t%#llx\n", table[i].addr); | 287 | printf("\tPTR\t%#llx\n", table[i].addr); |
284 | } | 288 | } |