<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">Hi All,</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">I try to port a program from C to Pascal, see the following example:</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default"><div class="gmail_default" style="font-family:monospace,monospace">#include <stdio.h></div><div class="gmail_default" style="font-family:monospace,monospace">#include <sys/socket.h></div><div class="gmail_default" style="font-family:monospace,monospace">#include <linux/if.h></div><div class="gmail_default" style="font-family:monospace,monospace">void main() {</div><div class="gmail_default" style="font-family:monospace,monospace">    printf("ifmap=%ld\n", sizeof(struct ifmap));</div><div class="gmail_default" style="font-family:monospace,monospace">}</div><div style="font-family:monospace,monospace"><br></div><div style="font-family:monospace,monospace">I converted it to:</div><div style="font-family:monospace,monospace"><br></div><div><div><font face="monospace, monospace">est.c  test.pas                                                                                                                                                X</font></div><div><font face="monospace, monospace">program test;</font></div><div><font face="monospace, monospace">{$mode objfpc}{$PACKRECORDS C}</font></div><div><font face="monospace, monospace">type</font></div><div><font face="monospace, monospace">  ifmap = record</font></div><div><font face="monospace, monospace">    mem_start: dword;</font></div><div><font face="monospace, monospace">    mem_end: dword;</font></div><div><font face="monospace, monospace">    base_addr: word;</font></div><div><font face="monospace, monospace">    irq: byte;</font></div><div><font face="monospace, monospace">    dma: byte;</font></div><div><font face="monospace, monospace">    port: byte;</font></div><div><font face="monospace, monospace">  end;</font></div><div><font face="monospace, monospace">begin</font></div><div><font face="monospace, monospace">  WriteLn('ifmap=', SizeOf(ifmap));</font></div><div><font face="monospace, monospace">end.</font></div><div><br></div></div><div>The C struct's size is 24, but pascal record is 16.    The ifmap struct is defined as:</div><div><br></div><div><div>struct ifmap {</div><div>    unsigned long mem_start;</div><div>    unsigned long mem_end;</div><div>    unsigned short base_addr;</div><div>    unsigned char irq;</div><div>    unsigned char dma;</div><div>    unsigned char port;</div><div>    /* 3 bytes spare */</div><div>};</div></div><div><br></div><div>How can I instruct FPC to align records exactly same as GCC?</div><div><br></div><div>Thanks!</div><div><br></div><div><br></div><div style="font-family:monospace,monospace"><br></div></div><div><div class="gmail_signature"><div dir="ltr"><img src="https://docs.google.com/uc?export=download&id=0B3cr36sBDhsCbjdsUFlJQTFIRlk&revid=0B3cr36sBDhsCT3k0STNYRXJ6UlZQd2w2WSt6Z0MyNzNJVlpjPQ" width="96" height="95"><br></div></div></div>
</div>