[omniORB] Alpha/Digital UX link errors linking example 1

Doug Anderson doug@clark.net
Thu, 3 Jun 1999 22:55:43 -0400


Andrew,

Strange - I just built 2.7.1 with cxx6.1-029 on Digital Unix 4.0e this
afternoon.  I didn't have any problems at all.  The only thing I changed
was to replace the stuff after -lpthread (e.g. -lmach ...) with -lexc, which
the cxx compiler guide recommends if you don't use the -pthread link-time
option.  (this also works with egcs)  I have used this since omniORB 2.5.0,
so I make this change whenever I build it.  (it may make no difference, but
I didn't want to take any chances)  

2.7.1 seems to run our applications as before under 2.6.1, though it required
a bit of autoconf work adding support for the additional -lomniDynamic2 and
associated *Dyn.cc files generated.  The echo examples built fine as well.

Sorry I can't offer any experience on your problem, as I have had none.

Doug

P.S. I built the same configuration using egcs-1.1.2, and it also runs our apps.

----- Original Message ----- 
From: agonne - Andrew Gonnet <AGONNE@acxiom.co.uk>
To: 'Sai-Lai Lo' <S.Lo@uk.research.att.com>
Cc: <omniorb-list@orl.co.uk>
Sent: Wednesday, June 02, 1999 10:08 AM
Subject: RE: [omniORB] Alpha/Digital UX link errors linking example 1


> Hi Sai-Lai,
> 
> Thanks very much for your reply. I checked the version of cxx that I 
> was using. There is only one copy installed, it is 6.1-029 and it's 
> the one being used. I also checked my LD_LIBRARY_PATH and found that I 
> was using the .so files from omniORB 2.6.1 not 2.7.1. I corrected 
> LD_LIBRARY_PATH, deleted everything,  untared the distribution from 
> scratch and tried again using the make file in "echo" and typing "make 
> eg1". I now get three unresolved references: 
> "CORBA::__vtbl_5CORBA15SystemException", 
> "CORBA::__vtbl_5CORBA9NO_MEMORY" and 
> "CORBA::__vtbl_5CORBA13BAD_OPERATION". These are all in the echoSK.o 
> object that I'm creating from the output of "omniidl2". Here is a 
> listing of the make output:
> 
> -----------------------------------------------------------
> /usr/users/develop/agonne/WareHouse/omniORB/omniORB_2.7.1/src/examples/  
> echo >make eg1
> mkdirhier ../../../stub
> rm -f ../../../stub/echo.idl
> cp echo.idl ../../../stub
> chmod +w ../../../stub/echo.idl
> ( cd ../../../stub; \
>   ../bin/alpha_osf1_4.0/omniidl2 -a echo.idl; \
> )
> ../../../bin/alpha_osf1_4.0/omkdepend -D__DECCXX -D__cplusplus 
> -D__OMNIORB2__ -I../../../stub -D_REENTRANT -pthread -I. 
> -I../../../include -D__alpha__ -D__osf1__ -D__OSVERSION__=4 eg3_clt.cc 
> eg3_impl.cc eg2_clt.cc eg2_impl.cc eg1.cc greeting.cc
> /usr/bin/cxx -c -O -ptr ../../../cxx_respository -D__OMNIORB2__ 
> -I../../../stub -D_REENTRANT -pthread -I.  -I../../../include 
> -D__alpha__ -D__osf1__ -D__OSVERSION__=4 -o eg1.o eg1.cc
> /usr/bin/cxx -c -O -ptr ../../../cxx_respository -D__OMNIORB2__ 
> -I../../../stub -D_REENTRANT -pthread -I.  -I../../../include 
> -D__alpha__ -D__osf1__ -D__OSVERSION__=4 -o ../../../stub/echoSK.o 
> ../../../stub/echoSK.cc
> /usr/bin/cxx -c -O -ptr ../../../cxx_respository -D__OMNIORB2__ 
> -I../../../stub -D_REENTRANT -pthread -I.  -I../../../include 
> -D__alpha__ -D__osf1__ -D__OSVERSION__=4 -o ../../../stub/echoDynSK.o 
> ../../../stub/echoDynSK.cc
> + rm -f eg1
> + /usr/bin/cxx -o eg1 -O -ptr ../../../cxx_respository -call_shared 
> -L../../../lib/alpha_osf1_4.0 eg1.o ../../../stub/echoSK.o 
> ../../../stub/echoDynSK.o -lomniORB2 -lomniDynamic2 -lomnithread 
> -lpthread -lmach -lc_r -ltcpwrapGK -rpath ../../../lib/alpha_osf1_4.0 
> ld:
> Unresolved:
> 
> 
> CORBA::__vtbl_5CORBA15SystemException  Make sure that the first 
> noninlined virtual member function of 'CORBA::SystemException' is 
> defined.
> 
> CORBA::__vtbl_5CORBA9NO_MEMORY  Make sure that the first noninlined 
> virtual member function of 'CORBA::NO_MEMORY' is defined.
> 
> CORBA::__vtbl_5CORBA13BAD_OPERATION  Make sure that the first 
> noninlined virtual member function of 'CORBA::BAD_OPERATION' is 
> defined.
> 
> 
> make: *** [eg1] Error 1
> /usr/users/develop/agonne/WareHouse/omniORB/omniORB_2.7.1/src/examples/  
> echo >/usr/bin/cxx -V
> DIGITAL C++ V6.1-029 on DIGITAL UNIX V4.0 (Rev. 1091)
> -----------------------------------------------------------------------  
> ----------
> 
> 
> 
> 
> I've also put the whole set of source files onto a different Alpha 
> machine which had cxx v6.0-021 on it still. I got an additional 
> unresolved "CORBA::__vtbl_5CORBA9Exception", see below:
> 
> 
> 
> ----------------------------------------------------------------------  
> 
> $ make eg1
> mkdirhier ../../../stub
> rm -f ../../../stub/echo.idl
> cp echo.idl ../../../stub
> chmod +w ../../../stub/echo.idl
> ( cd ../../../stub; \
>   ../bin/alpha_osf1_4.0/omniidl2 -a echo.idl; \
> )
> ../../../bin/alpha_osf1_4.0/omkdepend -D__DECCXX -D__cplusplus 
> -D__OMNIORB2__ -I../../../stub -D_REENTRANT -pthread -I. 
> -I../../../include -D__alpha__ -D__osf1__ -D__OSVERSION__=4 eg3_clt.cc 
> eg3_impl.cc eg2_clt.cc eg2_impl.cc eg1.cc greeting.cc
> /usr/bin/cxx -c -O -ptr ../../../cxx_respository -D__OMNIORB2__ 
> -I../../../stub -D_REENTRANT -pthread -I.  -I../../../include 
> -D__alpha__ -D__osf1__ -D__OSVERSION__=4 -o eg1.o eg1.cc
> /usr/bin/cxx -c -O -ptr ../../../cxx_respository -D__OMNIORB2__ 
> -I../../../stub -D_REENTRANT -pthread -I.  -I../../../include 
> -D__alpha__ -D__osf1__ -D__OSVERSION__=4 -o ../../../stub/echoSK.o 
> ../../../stub/echoSK.cc
> /usr/bin/cxx -c -O -ptr ../../../cxx_respository -D__OMNIORB2__ 
> -I../../../stub -D_REENTRANT -pthread -I.  -I../../../include 
> -D__alpha__ -D__osf1__ -D__OSVERSION__=4 -o ../../../stub/echoDynSK.o 
> ../../../stub/echoDynSK.cc
> + rm -f eg1
> + /usr/bin/cxx -o eg1 -O -ptr ../../../cxx_respository -call_shared 
> -L../../../lib/alpha_osf1_4.0 eg1.o ../../../stub/echoSK.o 
> ../../../stub/echoDynSK.o -lomniORB2 -lomniDynamic2 -lomnithread 
> -lpthread -lmach -lc_r -ltcpwrapGK -rpath ../../../lib/alpha_osf1_4.0 
> ld:
> Unresolved:
> 
> 
> CORBA::__vtbl_5CORBA9Exception
> 
> CORBA::__vtbl_5CORBA15SystemException
> 
> CORBA::__vtbl_5CORBA9NO_MEMORY
> 
> CORBA::__vtbl_5CORBA13BAD_OPERATION
> 
> 
> make: *** [eg1] Error 1
> $ cxx -V
> DIGITAL C++ V6.0-021 on DIGITAL UNIX V4.0 (Rev. 1091)
> -----------------------------------------------------------------------  
> ----------
> 
> 
> 
> Any suggestions, however unlikely, would be much appreciated.
> 
> 
> Thanks again,
> 
> Andrew Gonnet.
> 
> ----------
> From:  Sai-Lai Lo [SMTP:S.Lo@uk.research.att.com]
> Sent:  02 June 1999 10:18
> To:  agonne - Andrew Gonnet
> Subject:  Re: [omniORB] Alpha/Digital UX link errors linking example 
> 1
> 
> >>>>> agonne  writes:
> 
> > I'm getting unresolved errors for methods that are called in the
> > object generated from the "echoSK.cc" using the supplied make file 
> in
> > the "echo" example directory. Using "nm" I can find these methods in 
> > the "echoSK.o" object, but the version in the supplied object
> > "libomniORB2.so" is in the format "__vtbl_Q15CORBA7UNKNOWN" etc - 
> i.e
> > there's an extra "Q1" in the middle.
> 
> > Has anybody come across this problem?
> 
> > I'm using Digital UX v4.0e, Digital cxx 6.0 (for compiling), gcc 
> 2.8.1
> > (just for omniidl2, it complained when it wasn't there) and omniORB 
> > 2.7.1.
> 
> It is strange because greping through nm echoSK.o I do not see any
> reference to UNKNOWN.
> 
> Just a wild guess, are you sure you are compiling echoSK.o with the 
> same
> cxx 6.0 compiler?
> 
> Sai-Lai
> 
> --
> Sai-Lai Lo                                   S.Lo@uk.research.att.com
> AT&T Laboratories Cambridge           WWW: 
>   http://www.uk.research.att.com
> 24a Trumpington Street                Tel:   +44 1223 343000
> Cambridge CB2 1QA                     Fax:   +44 1223 313542
> ENGLAND
> 
>