[omniORB] Linux-generated headers don't compile on Windows

Duncan Grisby duncan at grisby.org
Sun Nov 16 21:16:12 GMT 2003


On Thursday 13 November, Matej Kenda wrote:

> I have compiled omniORB from the latest sources on Linux (SUSE 8) and
> (by accident) copied the generated header files to the directory, which
> is used to compile omniORB on Windows.
> 
> Linux-generated headers don't compile on Windows, but it the change to
> make them compile is simple: some lines have to be #ifdef-ed out:
> 
> * corbaidl_defs.hh:1627
> 
> #ifdef HAS_LongDouble

[...]
> Is it too late for 4.0.3 to make the change in omniidl compiler that
> will generate platform-independent header files?

It is intentional that IDL involving long double fails to compile on
platforms that do not support long double. It would be very bad to
have some bits of an interface silently missed out due to not being
supported. That only proves a problem for the standard sequence
typedefs in the CORBA module, as defined in corbaidl.idl. It is not
practical to put the support into omniidl to #ifdef it out from the
generated code, just for that one single typedef, so we do the simple
thing of #ifdefing it out from the IDL at compilation time. I don't
think it's a common requirement to share the same omniORB header files
between Windows and Unix platforms, so I don't propose to change it.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --



More information about the omniORB-list mailing list