Alexander Gottwald wrote:
I seem to remember that pointer comparisons across a DLL boundary is a Bad Thing; relocations and such. But I don't remember where I saw that -- MSDN or ld docs, and I can't find it now. :-(So I don't even know where _XtInherit is called and whats different with the relocation.
gdb revealed:
Dll1 (libXt) defines void _XtInherit(). Dll2 (libXaw) uses _XtInherit and passes it to a function in libXt which does if (x == _XtInherit) { foo() };
Unfortunatly it is not the same if _XtInherit is used in libXt or libXaw. the statement x = _XtInherit for example resulted in
x = 0xb38478 for libXt and
x = 0x641550 for libXaw. And thats why the if condition failed.
--Chuck