On 14/01/12 20:04, Thorsten Glaser wrote:
Andreas Schwab dixit:
Thorsten Glaser<t...@mirbsd.de> writes:
The floating point errors are to be expected (on the emulator),
No, they aren't.
OK. With that patch, we’re here:
Attached a patch to fix the err_bad_abi.c failure.
The return_sc problem looks like it could be a GCC bug with
optimizations as it doesn't happen with -O0.
Not sure what the nested_struct2.c problem is.
Alan.
Test Run By root on Sat Jan 14 18:04:27 2012
Native configuration is m68k-unknown-linux-gnu
=== libffi tests ===
Schedule of variations:
unix
Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for
target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /tmp/buildd/libffi-3.0.10/testsuite/config/default.exp as
tool-and-target-specific interface file.
Running /tmp/buildd/libffi-3.0.10/testsuite/libffi.call/call.exp ...
FAIL: libffi.call/err_bad_abi.c -O0 -W -Wall execution test
FAIL: libffi.call/nested_struct2.c -O0 -W -Wall execution test
FAIL: libffi.call/err_bad_abi.c -O2 execution test
FAIL: libffi.call/nested_struct2.c -O2 execution test
FAIL: libffi.call/return_sc.c -O2 execution test
FAIL: libffi.call/err_bad_abi.c -O3 execution test
FAIL: libffi.call/nested_struct2.c -O3 execution test
FAIL: libffi.call/return_sc.c -O3 execution test
FAIL: libffi.call/err_bad_abi.c -Os execution test
FAIL: libffi.call/nested_struct2.c -Os execution test
FAIL: libffi.call/return_sc.c -Os execution test
FAIL: libffi.call/err_bad_abi.c -O2 -fomit-frame-pointer execution test
FAIL: libffi.call/nested_struct2.c -O2 -fomit-frame-pointer execution test
FAIL: libffi.call/return_sc.c -O2 -fomit-frame-pointer execution test
Running /tmp/buildd/libffi-3.0.10/testsuite/libffi.special/special.exp ...
=== libffi Summary ===
# of expected passes 1630
# of unexpected failures 14
# of unsupported tests 15
HTH& HAND,
//mirabilos
--- src/m68k/ffi.c.old 2012-01-16 12:35:40.383137560 +0000
+++ src/m68k/ffi.c 2012-01-16 12:36:10.036224809 +0000
@@ -261,7 +261,8 @@
void *user_data,
void *codeloc)
{
- FFI_ASSERT (cif->abi == FFI_SYSV);
+ if (cif->abi != FFI_SYSV)
+ return FFI_BAD_ABI;
*(unsigned short *)closure->tramp = 0x207c;
*(void **)(closure->tramp + 2) = codeloc;