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