views:

194

answers:

2

I have an x86_64 library on my Mac compiled by GCC, and I want to link it with Pascal code compiled with Free Pascal 2.4. What options do I give to fpc to make it generate 64-bit code? Without any options, I only get 32-bit .o files.

I'm using the fpc-2.4.0.intel-macosx.dmg download from SourceForge, but when I run fpc -i, the only target Macintosh platform it lists is "Darwin for i386," although the 2.4 release notes say it can target "64-bit Mac OS X (x86_64/ppc64)."

+3  A: 

Use -m64.

Actually, the GNU Pascal documentation does not even state that it is supported on Mac OS X. FreePascal, on the other hand, works on all Mac OS X variants (Intel and PPC, 32 and 64 bits).

FX
Although `fpc` doesn't say it doesn't recognize that option (even though it's undocumented), it also has no effect on the output. The .o files it generates are still 32-bit files. Did I somehow give you the impression that I was looking for an option to give to GCC? I'm not. I already have 64-bit object code from GCC. I'm trying to link it with code compiled by Free Pascal, but to do that, I need Free Pascal to generate 64-bit object files. GNU Pascal doesn't even enter the picture, so whether it's supported on Macintosh is irrelevant.
Rob Kennedy
+2  A: 

According to Jonas Maebe on the fpc-pascal mailing list, there are two options:

  • Run fpc with the -Px86_64 option. (The -P option does not appear to be documented yet.)
  • Run ppcx64 directly instead of fpc. (Without any options, fpc runs ppc386 instead.)

Both worked for me.

Rob Kennedy
Cool self answer!
Warren P