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           |
+--------------------------------------------------------------------+