Add a hack so that foreign functions returning float now do work on 64-bit
big endian platforms.
diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
index 8163f49..31c5f10 100644
--- a/Modules/_ctypes/callproc.c
+++ b/Modules/_ctypes/callproc.c
@@ -964,7 +964,12 @@
 	   address cannot simply be used as result pointer, instead we must
 	   adjust the pointer value:
 	 */
-	if (rtype->size < sizeof(ffi_arg))
+	/*
+	  XXX I should find out and clarify why this is needed at all,
+	  especially why adjusting for ffi_type_float must be avoided on
+	  64-bit platforms.
+	 */
+	if (rtype->type != FFI_TYPE_FLOAT && rtype->size < sizeof(ffi_arg))
 		resbuf = (char *)resbuf + sizeof(ffi_arg) - rtype->size;
 #endif