PATCH: Fix the relax finalize pass

Richard Henderson rth@redhat.com
Thu May 15 05:40:00 GMT 2003


On Wed, May 14, 2003 at 10:24:51PM -0700, H. J. Lu wrote:
> ... when the final pass starts, any section size change in the
> final pass may lead to data segment address change due to the call
> to lang_do_assignments after the final relax pass.

Seems to me then you shouldn't be calling into the bfd backend
if that's the case.  So after bfd says it's done, you go one
more round to finalize the data section start.

> Another simple kludge is to disable the
> 
>   if (exp_data_seg.phase == exp_dataseg_end_seen)
>     {
>       /* If DATA_SEGMENT_ALIGN DATA_SEGMENT_END pair was seen, check whether
>          a page could be saved in the data segment.  */
> 	...
>     }
> 
> block. We can put a FIXME there.

Maybe that would be better.  It'd mean less kruft to have
to back out of the main linker.


r~



More information about the Binutils mailing list