Ronald G Minnich <[EMAIL PROTECTED]> writes:

> On 26 Oct 2001, Eric W. Biederman wrote:
> 
> > Except the virtual addresses of variables in the data
> > section are wrong and the code won't run.
> 
> Well, this one I have not tried. But a very similar fix on the alpha did
> work.
> 
> Oh, I see what you mean, sorry.
> 
> OK, don't know what to do.
> 
> > With ld 2.10.90  I don't have any problems ld --version.
> 
> that same version, same bfd library, breaks on alpha.
> 
> > It seriously looks like simply having new enough tools might be
> > the solution.  Every time I have tracked it that was the problem/difference.
> 
> In catani's case the tools are NEWER, and they went from working to broken
> :-(

Ouch!  Unless they are a development version.  

Until something better comes along the only obvious solution is to do
the kernel thing and only compile with known good tools.  At least ld
told us when it broke. 
 
> I'd rather get to the point that we can work with any version of ld, that
> may be impossible however.

Right.  I'd hate to push it to hard.  I might be able to resolve the
physical versus virtual address stuff with the work I am doing to get
the use cache as ram.  It is working pretty well, but I still need to
implement the segment trick.  My attempt at using PIC code isn't useful
because it doesn't generate position independant data that doesn't
need fixups when it is relocated.  So I need to fix the virtual
address, or pointers will be a problem.

So far we only have the physical versus virtual distinction on x86 because
we relocate just our data segment.  If we relocated all of the code, and
just pretended to be at the right address initially we can resolve
that.

I'm not too worried about multiple sections causing problems as the
implicit scripts that ld uses also have multiple sections so the
problem appears to be mostly related to forcing addresses and virtual
versus physical distinctions.

Eric

Reply via email to