Malcolm Purvis <malcolmp(a)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/