--- Comment #5 from daney at gcc dot gnu dot org 2006-11-07 20:53 ---
This is a gas bug.
This is probably the fix:
http://sourceware.org/ml/binutils/2006-11/msg00055.html
--
daney at gcc dot gnu dot org changed:
What|Removed |Added
--
--- Comment #4 from daney at gcc dot gnu dot org 2006-11-06 22:31 ---
OK, looks like GCC may be allowed to emit the relocations out of order. I am
looking into the possiblility that gas can be fixed so that the relocaitons are
emitted in the proper order even if their position in the co
--- Comment #3 from daney at gcc dot gnu dot org 2006-11-06 01:17 ---
Manually moving the
lw $4,%got($L2406)($28)
to be just before the
addiu $4,$4,%lo($L2406)
and reassembling fixes the problem.
So I think that my analysis about the problem being splitting them up with
--- Comment #2 from daney at gcc dot gnu dot org 2006-11-05 21:44 ---
It looks like the problem here is that a %lo relocation is getting seperated
from its corresponding %got. Here is a little of the assembly, note how there
is an intervening %got/%lo between the %got($L2406) and the %l