Why are there 2 continous R_MIPS_HI16 reloc entries in the ELF excutable?

Richard Sandiford rdsandiford@googlemail.com
Sat Aug 16 07:51:00 GMT 2008
Ian Lance Taylor <iant@google.com> writes:
> "Pan ruochen" <panruochen@gmail.com> writes:
>
>>> The GNU toolchain allows relaxed rules of R_MIPS_HI16/R_MIPS_LO16
>>> as an extension. (This allows some optimizations which wouldn't be
>>> possible otherwise.)
>>>
>>>
>>> Thiemo
>>>
>>
>> How should I handle the GNU extension then? Are there any document?
>
> Compute R_MIPS_HI16 as usual.  For R_MIPS_LO16, use the addend from
> the immediately preceding R_MIPS_HI16.

Probably stating the obvious, sorry, but just in case there's any
confusion: the names of the relocs are swapped here.

Compute R_MIPS_LO16 as usual.  For R_MIPS_HI16, use the addend from the
next R_MIPS_LO16 (skipping over any intervening non-R_MIPS_LO16 relocs).

Richard



More information about the Binutils mailing list