Geoff, We seem to have the same issue in libffi when compiled on Darwin PPC at -m64...
/sw/src/fink.build/gcc4-4.1.9999-20060915/darwin_objdir/./gcc/xgcc -B/sw/src/fink.build/gcc4-4.1.9999-20060915/darwin_objdir/./gcc/ -B/sw/lib/gcc4/powerpc-apple-darwin8/bin/ -B/sw/lib/gcc4/powerpc-apple-darwin8/lib/ -isystem /sw/lib/gcc4/powerpc-apple-darwin8/include -isystem /sw/lib/gcc4/powerpc-apple-darwin8/sys-include -m64 -DHAVE_CONFIG_H -I. -I../../../../gcc-4.2-20060915/libffi -I. -I. -I../../../../gcc-4.2-20060915/libffi/include -Iinclude -I../../../../gcc-4.2-20060915/libffi/src -Wall -g -fexceptions -O2 -g -O2 -m64 -MT src/powerpc/ffi_darwin.lo -MD -MP -MF src/powerpc/.deps/ffi_darwin.Tpo -c ../../../../gcc-4.2-20060915/libffi/src/powerpc/ffi_darwin.c -fno-common -DPIC -o src/powerpc/.libs/ffi_darwin.o ../../../../gcc-4.2-20060915/libffi/src/powerpc/ffi_darwin.c: In function 'ffi_prep_args': ../../../../gcc-4.2-20060915/libffi/src/powerpc/ffi_darwin.c:117: warning: cast from pointer to integer of different size which is the line... *next_arg++ = (unsigned)(char *)ecif->rvalue; FYI, Jack