On 31 Jan 2012, at 19:04, Mark H Weaver wrote: >> The 'make check' gives this error, on OS X 10.7.2 using the compiler >> i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 supplied by Xcode 4.2.1: >> >> PASS: test-asmobs >> bad return from expression `(f-sum -1 2000 -30000 40000000000)': expected >> 39999971999; got 39999972255 > > I may be stating the obvious here, but the -1, which is declared to be > of type 'scm_t_int8' in the C function being called, is apparently being > interpreted as 255. This suggests that whatever is handling its > promotion to a full int is failing to extend its sign bit. I'm guessing > that this is libffi's job.
It is broken (libffi from GIT, the only that works on OX 10.7): $ make check Making check in include make[1]: Nothing to be done for `check'. Making check in testsuite make check-DEJAGNU srcdir=`CDPATH="${ZSH_VERSION+.}:" && cd ../../libffi/testsuite && pwd`; export srcdir; \ EXPECT=`if [ -f ../../expect/expect ] ; then echo ../../expect/expect ; else echo expect ; fi`; export EXPECT; \ runtest=`if [ -f ../../libffi/../dejagnu/runtest ] ; then echo ../../libffi/../dejagnu/runtest ; else echo runtest; fi`; \ if /bin/sh -c "$runtest --version" > /dev/null 2>&1; then \ exit_status=0; l='libffi'; for tool in $l; do \ if $runtest --tool $tool --srcdir $srcdir ; \ then :; else exit_status=1; fi; \ done; \ else echo "WARNING: could not find \`runtest'" 1>&2; :;\ fi; \ exit $exit_status WARNING: could not find `runtest' Making check in man make[1]: Nothing to be done for `check'. make[1]: Nothing to be done for `check-am' > Hans: can you please verify that your libffi's 'make check' passes all > tests on your platform? If it passes, and if this ends up being a > different build of 'libffi' than you were previously using, it would be > helpful if you could install the newly-built 'libffi', then do a fresh > rebuild of Guile 2.0.5 and see if that fixes the problem. I have installed the newly built libffi, but rebuilding guile takes a lot of time. Hans