[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20061106160353.GD26091@in.ibm.com>
Date: Mon, 6 Nov 2006 11:03:53 -0500
From: Vivek Goyal <vgoyal@...ibm.com>
To: Haavard Skinnemoen <hskinnemoen@...el.com>
Cc: linux kernel mailing list <linux-kernel@...r.kernel.org>,
Reloc Kernel List <fastboot@...ts.osdl.org>,
ebiederm@...ssion.com, akpm@...l.org, ak@...e.de, hpa@...or.com,
magnus.damm@...il.com, lwang@...hat.com, dzickus@...hat.com,
maneesh@...ibm.com
Subject: Re: [PATCH 7/11] i386: Kallsyms generate relocatable symbols
On Mon, Nov 06, 2006 at 03:48:57PM +0100, Haavard Skinnemoen wrote:
> On Mon, 23 Oct 2006 15:37:48 -0400
> Vivek Goyal <vgoyal@...ibm.com> wrote:
>
> > Add the _text symbol definitions to the architectures which don't
> > define it otherwise linker will fail.
>
> I get lots of this when building latest -mm for avr32:
>
> .tmp_kallsyms2.S:643: Warning: right operand is a bignum; integer 0
> assumed
>
> Reverting this patch makes the warnings go away. I think it's
> because on avr32, .init is the first section, not .text, so many of the
> offsets become negative and kallsyms doesn't seem to handle this very
> well. Here's a few lines from .tmp_kallsyms2.S:
>
> kallsyms_addresses:
> PTR _text + 0xffffffffffff4000
> PTR _text + 0xffffffffffff4000
>
> Any idea how to fix this? Could we introduce a new symbol that always
> marks the start of the image perhaps?
>
Hi Haavard,
Does the attached patch solve the issue for you?
Thanks
Vivek
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@...ibm.com>
---
scripts/kallsyms.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff -puN scripts/kallsyms.c~i386-reloc-kallsyms-_text-symbol-relative-address-fix scripts/kallsyms.c
--- linux-2.6.19-rc4-reloc/scripts/kallsyms.c~i386-reloc-kallsyms-_text-symbol-relative-address-fix 2006-11-06 10:47:01.000000000 -0500
+++ linux-2.6.19-rc4-reloc-root/scripts/kallsyms.c 2006-11-06 10:47:01.000000000 -0500
@@ -277,8 +277,12 @@ static void write_src(void)
output_label("kallsyms_addresses");
for (i = 0; i < table_cnt; i++) {
if (toupper(table[i].sym[0]) != 'A') {
- printf("\tPTR\t_text + %#llx\n",
- table[i].addr - _text);
+ if (_text <= table[i].addr)
+ printf("\tPTR\t_text + %#llx\n",
+ table[i].addr - _text);
+ else
+ printf("\tPTR\t_text - %#llx\n",
+ _text - table[i].addr);
} else {
printf("\tPTR\t%#llx\n", table[i].addr);
}
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists