Please help test libffi 3.0.11-rc3
Matthias Klose
doko@ubuntu.com
Fri Apr 6 20:30:00 GMT 2012
[ CC'ing David although I don't know if his Linaro address will still work]
On 06.04.2012 14:28, Anthony Green wrote:
> I've uploaded release candidate 3 for testing here:
> ftp://sourceware.org/pub/libffi/libffi-3.0.11-rc3.tar.gz
>
> Please test it on whatever systems you have at your disposal, and
> update the testing wiki here:
> http://www.moxielogic.org/wiki/index.php/Libffi_3.0.11
>
> I'd like to make a release within a week.
>
> Here's what the README says about 3.0.11...
>
> Add support for variadic functions (ffi_prep_cif_var).
> Add Linux/x32 support.
> Add thiscall, fastcall and MSVC cdecl support on Windows.
> Add Amiga and newer MacOS support.
> Fix Octeon and MC68881 support.
> Add m68k FreeMiNT support.
> Fix code pessimizations.
> Lots of build fixes.
>
> Let me know if I should add anything else.
I see that some of the armhf-variadic patches are not applied, attached. Please
could you confirm if dropping these changes is deliberate?
Thanks, Matthias
-------------- next part --------------
--- libffi-3.0.11~rc1.orig/testsuite/libffi.call/cls_double_va.c
+++ libffi-3.0.11~rc1/testsuite/libffi.call/cls_double_va.c
@@ -7,7 +7,6 @@
/* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
/* { dg-output "" { xfail avr32*-*-* } } */
/* { dg-output "" { xfail mips-sgi-irix6* } } PR libffi/46660 */
-/* { dg-skip-if "" arm*-*-* { "-mfloat-abi=hard" } { "" } } */
#include "ffitest.h"
--- libffi-3.0.11~rc1.orig/testsuite/libffi.call/cls_longdouble_va.c
+++ libffi-3.0.11~rc1/testsuite/libffi.call/cls_longdouble_va.c
@@ -7,7 +7,6 @@
/* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */
/* { dg-output "" { xfail avr32*-*-* x86_64-*-mingw* } } */
/* { dg-output "" { xfail mips-sgi-irix6* } } PR libffi/46660 */
-/* { dg-skip-if "" arm*-*-* { "-mfloat-abi=hard" } { "" } } */
#include "ffitest.h"
--- libffi-3.0.11~rc1.orig/src/arm/ffi.c
+++ libffi-3.0.11~rc1/src/arm/ffi.c
@@ -189,6 +189,18 @@ ffi_status ffi_prep_cif_machdep(ffi_cif
return FFI_OK;
}
+/* Perform machine dependent cif processing for variadic calls */
+ffi_status ffi_prep_cif_machdep_var(ffi_cif *cif,
+ unsigned int nfixedargs,
+ unsigned int ntotalargs)
+{
+ /* VFP variadic calls actually use the SYSV ABI */
+ if (cif->abi == FFI_VFP)
+ cif->abi = FFI_SYSV;
+
+ return ffi_prep_cif_machdep(cif);
+}
+
/* Prototypes for assembly functions, in sysv.S */
extern void ffi_call_SYSV (void (*fn)(void), extended_cif *, unsigned, unsigned, unsigned *);
extern void ffi_call_VFP (void (*fn)(void), extended_cif *, unsigned, unsigned, unsigned *);
More information about the Libffi-discuss
mailing list