[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