Re: ALIGNOF_CORBA_* defines



Hi Wim,

> At the moment I am compiling ORBit (0.5.7) on OpenStep.
> I do not like the configure scripts so I am creating
> all the automatically created files by hand.
> 
> If I look at the global config.h file that the
> configure script spits out I notice the following block
> defines:
> 
> #define ALIGNOF_CORBA_BOOLEAN 1
> ...
> #define ALIGNOF_CORBA_DOUBLE 4
> ...
> #define ALIGNOF_CORBA_POINTER 4
> 
> I don't know what the maning of these defines
> is, but if I compare it with the CORBA GIOP specification
> I see that that asks for
> 
> type       alignment
> 
> BOOLEAN         1
> DOUBLE          8 !!!!  (NOT EQUAL TO 4)
> 
> So my question is, is this a bug? Or is the meaning
> of ALIGNOF_CORBA_* not what I think it is?

The ALIGNOF_CORBA_ defines denotes the alignment of these types _in memory_ of
the host system, wheras the OMG defines the aligment on the _wire_, which of
course has to be a standard. The alignment in memory depends on the platform.

> (It seems however that changing the 4 --> 8 fixes
> my problem with sending back and forth doubles between
> two different machines).

This should actually be another bug then. Did you crosscompile? The
ALIGNOF_CORBA_* values, as mentioned, dependent on the platform, you can't use
defines from on plarform on another.
 
Bye,
Sebastian
-- 
Sebastian Wilhelmi
mailto:wilhelmi ira uka de
http://goethe.ira.uka.de/~wilhelmi




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]