[omniORB] AIX again: AIX4.3, omniORB4, xlC5, scoping problem?

Rainer Frohnhoefer rain_list@arcor.de
Sun Oct 27 19:01:02 2002


  Hi,

after spending some time trying to get omniORB4 to compile with xlc5 on  
AIX, I ended up with a method signature problem:

[snip]
Listing ./impl ...
Listing ./skel ...
gmake[4]: Leaving directory  
`/home/u/frohnhoe/debugit/tmp/omniORB-4.0.0/src/lib/omniORB/omniidl_be/ 
cxx'
File __init__.py hasn't changed.
gmake[3]: Leaving directory  
`/home/u/frohnhoe/debugit/tmp/omniORB-4.0.0/src/lib/omniORB/omniidl_be'
making export in src/lib/omniORB/orbcore...
gmake[3]: Entering directory  
`/home/u/frohnhoe/debugit/tmp/omniORB-4.0.0/src/lib/omniORB/orbcore'
xlC_r -c  -qstaticinline -qmaxmem=8192 -qlonglong -qlongdouble -I..  
-I./.. -I../../../../include/omniORB4/internal -D_REENTRANT  
-D_THREAD_SAFE -DUSE_omniORB_logStream -D_OMNIORB_LIBRARY  
-DCONFIG_DEFAULT_LOCATION='"/etc/omniORB.cfg"'  
-DCONFIG_ENV='"OMNIORB_CONFIG"' -DUnixArchitecture -I. -I.  
-I../../../../include -D__aix__ -D__powerpc__ -D__OSVERSION__=4 -o  
static/corbaBoa.o corbaBoa.cc
"../omniORB4/ir_operators.hh", line 8.3: 1540-0218 (S) The call does  
not match any parameter list for "::operator>>=".
"../../../../include/omniORB4/corba_operators.h", line 41.32: 1540-1283  
(I) "operator>>=(const CORBA::Any &, const CORBA::UNKNOWN *&)" is not a  
viable candidate.
"../omniORB4/ir_operators.hh", line 8.17: 1540-0295 (I) A parameter of  
type "const CORBA::Any &" cannot be initialized with an rvalue of type  
"unsigned long".

[snip list of nonmatching methods and then ...]

"../../../../include/omniORB4/cdrStream.h", line 377.22: 1540-1298 (I)  
"void operator>>=(_CORBA_LongDouble, cdrStream &)" needs to be declared  
in the containing scope to be found by name lookup.
"../../../../include/omniORB4/cdrStream.h", line 345.22: 1540-1298 (I)  
"void operator>>=(_CORBA_Double, cdrStream &)" needs to be declared in  
the containing scope to be found by name lookup.
"../../../../include/omniORB4/cdrStream.h", line 319.22: 1540-1298 (I)  
"void operator>>=(_CORBA_Float, cdrStream &)" needs to be declared in  
the containing scope to be found by name lookup.
"../../../../include/omniORB4/cdrStream.h", line 301.22: 1540-1298 (I)  
"void operator>>=(_CORBA_ULongLong, cdrStream &)" needs to be declared  
in the containing scope to be found by name lookup.
"../../../../include/omniORB4/cdrStream.h", line 285.22: 1540-1298 (I)  
"void operator>>=(_CORBA_LongLong, cdrStream &)" needs to be declared  
in the containing scope to be found by name lookup.
"../../../../include/omniORB4/cdrStream.h", line 269.22: 1540-1298 (I)  
"void operator>>=(_CORBA_ULong, cdrStream &)" needs to be declared in

[snip, rest of errors similar to above]

  Having spent too much time with Java, I'm not really into C++. Could  
it be that a) I hit a problem with scopes in the source code or b)  
xlC5.0 is buggy in this regard or c) I'm doing something fundamentally  
wrong?

  I played a bit with xlC switches of the "-qlanglvl=<level>:<feature>"  
variety but this didn't help.

  Or did someone even manage to build omniORB4 with AIX4.3 and xlC5?


  Any hints appreciated,
	-Rainer.