[gold][PATCH] PR gold/17619: Check PC-relative offset overflow in PLT entry

H.J. Lu hjl.tools@gmail.com
Thu Nov 20 01:08:00 GMT 2014


On Wed, Nov 19, 2014 at 4:37 PM, Cary Coutant <ccoutant@google.com> wrote:
>> +  // Check PC-relative offset overflow in PLT entry.
>> +  bool gotplt_after_plt = got_address > plt_address;
>> +  int32_t plt_got_pcrel_offset = (got_address + got_offset
>> +                                 - (plt_address + plt_offset + 6));
>> +  if ((gotplt_after_plt && plt_got_pcrel_offset < 0)
>> +      || (!gotplt_after_plt && plt_got_pcrel_offset > 0))
>> +    gold_error(_("PC-relative offset overflow in PLT entry"));
>
> It would be nice to print more information here. I think it's
> next-to-impossible at this point to translate the PLT index into a

I will update it.

> symbol, but we could at least print the PLT index. Is there a remedy
> we can suggest?
>

We can use large PIC model.  But it isn't supported by gold:

https://sourceware.org/bugzilla/show_bug.cgi?id=17593

-- 
H.J.



More information about the Binutils mailing list