Commit 65f40c35a2873d8328359ec4512bd0736dbe32c7

Anthony Green 2012-04-03T07:35:59

Repair ppc build regression.

diff --git a/.pc/aix-fix/ChangeLog b/.pc/aix-fix/ChangeLog
index 6df2662..4f514f9 100644
--- a/.pc/aix-fix/ChangeLog
+++ b/.pc/aix-fix/ChangeLog
@@ -1,3 +1,11 @@
+2012-04-02  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
+	Silence casting pointer to integer of different size warning.
+	Delete goto to previously deleted label.
+	(ffi_call): Silence possibly undefined warning.
+	(ffi_closure_helper_SYSV): Declare variable type.
+
 2012-03-13  Kaz Kojima  <kkojima@gcc.gnu.org>
 
 	* src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
diff --git a/.pc/mint/ChangeLog b/.pc/mint/ChangeLog
index 367ac87..1c2f14f 100644
--- a/.pc/mint/ChangeLog
+++ b/.pc/mint/ChangeLog
@@ -1,3 +1,11 @@
+2012-04-02  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
+	Silence casting pointer to integer of different size warning.
+	Delete goto to previously deleted label.
+	(ffi_call): Silence possibly undefined warning.
+	(ffi_closure_helper_SYSV): Declare variable type.
+
 2012-03-19  chennam  <csit@axway.com>
 
 	* src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
diff --git a/.pc/msvc-changes/ChangeLog b/.pc/msvc-changes/ChangeLog
index 3fe329c..50bd5f2 100644
--- a/.pc/msvc-changes/ChangeLog
+++ b/.pc/msvc-changes/ChangeLog
@@ -35,6 +35,14 @@
 	* src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
 	support.
 
+2012-04-02  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
+	Silence casting pointer to integer of different size warning.
+	Delete goto to previously deleted label.
+	(ffi_call): Silence possibly undefined warning.
+	(ffi_closure_helper_SYSV): Declare variable type.
+
 2012-03-13  Kaz Kojima  <kkojima@gcc.gnu.org>
 
 	* src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
diff --git a/.pc/vararg_float_test_fix/ChangeLog b/.pc/vararg_float_test_fix/ChangeLog
index 668341b..805fcf5 100644
--- a/.pc/vararg_float_test_fix/ChangeLog
+++ b/.pc/vararg_float_test_fix/ChangeLog
@@ -21,6 +21,14 @@
 	* src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
 	support.
 
+2012-04-02  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
+	Silence casting pointer to integer of different size warning.
+	Delete goto to previously deleted label.
+	(ffi_call): Silence possibly undefined warning.
+	(ffi_closure_helper_SYSV): Declare variable type.
+
 2012-03-13  Kaz Kojima  <kkojima@gcc.gnu.org>
 
 	* src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
diff --git a/.pc/vfp-eabi/ChangeLog b/.pc/vfp-eabi/ChangeLog
index 7b8e2e9..8671c32 100644
--- a/.pc/vfp-eabi/ChangeLog
+++ b/.pc/vfp-eabi/ChangeLog
@@ -27,6 +27,14 @@
 	* src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
 	support.
 
+2012-04-02  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
+	Silence casting pointer to integer of different size warning.
+	Delete goto to previously deleted label.
+	(ffi_call): Silence possibly undefined warning.
+	(ffi_closure_helper_SYSV): Declare variable type.
+
 2012-03-13  Kaz Kojima  <kkojima@gcc.gnu.org>
 
 	* src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
diff --git a/.pc/win32/ChangeLog b/.pc/win32/ChangeLog
index b12184c..2f62096 100644
--- a/.pc/win32/ChangeLog
+++ b/.pc/win32/ChangeLog
@@ -8,6 +8,14 @@
 	* src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
 	support.
 
+2012-04-02  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
+	Silence casting pointer to integer of different size warning.
+	Delete goto to previously deleted label.
+	(ffi_call): Silence possibly undefined warning.
+	(ffi_closure_helper_SYSV): Declare variable type.
+
 2012-03-13  Kaz Kojima  <kkojima@gcc.gnu.org>
 
 	* src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
diff --git a/.pc/win32_tests/ChangeLog b/.pc/win32_tests/ChangeLog
index 95b7137..bc04dc3 100644
--- a/.pc/win32_tests/ChangeLog
+++ b/.pc/win32_tests/ChangeLog
@@ -14,6 +14,14 @@
 	* src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
 	support.
 
+2012-04-02  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
+	Silence casting pointer to integer of different size warning.
+	Delete goto to previously deleted label.
+	(ffi_call): Silence possibly undefined warning.
+	(ffi_closure_helper_SYSV): Declare variable type.
+
 2012-03-13  Kaz Kojima  <kkojima@gcc.gnu.org>
 
 	* src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
diff --git a/ChangeLog b/ChangeLog
index b717da6..345f26c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -172,6 +172,14 @@
 	* src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
 	support.
 
+2012-04-02  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
+	Silence casting pointer to integer of different size warning.
+	Delete goto to previously deleted label.
+	(ffi_call): Silence possibly undefined warning.
+	(ffi_closure_helper_SYSV): Declare variable type.
+
 2012-03-13  Kaz Kojima  <kkojima@gcc.gnu.org>
 
 	* src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
diff --git a/patches/aix-fix b/patches/aix-fix
index df8ae95..5257b5c 100644
--- a/patches/aix-fix
+++ b/patches/aix-fix
@@ -2,7 +2,10 @@ Index: libffi/ChangeLog
 ===================================================================
 --- libffi.orig/ChangeLog
 +++ libffi/ChangeLog
-@@ -1,3 +1,8 @@
+@@ -6,6 +6,11 @@
+ 	(ffi_call): Silence possibly undefined warning.
+ 	(ffi_closure_helper_SYSV): Declare variable type.
+ 
 +2012-03-19  chennam  <csit@axway.com>
 +
 +	* src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
diff --git a/patches/mint b/patches/mint
index e732b32..1ab25f7 100644
--- a/patches/mint
+++ b/patches/mint
@@ -2,15 +2,32 @@ Index: libffi/ChangeLog
 ===================================================================
 --- libffi.orig/ChangeLog
 +++ libffi/ChangeLog
-@@ -1,3 +1,8 @@
+@@ -1,3 +1,13 @@
 +2012-03-19  Alan Hourihane  <alanh@fairlite.co.uk>
 +
 +	* src/m68k/ffi.c: Add MINT support.
 +	* src/m68k/sysv.S: Ditto.
 +
- 2012-03-19  chennam  <csit@axway.com>
++2012-03-19  chennam  <csit@axway.com>
++
++	* src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
++	support.
++
+ 2012-04-02  Peter Bergner  <bergner@vnet.ibm.com>
+ 
+ 	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
+@@ -6,11 +16,6 @@
+ 	(ffi_call): Silence possibly undefined warning.
+ 	(ffi_closure_helper_SYSV): Declare variable type.
+ 
+-2012-03-19  chennam  <csit@axway.com>
+-
+-	* src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
+-	support.
+-
+ 2012-03-13  Kaz Kojima  <kkojima@gcc.gnu.org>
  
- 	* src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
+ 	* src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
 Index: libffi/src/m68k/ffi.c
 ===================================================================
 --- libffi.orig/src/m68k/ffi.c
diff --git a/src/powerpc/ffi.c b/src/powerpc/ffi.c
index 1920c91..baca694 100644
--- a/src/powerpc/ffi.c
+++ b/src/powerpc/ffi.c
@@ -146,6 +146,7 @@ ffi_prep_args_SYSV (extended_cif *ecif, unsigned *const stack)
   gpr_base.u = stacktop.u - ASM_NEEDS_REGISTERS - NUM_GPR_ARG_REGISTERS;
   intarg_count = 0;
 #ifndef __NO_FPRS__
+  double double_tmp;
   fpr_base.d = gpr_base.d - NUM_FPR_ARG_REGISTERS;
   fparg_count = 0;
   copy_space.c = ((flags & FLAG_FP_ARGUMENTS) ? fpr_base.c : gpr_base.c);
@@ -155,9 +156,9 @@ ffi_prep_args_SYSV (extended_cif *ecif, unsigned *const stack)
   next_arg.u = stack + 2;
 
   /* Check that everything starts aligned properly.  */
-  FFI_ASSERT (((unsigned) (char *) stack & 0xF) == 0);
-  FFI_ASSERT (((unsigned) copy_space.c & 0xF) == 0);
-  FFI_ASSERT (((unsigned) stacktop.c & 0xF) == 0);
+  FFI_ASSERT (((unsigned long) (char *) stack & 0xF) == 0);
+  FFI_ASSERT (((unsigned long) copy_space.c & 0xF) == 0);
+  FFI_ASSERT (((unsigned long) stacktop.c & 0xF) == 0);
   FFI_ASSERT ((bytes & 0xF) == 0);
   FFI_ASSERT (copy_space.c >= next_arg.c);
 
@@ -211,8 +212,6 @@ ffi_prep_args_SYSV (extended_cif *ecif, unsigned *const stack)
 
 	case FFI_TYPE_DOUBLE:
 	  /* With FFI_LINUX_SOFT_FLOAT doubles are handled like UINT64.  */
-	  if (ecif->cif->abi == FFI_LINUX_SOFT_FLOAT)
-	    goto soft_double_prep;
 	  double_tmp = **p_argv.d;
 
 	  if (fparg_count >= NUM_FPR_ARG_REGISTERS)
@@ -925,7 +924,7 @@ ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
    */
   unsigned int smst_buffer[2];
   extended_cif ecif;
-  unsigned int rsize;
+  unsigned int rsize = 0;
 
   ecif.cif = cif;
   ecif.avalue = avalue;
@@ -1132,7 +1131,7 @@ ffi_closure_helper_SYSV (ffi_closure *closure, void *rvalue,
 
 	  if (nf < 8)
 	    {
-	      temp = pfr->d;
+	      double temp = pfr->d;
 	      pfr->f = (float) temp;
 	      avalue[i] = pfr;
 	      nf++;