From c5a3fffaab7dbc3e125e6a49d6abaf430da84af9 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Sun, 26 Aug 2012 18:29:21 +0000 Subject: [PATCH] re PR libffi/53014 (libffi failures on mips64-linux-gnu with soft-float) 2012-08-26 Andrew Pinski PR libffi/53014 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with soft-float. From-SVN: r190696 --- libffi/ChangeLog | 6 ++++++ libffi/src/mips/ffi.c | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/libffi/ChangeLog b/libffi/ChangeLog index f66a84927e8..73599767c25 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -1,3 +1,9 @@ +2012-08-26 Andrew Pinski + + PR libffi/53014 + * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with + soft-float. + 2012-08-08 Uros Bizjak * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, diff --git a/libffi/src/mips/ffi.c b/libffi/src/mips/ffi.c index 79cff9b5304..03121e39222 100644 --- a/libffi/src/mips/ffi.c +++ b/libffi/src/mips/ffi.c @@ -670,9 +670,16 @@ ffi_prep_closure_loc (ffi_closure *closure, if (cif->abi != FFI_O32 && cif->abi != FFI_O32_SOFT_FLOAT) return FFI_BAD_ABI; fn = ffi_closure_O32; -#else /* FFI_MIPS_N32 */ - if (cif->abi != FFI_N32 && cif->abi != FFI_N64) +#else +#if _MIPS_SIM ==_ABIN32 + if (cif->abi != FFI_N32 + && cif->abi != FFI_N32_SOFT_FLOAT) return FFI_BAD_ABI; +#else + if (cif->abi != FFI_N64 + && cif->abi != FFI_N64_SOFT_FLOAT) + return FFI_BAD_ABI; +#endif fn = ffi_closure_N32; #endif /* FFI_MIPS_O32 */