Alexander Gottwald wrote:
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.
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. :-(

--Chuck



Reply via email to