test

omniorb@orl.co.uk omniorb@orl.co.uk
Thu, 29 May 1997 11:18:40 +0100


The following is a patch for the 2.2.0 distribution.

*** This patch only affects users of the Win32 distribution ***


Note that binaries with the patches installed are available from 
     http://www.orl.co.uk/omniORB/bugs/4.html .

Platforms: Win32 (Windows NT, Windows '95)

Description:

Link errors involving MemBufferedStream may show up when linking to either the
static or dynamic (DLL) libraries:

error LNK2001: unresolved external symbol "private: void __thiscall 
MemBufferedStream::grow(unsigned int)"(?grow@MemBufferedStream@@AAEXI@Z)

error LNK2001: unresolved external symbol "private: void *__thiscall
MemBufferedStream::overrun_error(void)"(?overrun_error@MemBufferedStream@@AAEPAXXZ)


Workaround: (PATCH #3)

Two files need to be patched. You can download copies of the (patched) files
from:

ftp://ftp.orl.co.uk/pub/omniORB/patch3/MAKEFILE  
ftp://ftp.orl.co.uk/pub/omniORB/patch3/omniORB2.def 

Put MAKEFILE in the directory build_win32 . 
Put omniORB2.def in the directory src\lib\omniORB2 . 

Re-compile both the static and dynamic libraries. Copy the new DLL to
a directory that is searched by the system's loader. Finally, link your 
code to the new (static or import) library.


Alternatively, you can apply the patch yourself:

Add the following lines to <TOP-LEVEL-DIRECTORY>\build-win32\MAKEFILE :
At line 319:
	-@erase "$(INTDIR)\mbufferedStream.obj"
At line 353:
	"$(INTDIR)\mbufferedStream.obj" \


Add the following lines to the end of the file 
<TOP-LEVEL-DIRECTORY>\src\lib\omniORB2\omniORB2.def :
(At line 1036 - i.e. at the end of the file):
??0MemBufferedStream@@QAE@ABV0@@Z
??0MemBufferedStream@@QAE@I@Z
??1MemBufferedStream@@QAE@XZ
??2@YAPAXI@Z
??3@YAXPAX@Z
??4MemBufferedStream@@QAEAAV0@ABV0@@Z
??_C@_0CD@EBLJ@MemBufferedStream?3?3overrun_error@
?copy@MemBufferedStream@@AAEXABV1@@Z
?get_char_array@MemBufferedStream@@QAEXPAEH@Z
?grow@MemBufferedStream@@AAEXI@Z
?overrun_error@MemBufferedStream@@AAEPAXXZ
?pd_inline_buf_size@MemBufferedStream@@0HB
?put_char_array@MemBufferedStream@@QAEXPBEH@Z
?rewind_in_mkr@MemBufferedStream@@QAEXXZ
?rewind_inout_mkr@MemBufferedStream@@QAEXXZ
?size@MemBufferedStream@@AAEIXZ
?skip@MemBufferedStream@@QAEXK@Z
?startofstream@MemBufferedStream@@ABEPAXXZ


Re-compile both the static and dynamic libraries. Copy the new DLL to
a directory that is searched by the system's loader. Finally, link your 
code to the new (static or import) library.