[omniORB] compilation problem of OmniORB2.8.0 unixware7.1

Sasi Kumar Gopal sasikumar.gopal@wipro.com
Tue, 26 Dec 2000 15:21:54 -0000


Compilation Report of OMNIORB2.8 on UNIXWARE 7.1

Initially followed the guide lines given in the file README.unix and =
compiled. It results in the following errors.
posix.cc:836: `CLOCK_REALTIME' undeclared (first use this function)
posix.cc:836: (Each undeclared identifier is reported only once
posix.cc:836: for each function it appears in.)
posix.cc:836: implicit declaration of function `int clock_gettime(...)'
gmake[2]: *** [posix.o] Error 1
gmake[2]: Leaving directory =
`/home/syamala/compile/omni/src/lib/omnithread'
gmake[1]: *** [export] Error 2
gmake[1]: Leaving directory `/home/syamala/compile/omni/src/lib'
gmake: *** [export] Error 2

The above errors are due to the call to the function clock_gettime( ) =
which is not there in Unixware. Call goes here because __SCO_VERSION__is =
not defined in the OmniORB makefile. Otherwise call would have gone to =
gettimeofday( ) which is present in Unixware.

Added the above definition in makefile and compiled. It results in the =
following errors.
lomnithread -Kthread -lsocket -lnsl -ltcpwrapGK=20

g++: unrecognized option `-Kthread'
Undefined                       first referenced
 symbol                             in file
pthread_detach                      =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_attr_destroy                =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_cond_destroy                =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_mutex_lock                  =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_self                        =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_cond_wait                   =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_getspecific                 =
../../../lib/x86_uw7/libomnithread.a(posix.o)
sched_yield                         =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_setspecific                 =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_join                        =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_mutex_destroy               =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_create                      =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_exit                        =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_attr_setstacksize           =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_cond_init                   =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_cond_broadcast              =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_mutex_unlock                =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_attr_init                   =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_cond_timedwait              =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_mutex_init                  =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_cond_signal                 =
../../../lib/x86_uw7/libomnithread.a(posix.o)
pthread_key_create                  =
../../../lib/x86_uw7/libomnithread.a(posix.o)
UX:ld: ERROR: omniNames: fatal error: Symbol referencing errors. No =
output written to omniNames
collect2: ld returned 1 exit status
gmake[2]: *** [omniNames] Error 1
gmake[2]: Leaving directory =
`/home/syamala/compile/omni/src/appl/omniNames'
gmake[1]: *** [export] Error 2
gmake[1]: Leaving directory `/home/syamala/compile/omni/src/appl'
gmake: *** [export] Error 2

Changed the above -K option to -l option in two places in the make file =
and compiled. Compilation is successful. But static libraries are =
getting created with .a extension. Configured the OMNIORB ( ex  : =
OMNINAMES_LOGDIR, LD_LIBRARY_PATH) and ran omniNames. It gives the =
following message and dumps core.

Starting omniNames for the first time.
Wrote initial log file.
Read log file successfully.
Root context is =
IOR:010000002800000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696=
e67436f6e746578743a312e300001000000000000002c000000010100000f000000313932=
2e3136382e3136352e37380000c0170e080c0000003a3fc8c833452dc100000002
Checkpointing Phase 1: Prepare.
Checkpointing Phase 2: Commit.
Checkpointing completed.
Abort (core dumped)

Again ran omniNmaes by giving ORBtraceLevel 30 Then the following is the =
result.

Starting omniNames for the first time.
Wrote initial log file.
Read log file successfully.
Root context is =
IOR:010000002800000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696=
e67436f6e746578743a312e300001000000000000002c000000010100000f000000313932=
2e3136382e3136352e37380000c01700000c0000003a3fcb5d61a82de100000002
Checkpointing Phase 1: Prepare.
omniORB: strand Rope::incrRefCount: old value =3D 0
Checkpointing Phase 2: Commit.
Checkpointing completed.
omniORB: strand Ripper: start.
omniORB: scavenger : start.
omniORB: tcpSocketMTfactory Rendezvouser: start.
omniORB: tcpSocketMTfactory Rendezvouser: block on accept()
omniORB: tcpSocketMTfactory Rendezvouser: accept fails. Too many file =
descriptors opened?
Abort (core dumped)

We found the  problem is in the file =
/src/lib/omniORB2/orbcore/tcpSocketMTfactory.cc file. And the solution =
is given  in the file as follows.

XXX accepts failed. The probable cause is that the number of
      //     file descriptors opened has exceeded the limit.
      //     On unix, the value of this limit can be set and get using =
the
      //              ulimit command.
      //     On NT, if this is part of a DLL, the limit is 256(?)
      //            else the limit is 16(?)
      // The following is a temporary fix, this thread just wait for a =
while
      // and tries again. Hopfully, some connections might be freed by =
then.

We Found out the number of file descriptors using the commamnd ulimit =
-n. It was 64.  We Modified it to take the maximum possible value i.e =
2048. Still it is dumping core.




regards
G. Sasi Kumar
Software Specialist
Wipro Technologies
111 Anna Salai, Guindy, Chennai 32, INDIA
Tel 	: +91 44 230 1530 Ext 324 (Board)
Fax	: + 91 44 230 1532

Email 	: sasikumar.gopal@wipro.com <mailto:sasikumar.gopal@wipro.com>

Web 	: <http://www.wipro.com>

The World's First SEI CMM Level 5 Software Services Company