[omniORB] omniORB2.8.0pre2 problem under AIX

Craig Rodrigues rodrigc@mediaone.net
Sat, 11 Sep 1999 20:26:54 -0400


Hello,

I ran into the following problem while compiling
omniORB 2.8.0 pre2 under AIX 4.2.1, with xlC 3.6.6:

xlC_r -c -O  -I../../..  -I../..  -D__OMNIORB2__ -I../../../../../../stub -I../../../../../../include -D_REENTRANT -D_THREAD_SAFE -D__aix__ -D__powerpc__ -D__OSVERSION__=4 -o gatekeeper.o gatekeeper.cc
"gatekeeper.cc", line 124.78: 1540-055: (S) "int*" cannot be converted to "size_t*".
"gatekeeper.cc", line 124.78: 1540-306: (I) The previous message applies to argument 3 of function "getpeername(int,sockaddr*,size_t*)".
gmake: *** [gatekeeper.o] Error 1

The offending line is:
if ( getpeername ( handle, (struct sockaddr*) (void *) & clientAddr, & clientAddrSize ) ) {

Under AIX, the function prototype for getpeername() is:
int getpeername(int, struct sockaddr *, size_t *);

and in AIX, size_t is a typdef for unsigned long

clientAddrSize is int, so this seems to be the problem

What is the correct way to fix this?

Thanks.
-- 
Craig Rodrigues        
http://www.gis.net/~craigr    
rodrigc@mediaone.net