Cygwin struct alignment

Reini Urban
Mon Dec 29 18:10:00 GMT 2008

John Emmas schrieb:
> ----- Original Message ----- From: "Ralph Hempel"
> Sent: 24 December 2008 19:47
> Subject: Re: Cygwin struct alignment
>> John, if I understand you correctly, you are running up against
>> a classic problem in embedded systems programming. Namely that
>> you cannot assume anything about structure packing, byte ordering,
>> or alignment when doing RPC or transmitting data across platforms.
> Yesterday I spent some time looking into this but didn't come to any
> hard & fast conclusions.   Variables themselves seem to correlate very well
> between MSVC and Cygwin (even 'long' which I thought was different).  But
> when calculating structure alignment (manually) sometimes Cygwin gave
> closer results to what I expected and sometime MSVC was closer.
> Before I try Ralph's suggestion I'd like (if possible) to try building both
> versions with struct packing disabled.  This is fairly simple to do with
> Microsoft's compiler (I just set the member alignment to '1 byte') but can
> it be done for my Cygwin compiler - e.g. with a compiler option or a 
> #pragma
> or whatever?

Which "Cygwin compiler"?
I have about a dozen compilers in my cygwin environment.
If you mean gcc-core-3.4.4-3 or gcc-mingw-core-3.4.4-20050522-1 please 
say so.
Cygwin per se infers no struct alignment at all, nor exists one "Cygwin 
compiler" only.

For the record:
There's also gcc4-core-4.3.2-1, for the C side, and of course various 
other compilers, such as clisp, parrot, chicken, gcc-g++, gcc4-g++, 
gcc-gpc, gcc-java, gcc-g77, gcc-ada, jikes, SWI-Prolog, cocom, ocaml,
and from other sites bigloo, ikarus, plt.
And there are various other cross-gcc packages around.
Most with different "struct" or "record" packing and alignments.

I haven't got llvm, ghc, and Modula-3 working yet.
Reini Urban

Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list