Why relocation truncated to fit: R_MIPS_26 again `memcpy'?

Adam Nemet anemet@caviumnetworks.com
Fri Jun 12 17:22:00 GMT 2009


Hi Nick,

Nick Clifton <nickc@redhat.com> writes:

> Hi Pan,
>
>> test.c:(.text+0x64): relocation truncated to fit: R_MIPS_26 against `memcpy'
>
>> 80000628 T memcpy
>
>> Since .text section and memcpy are located in the same 256M region,
>> how the `relocation truncated to fit' linking error comes?
>
> The R_MIPS_26 relocation is not PC-relative.  Therefore it is trying to put
> the address of the memcpy symbol into a 26-bit wide field.  Since the address
> is 0x80000628 the value will not fit and you get the error message above.

It is PC-relative, in terms of the current 256M segment the relocation
(i.e. the direct jump instruction) is in.

Adam



More information about the Binutils mailing list