[omniORB] SuSE Linux 9.0 - gcc 3.3.1 compile problem - "False" not defined in omniORB 4.0.1/2

Anthony Schlemmer aschlemm at comcast.net
Sun Nov 16 22:34:11 GMT 2003


I have several IDL files that create unions in them and this leads to 
the following generated C++ code for example:
 
case LOG_IP_DATA:
      _pd__default = False;
      (IPDataEntry&)_pd_ipData_Entry <<= _n;
    break;

I just recently upgraded to SuSE 9.0 from 8.2 and didn't have any 
problems before I upgraded. I can't compile any of the generated C++ 
classes that contain unions in them as "False" is not defined anywhere.  
I initially assumed that this was something that older versions of gcc 
were defining or something.

I went back and looked at a RedHat Enterprise ES 2.1 system and the 
generated C++ code has a "0" (zero) rather than "False" in it. I guess 
this progblem may be related to the version of Python being used? On 
the RedHat box we have Python 1.5.2 and on the SuSE system we have 
Python 2.3+ running.

My stopgap measure to this problem is to include a "-DFalse=0" runtime 
argument to the C++ compiler when I compile my generated C++ classes. 
I'm seeing this problem with both omniORB 4.0.1 and 4.0.2

I also get some warnings when "omniidl" is run as well:

/opt/omniORB-4.0.2/lib/python2.3/site-packages/omniidl_be/cxx/
descriptor.py:156: FutureWarning: x<<y losing bits or changing sign 
will return a long in Python 2.4 and up
  return x << distance
/opt/omniORB-4.0.2/lib/python2.3/site-packages/omniidl_be/cxx/
descriptor.py:218: FutureWarning: %u/%o/%x/%X of negative int will 
return a signed string in Python 2.4 and up
  return "%08x" % x

Tony

-- 
Anthony Schlemmer
aschlemm at comcast.net




More information about the omniORB-list mailing list