This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: PATCH: PR gas/4029: relax_segment can't stabilize .gcc_except_table
- From: Alan Modra <amodra at bigpond dot net dot au>
- To: "H. J. Lu" <hjl at lucon dot org>
- Cc: binutils at sources dot redhat dot com
- Date: Fri, 23 Feb 2007 00:05:54 +1030
- Subject: Re: PATCH: PR gas/4029: relax_segment can't stabilize .gcc_except_table
- References: <20070219025438.GA10913@lucon.org> <20070219071927.GA11730@lucon.org>
On Sun, Feb 18, 2007 at 11:19:27PM -0800, H. J. Lu wrote:
> + if (growth == -1
> + && fragP->growth_count == 0xf)
> + {
> + /* There are 15 growths after shrinks. To break
> + the infinite loop, we grow the size by 1 instead
> + of shrinking it by 1. */
> + growth = 1;
> + }
HJ, how can this possibly work? If you arbitrarily change the growth,
then all following frags will have their address set incorrectly.
At least, that's what is seems like to me. Hmm, I suppose you might
have found something that works for one specific case of following
frag types, but I don't think this can be correct in general.
--
Alan Modra
IBM OzLabs - Linux Technology Centre