
On 17/05/2011 03:10, Kazu Yamamoto (山本和彦) wrote:
Hello,
Not directly. hsc2hs calls the C compiler to determine these numbers. It seems it is calling gcc-4.0 rather than gcc-4.2. It might be a bug that it is calling the wrong compiler, but that might just be misconfiguration in your environment, or in the Haskell Platform.
gcc-4.0 says sizeof (struct stat) is 108 while gcc-4.2 (default) says that is 144.
It presumably depends on whether you're using the 32 or 64-bit version of GHC. Which is it?
% file /Library/Frameworks/GHC.framework/Versions/7.0.3-i386/usr/lib/ghc-7.0.3/ghc /Library/Frameworks/GHC.framework/Versions/7.0.3-i386/usr/lib/ghc-7.0.3/ghc: Mach-O executable i386
So, it's 32bit. (If 64bit, "file" displays "64bit".)
Ok, you are using GHC 32-bit on a system that normally compiles for 64-bit by default. That's fine, and it should work, but you might need to be careful when combining code compiled by gcc with code compiled by GHC. In particular, you should use gcc -m32. Cheers, Simon