Compaq C++ 5.6 bugs (Re: [omniORB] Building 2.8.0 on OpenVMS)
Bruce Visscher
visschb@rjrt.com
Mon, 27 Mar 2000 12:32:34 -0500
Viktor,
> %LINK-W-NUDFSYMS, 3 undefined symbols:
> %LINK-I-UDFSYM, void __als(CORBA::Any &, const
> CORBA_InitialReferences::ObjIdList &)
> %LINK-I-UDFSYM, CORBA::TypeCode *const
> CORBA_InitialReferences::_tc_ObjId
> %LINK-I-UDFSYM, CORBA::TypeCode *const
> CORBA_InitialReferences::_tc_ObjIdList
These are bogus. OmniNames doesn't need these. Unfortunately, the 5.6 compiler
insists on requiring them. The other problem is the order of in which the
libraries are searched. You could ignore the warnings since these will never be
called. Or, you could search the dynamic library again by adding:
DIR_CXXLINKFLAGS=,omnilib:omniDynami2.olb/lib
to [omniorb_280.src.appl.omninames]dir.mms. It is curious (but not surprising)
that this occurs on Alpha but not on VAX.
However, a better solution would be to upgrade the compiler to 6.2. Your "after
a while" would be about an order of magnitude faster.
See also the comparison I did in the amount of disk space required by the 5.6
compiler and the 6.x compiler.
Another reason would be that the resulting omniNames.exe will have a memory leak
if compiled with the 5.6 compiler.
Some time ago, I reported to this list that omniNames seems to have a memory
leak on the VAX platform that doesn't appear on the Alpha platform. Just last
week I discovered that the culprit is a bug in the exception handling code that
comes with the Compaq 5.6 compiler (we use C++ 6.2 on Alpha). Specifically, any
application that throws an exception from a thread will see this behavior. It
turns out that omniORB throws an exception from the low level socket handling
code every time a connection is closed. Even though the exception is handled
properly and the resources from the socket are released, this bug will cause the
virtual page count usage to increase after a period of time. On the VAX
platform this amounts to an increase in 128 (VAX) pages (64K) per 186
connections.
HTH,
Bruce Visscher