From 65f40c35a2873d8328359ec4512bd0736dbe32c7 Mon Sep 17 00:00:00 2001 From: Anthony Green Date: Tue, 3 Apr 2012 07:35:59 -0400 Subject: [PATCH] Repair ppc build regression. --- .pc/aix-fix/ChangeLog | 8 ++++++++ .pc/mint/ChangeLog | 8 ++++++++ .pc/msvc-changes/ChangeLog | 8 ++++++++ .pc/vararg_float_test_fix/ChangeLog | 8 ++++++++ .pc/vfp-eabi/ChangeLog | 8 ++++++++ .pc/win32/ChangeLog | 8 ++++++++ .pc/win32_tests/ChangeLog | 8 ++++++++ ChangeLog | 8 ++++++++ patches/aix-fix | 5 ++++- patches/mint | 23 ++++++++++++++++++++--- src/powerpc/ffi.c | 13 ++++++------- 11 files changed, 94 insertions(+), 11 deletions(-) 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 + + * 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 * 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 + + * 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 * 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 + + * 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 * 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 + + * 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 * 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 + + * 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 * 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 + + * 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 * 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 + + * 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 * 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 + + * 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 * 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 + + * 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 + + * src/m68k/ffi.c: Add MINT support. + * src/m68k/sysv.S: Ditto. + - 2012-03-19 chennam ++2012-03-19 chennam ++ ++ * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure ++ support. ++ + 2012-04-02 Peter Bergner + + * 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 +- +- * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure +- support. +- + 2012-03-13 Kaz Kojima - * 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++; -- 2.7.4