[cmucl-imp] motifd isn't 64-bit kosher

Richard M Kreuter kreuter at progn.net
Sun Jul 6 18:58:51 UTC 2014


Greetings,

I believe it turns out to be a fluke that a 64-bit motifd works
anywhere: the server passes out 32-bits of a pointer as external IDs for
instances of a handful of types [1]. On a 64-bit machine, the instances'
addresses might not fit in a 32-bit address, though. 

(In fact, on my FreeBSD/amd64 machine, when I run the example from the
documentation, the first shell widget always gets created at
#x8045d8900, so motifd hands out #x45d8900, and then attempting to
create the second widget with the shell as parent crashes the server.)

Seems like there are two options:

A. Change the wire protocol to accomodate 64-bit integers.

B. Synthesize 32-bit identifiers for instances of the offending types.

Option B seems simpl

[1] I think the complete list is AcceleratorTable, Atom, FontList,
TranslationTable, Widget, and sometimes XmString.


More information about the cmucl-imp mailing list