This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]