56 lines
1.5 KiB
Diff
56 lines
1.5 KiB
Diff
|
http://bugs.gentoo.org/show_bug.cgi?id=286911
|
||
|
|
||
|
--- src/mips/ffitarget.h.orig 2009-06-19 19:52:37.000000000 +0200
|
||
|
+++ src/mips/ffitarget.h 2009-06-19 19:52:43.000000000 +0200
|
||
|
@@ -43,7 +43,7 @@
|
||
|
# endif
|
||
|
|
||
|
#if !defined(_MIPS_SIM)
|
||
|
--- something is very wrong --
|
||
|
+# error -- something is very wrong --
|
||
|
#else
|
||
|
# if (_MIPS_SIM==_ABIN32 && defined(_ABIN32)) || (_MIPS_SIM==_ABI64 && defined(_ABI64))
|
||
|
# define FFI_MIPS_N32
|
||
|
@@ -51,7 +51,7 @@
|
||
|
# if (_MIPS_SIM==_ABIO32 && defined(_ABIO32))
|
||
|
# define FFI_MIPS_O32
|
||
|
# else
|
||
|
--- this is an unsupported platform --
|
||
|
+# error -- this is an unsupported platform --
|
||
|
# endif
|
||
|
# endif
|
||
|
#endif
|
||
|
--- include/ffi.h.in.orig 2009-06-19 19:52:36.000000000 +0200
|
||
|
+++ include/ffi.h.in 2009-06-19 19:52:43.000000000 +0200
|
||
|
@@ -251,6 +251,9 @@
|
||
|
|
||
|
#if FFI_CLOSURES
|
||
|
|
||
|
+#ifdef __sgi
|
||
|
+# pragma pack 8
|
||
|
+#endif
|
||
|
typedef struct {
|
||
|
char tramp[FFI_TRAMPOLINE_SIZE];
|
||
|
ffi_cif *cif;
|
||
|
@@ -260,6 +263,9 @@
|
||
|
} ffi_closure __attribute__((aligned (8)));
|
||
|
#else
|
||
|
} ffi_closure;
|
||
|
+# ifdef __sgi
|
||
|
+# pragma pack 0
|
||
|
+# endif
|
||
|
#endif
|
||
|
|
||
|
void *ffi_closure_alloc (size_t size, void **code);
|
||
|
--- src/java_raw_api.c.dist 2009-09-29 11:04:56.517219880 +0100
|
||
|
+++ src/java_raw_api.c 2009-09-29 11:05:56.836581720 +0100
|
||
|
@@ -311,7 +311,7 @@
|
||
|
ffi_raw_closure *cl = (ffi_raw_closure*)user_data;
|
||
|
|
||
|
ffi_java_ptrarray_to_raw (cif, avalue, raw);
|
||
|
- (*cl->fun) (cif, rvalue, raw, cl->user_data);
|
||
|
+ (*cl->fun) (cif, rvalue, (ffi_raw*)raw, cl->user_data);
|
||
|
ffi_java_raw_to_rvalue (cif, rvalue);
|
||
|
}
|
||
|
|