This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Cygwin struct alignment


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
http://phpwiki.org/  http://murbreak.at/

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]