[omniORB] omniORB and Windows

Andrew Stitcher astitcher@orchestream.com
Mon, 14 Jun 1999 18:15:57 +0100


> This is not the problem.  Windows DLL's are compiled with a default address
> to load into memory.  If two DLL's happen to be compiled with the same
> address, Windows automatically relocates the DLL to a non conflicting part
> of memory.  If a DLL is relocated, I believe an additional memory reference
> is required when accessing anything exported from the DLL.  You can safely
> ignore this message.

Although this is quite true in that the program loader will 
automatically relocate DLLs that have the same load address as 
another DLL, if this happens it negates many of the benefits of 
having a DLL - the program text is no longer sharable as it has been 
fixed up for the new address, especially as the DLL may start at 
different addresses in different executables.

The way to fix the problem is to use the rebase utility to fix up the 
DLLs for a non-default address.

(This is something we do for the omniORB DLLs ourselves, as it's not 
done in the makefiles)

Andrew