On 27 Apr 2009, at 17:34, Roland Turcan wrote:

The fact is, that FPC compiler on intel based Mac OS X builds up
application which contains records "packed" by 4 bytes by default.

I need to get the same behavior in intel based mac os x as I have in
other platforms.

If you do not specify any "packrecords" setting, the compiler can do whatever it wants with the internal alignment of the record (and this can be different not only between different platforms, but also between different compiler versions). If you want a particular layout, use a particular packrecords setting ({$packrecords 1} with manual padding is probably the safest). See also http://wiki.freepascal.org/User_Changes_Trunk#Alignment_of_record_variables

One reason that it can be different on different platforms, is that the alignment of some types may be defined differently by the ABI (e.g., the Mac OS X/i386 ABI defines the alignment of double variables as 4 bytes, while on most other ABIs it's 8 bytes).


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to