Nuking unexec

Jerry James james at xemacs.org
Tue Feb 1 23:20:23 EST 2005


Malcolm Purvis <malcolmp at xemacs.org> wrote:
> Some of the objects that get dumped contain function pointers.  In the IA64
> ABI, these point to a descriptor containing { &code, &data_context }.  At the
> very least data_context varies between machines and across reboots (I'm not
> sure about per process).  Data_context is so machine dependant that there is
> no useful way that we can get access to it in XEmacs.
>
> SuSe have a patch to 21.4 that re-assigns these function pointers at startup
> (in a similar vein to reinit_vars_of_X()).  It's pretty invasive but I think
> it's the only way we can work around it.  I've a dusty workspace that tries to
> clean the patch up a bit but haven't worked on it recently for a lack of two
> IA64 boxes to try it on (I'm not allowed to reboot the one I've access to).
>
> Emacs doesn't have this problem because I don't think it dumps function
> pointers.

I am about to commit Olivier Galibert's patch to enable dumping and
loading of bignums.  It does this via a mechanism very like Java's
serialization mechanism.  That is, for a given data type, you specify a
function that converts to a dumpable external format, and a function
that converts back from that format.  Is there something we could save
that would let us recover the function pointer at run time?  How about
an internal dictionary of [names <-> function pointers] and do lookups
there while undumping?

(It isn't quite that easy.  We would have to make function pointers be a
data type in their own right for this to work, but it could be done.)

To what functions do we dump pointers?
-- 
Jerry James
http://www.ittc.ku.edu/~james/




More information about the XEmacs-Beta mailing list