Subject: Re: libsa/loadfile.c (a.out not working)
To: None <nigel@ind.tansu.com.au>
From: Michael L. Hitch <mhitch@lightning.msu.montana.edu>
List: tech-kern
Date: 07/15/2001 21:25:16
On Mon, 16 Jul 2001 nigel@ind.tansu.com.au wrote:

> I said:
> > 1) aout_exec() seems to load files non-zero entry point at the wrong
> >    address. A kernel with a_entry of 0x2e00 loads at address 0x2e00,
> >    with its entry point at 0x5c00 !
> 
> Jason reported:
> > If this were true, the i386 port wouldn't work.  But I'd need to look
> > at the code again and get my head wrapped around it to figure out how
> > to make your booter work.
> 
> 	Basically, I do something this:
...
> 	a_entry of netbsd.aout is 0x2e00. A dump of buff reveals the
> first 0x2e12 bytes to be zero. MARK_ENTRY points to buff + 0x2e00.

  Hmm....  How are you defining ALIGNENTRY()?  On the amiga, I've got it
defined as (0) for _STANDALONE (shamelesly copied from the hp300
loadfile_machdep.h).  I now remember that this was one of the things I had
to figure out how it worked.  I still don't completely understand exactly
what the ALIGNENTRY() is supposed to do, but I had to use (0) to get the
kernel to load where I wanted.

--
Michael L. Hitch			mhitch@montana.edu
Computer Consultant
Information Technology Center
Montana State University	Bozeman, MT	USA