This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [gold][PATCH] PR gold/17619: Check PC-relative offset overflow in PLT entry
- From: Cary Coutant <ccoutant at google dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: Binutils <binutils at sourceware dot org>
- Date: Wed, 19 Nov 2014 16:37:15 -0800
- Subject: Re: [gold][PATCH] PR gold/17619: Check PC-relative offset overflow in PLT entry
- Authentication-results: sourceware.org; auth=none
- References: <20141118193634 dot GA16737 at intel dot com>
> + // 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
symbol, but we could at least print the PLT index. Is there a remedy
we can suggest?
-cary