Hello,
What is the size of this packed array in gpc on 64 bit systems:
type ta = 0..$7fffffff; tb = packed array[0..799] of ta;
Is it 3100 or 3104 bytes?
It is 3100. The size is rounded up to the next multiple of half of the wordsize of the machine. On 64 bit machines wordsize is 8 bytes, so the size is rounded up to the multiple of 4-bytes. Since 3100 is a multiple of 4 the roundig up is a no-op here. BTW: when accesing the last element the current implementation will touch the 4-byte word beyond the end of the array (it is a bug ...).
On a related note, can someone explain me how to build gpc for Mac OS X/ppc64? powerpc64-apple-darwin8 doesn't seem to be a supported target, but maybe it's called differently?
You should already have 64 bit compiler proper (at least when using sufficiently new backend) -- try what `-print-multi-lib' gives you. The problem is that ATM gpc runtime is build only in one version (32 bit one) -- one have to build 64 bit runtime by hand. Peter Keenan described what to do for 64 bit AIX:
http://www.gnu-pascal.de/crystal/gpc/en/mail11264.html
With obvious changes this should apply to OS/X.