Solaris omniORB, GNU g++, JavaIDL
Tristan Richardson
tjr@orl.co.uk
Wed, 02 Jul 1997 11:42:39 +0100
>>>>>>>>> Thomas Wenger writes:
>
> One problem that still persists, is that omniNames can not check the
> logfiles. There seems to be a problem with file handles, beacause I get
> some dead .nfsxxxx files in the log directory. This does not happen when
> compiling with Sun CC.
>
> The output of GNU compiled omniNames is:
>
> Wed Jul 2 11:00:52 1997:
>
> Checkpointing Phase 1: Prepare.
> I/O error writing checkpoint file: Bad file number
> Abandoning checkpoint
>
You may have missed the fix for this which Sai Lai posted a while ago.
There is a bug in the Sunpro C++ compiler to do with not closing file
descriptors. The code to work around this gets included wrongly when using
g++ on Solaris, causing the message you see.
To fix it, find the 4 places in appl/omniNames/log.cc where there is code like
this:
// a bug on Solaris means that the fd doesn't get closed.
#if defined(__sunos__) && (__OSVERSION__ == 5)
....
#endif
and remove it, or better still, change the #if to:
#if defined(__sunos__) && defined(__SUNPRO_CC)
Regards,
Tristan
+--------------------------------------------------------------------+
| Tristan Richardson Email: tjr@orl.co.uk |
| ORL Tel: +44 1223 343000 |
| 24a Trumpington Street Fax: +44 1223 313542 |
| Cambridge, CB2 1QA, UK WWW: http://www.orl.co.uk/ |
+--------------------------------------------------------------------+
| ORL - The Olivetti & Oracle Research Laboratory |
+--------------------------------------------------------------------+