This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] Avoid R_IA64_NONE relocations when relaxing
On Mon, Aug 08, 2005 at 03:55:30PM -0700, James E Wilson wrote:
> On Sat, 2005-08-06 at 08:12, H. J. Lu wrote:
> > On Sat, Aug 06, 2005 at 04:43:08PM +0200, Andreas Schwab wrote:
> > ...
>
> So we have three patches. Anyone want to argue for or against any of
> them?
>
> The first patch from HJ, setting gp in elfNN_ia64_relax_section, does
> not seem wise. This is changing the gp value in the middle of a
> relaxation pass.
>
> The second patch from HJ, setting gp in elfNN_ia64_final_link, seems OK,
> but has an incorrect comment. It is possible for some sections to
> increase in size when we start relaxation. This happens when we insert
> a trampoline for an out-of-range br. However, no sections increase in
> size after we start doing LTOFF22X relaxations, which is the important
> part.
My comments says "We assume after gp is set, section size will only
decrease." GP is set only when we start doing LTOFF22X relaxations.
>
> The patch from Andreas seems to have the most thought put into it, but
> it is also by far the most invasive, so it would be nice to have a
> reason to justify it. It does seem to be modifying gp in the proper
> place, before each relaxation pass. I think this patch has the
> potential to perform more LTOFF22X relaxations. As we reduce section
> sizes, more symbol addresses will come within range of gp, and hence
Not all section size reduction will lead to more LTOFF22X relaxations.
I don't think the size of .rela.got section matters here. The most
likely ones are .got and .IA64.pltoff. Can we reduce the size of
.got or .IA64.pltoff during relaxation?
> more LTOFF22X relocations will get relaxed to GPREL22 relocs. That may
> be a good reason to go with this patch.
H.J.