Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Jan 1995 20:47:14 -0500 (EST)
From:      Marc Ramirez <mrami@remote1-line1.cis.yale.edu>
To:        questions@FreeBSD.org
Subject:   GCL and unexec()
Message-ID:  <Pine.BSI.3.91.950116202654.666A-100000@remote1-line1.cis.yale.edu>

next in thread | raw e-mail | index | archive | help
So, I decided tonight would be the night I make GCL run on FreeBSD v2.0. 
Big mistake.  Actually, it wasn't that bad, but I have hit an
insurmountable (for me, anyways) wall.  When it comes time to load the
"raw" gcl, add the base package, and write it out as the "saved" gcl via
unexec(), the binary is not being written out properly. 

I know nothing about linking or making binaries, so I have two questions: 

1) What is the easiest thing to do?  My idea of the "easiest" solution is 
to compile the "raw" gcl as a statically linked OMAGIC or ZMAGIC binary (I 
don't *think* the code is self-modifying, so maybe ZMAGIC). That way, the 
trick would be to dump text, dump data, and dump bss.

2) What is the right thing to do?  Basically, I don't have an 
understanding of the load/map-in process.  Does the kernel just throw the 
binary into virtual memory and JMP?  What happens to the exec header?  Is 
it lost?  If not, could I write a library function unexec() which could 
be used for ever and ever, maintained by whomever maintains the exec 
format du jour?

Basically, I want to do the easiest now, and shoulder the responsibility 
of doing the best later.  (Spoken like a true procrastinator).

One other thing: I went to a fly tying class tonight.  For those of you 
that don't know, it is a *great* place to meet women! :)

Marc.

--
DeForrest Gump - "Dammit, Jim!  Life is like a box of chocolates!"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSI.3.91.950116202654.666A-100000>