PATCH: PR gas/4029: relax_segment can't stabilize .gcc_except_table

Alan Modra amodra@bigpond.net.au
Thu Feb 22 21:02:00 GMT 2007


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



More information about the Binutils mailing list