This is the mail archive of the libffi-discuss@sourceware.org mailing list for the libffi project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: libffi 3.0.10 rc8 test results


On Sat, Apr 23, 2011 at 05:51:31PM +0200, Matthias Klose wrote:
> Here are some test results for various linux ports, ran on Debian unstable:

[snip]

> mips (mipsel should be the same):
> 
>                 === libffi Summary ===
> 
> # of expected passes            1644
> # of unsupported tests          15
> 
> however some test fail for mips64 and the new abi:
> 
> with -mabi=64:
> 
> FAIL: libffi.call/cls_double_va.c -O0 -W -Wall output pattern test, is 0.0
> res: 4
> 7.0
> res: 4
> , should match 7.0^M?
> res: 4^M?
> 7.0^M?
> res: 4
> FAIL: libffi.call/cls_longdouble_va.c -O0 -W -Wall output pattern test, is 0.0
> res: 4
> 7.0
> res: 4
> , should match 7.0^M?
> res: 4^M?
> 7.0^M?
> res: 4
> FAIL: libffi.call/cls_double_va.c -O2 output pattern test, is 0.0
> res: 4
> 7.0
> res: 4
> , should match 7.0^M?
> res: 4^M?
> 7.0^M?
> res: 4
> FAIL: libffi.call/cls_longdouble_va.c -O2 output pattern test, is 0.0
> res: 4
> 7.0
> res: 4
> , should match 7.0^M?
> res: 4^M?
> 7.0^M?
> res: 4
> FAIL: libffi.call/cls_double_va.c -O3 output pattern test, is 0.0
> res: 4
> 7.0
> res: 4
> , should match 7.0^M?
> res: 4^M?
> 7.0^M?
> res: 4
> FAIL: libffi.call/cls_longdouble_va.c -O3 output pattern test, is 0.0
> res: 4
> 7.0
> res: 4
> , should match 7.0^M?
> res: 4^M?
> 7.0^M?
> res: 4
> FAIL: libffi.call/cls_double_va.c -Os output pattern test, is 0.0
> res: 4
> 7.0
> res: 4
> , should match 7.0^M?
> res: 4^M?
> 7.0^M?
> res: 4
> FAIL: libffi.call/cls_longdouble_va.c -Os output pattern test, is 0.0
> res: 4
> 7.0
> res: 4
> , should match 7.0^M?
> res: 4^M?
> 7.0^M?
> res: 4
> FAIL: libffi.call/cls_double_va.c -O2 -fomit-frame-pointer output pattern test,
> 
> is 0.0
> res: 4
> 7.0
> res: 4
> , should match 7.0^M?
> res: 4^M?
> 7.0^M?
> res: 4
> FAIL: libffi.call/cls_longdouble_va.c -O2 -fomit-frame-pointer
> output pattern test, is 0.0
> res: 4
> 7.0
> res: 4
> , should match 7.0^M?
> res: 4^M?
> 7.0^M?
> res: 4
> Running /home/doko/tmp/libffi-3.0.10~rc8/testsuite/libffi.special/special.exp ...
> 
>                 === libffi Summary ===
> 
> # of expected passes            1634
> # of unexpected failures        10
> # of unsupported tests          15
> 

The problem is actually the same as on ARM with VFP: the n32 and n64 ABI
states that variadic functions passes floating point argument in integer
registers. 

I have seen that some patches have already been proposed to fix this 
issue [1], however given they are too late for 3.0.10, I suggest to
disable theses tests as it is done for ARM VFP. The following pach
should theoretically "fix" the problem, however given the way the tests
are launched in the debian package (through a wrapper gcc command), the
-mabi argument doesn't appear, so the test is not skipped.

--- libffi-3.0.10~rc8.orig/testsuite/libffi.call/cls_double_va.c
+++ libffi-3.0.10~rc8/testsuite/libffi.call/cls_double_va.c
@@ -7,6 +7,7 @@
 /* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
 /* { dg-output "" { xfail avr32*-*-* } } */
 /* { dg-skip-if "" arm*-*-* { "-mfloat-abi=hard" } { "" } } */
+/* { dg-skip-if "" mips*-*-* { "-mabi=n32" "-mabi=64" } { "" } } */
 
 #include "ffitest.h"
 
--- libffi-3.0.10~rc8.orig/testsuite/libffi.call/cls_longdouble_va.c
+++ libffi-3.0.10~rc8/testsuite/libffi.call/cls_longdouble_va.c
@@ -7,6 +7,7 @@
 /* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
 /* { dg-output "" { xfail avr32*-*-* x86_64-*-mingw* } } */
 /* { dg-skip-if "" arm*-*-* { "-mfloat-abi=hard" } { "" } } */
+/* { dg-skip-if "" mips*-*-* { "-mabi=n32" "-mabi=64" } { "" } } */
 
 #include "ffitest.h"


[1] http://sourceware.org/ml/libffi-discuss/2011/msg00103.html

-- 
Aurelien Jarno	                        GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]