[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Assembler unable to handle relative offsets in PIC code under cross-
Re: Assembler unable to handle relative offsets in PIC code under cross-compiling env.
Thu, 09 Feb 2006 11:55:47 +0000
Mozilla Thunderbird 1.0.7-1.4.1 (X11/20050929)
The assembly fragment in question looks like this:
.long .L5458-.+(.-.L5465) <<<<<<- Problem first reported here
The problem is that the two symbols (.L5458 and .L5465) are in different
sections. Therefore it is impossible for the assembler to calculate the
distance between them. Since the symbols are local symbols they are
not emitted into the object file and so they are not available for the
linker to calculate the distance either.
The real root of the problem I believe is that you are using a broken
compiler. You say that you are using GCC 2.3.2 which is an extremely
old version. I would strongly urge you to upgrade to the 2.95 release,
or better yet the 3.4.4 release or even the 4.1 release.
If you cannot do this then see if the version of gcc you are using has
any switches to alter the way it handles case statements. eg