This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: PATCH: Fix the relax finalize pass
- From: Richard Henderson <rth at redhat dot com>
- To: "H. J. Lu" <hjl at lucon dot org>
- Cc: gcc at gcc dot gnu dot org, binutils at sources dot redhat dot com, amodra at bigpond dot net dot au, jakub at redhat dot com
- Date: Wed, 14 May 2003 22:37:48 -0700
- Subject: Re: PATCH: Fix the relax finalize pass
- References: <20030513163647.B21871@lucon.org> <20030514075330.GC16863@redhat.com> <20030514155346.A9453@lucon.org> <20030515010125.GH9567@redhat.com> <20030514222451.B14834@lucon.org>
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~