public inbox for libffi-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Peter Bergner <bergner@vnet.ibm.com>
To: libffi-discuss@sourceware.org
Cc: Anthony Green <green@moxielogic.com>, dclarke@blastwave.org
Subject: Re: libffi fails to build on powerpc64-linux
Date: Tue, 06 Mar 2012 00:29:00 -0000	[thread overview]
Message-ID: <1330993709.21041.5.camel@otta> (raw)
In-Reply-To: <1330990156.29904.24.camel@otta>

Taking my best swag at where the soft_double_prep label should be
(comment said it should be handled like UINT64), I tried the following
patch which allows everything to build without warnings and seems to
pass the testsuite:


		=== libffi Summary ===

# of expected passes		1659
# of unsupported tests		55


Comments?


Peter


        * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
        Cast pointers to unsigned long.
        Declare soft_double_prep label.
        (ffi_call): Silence possibly undefined warning.
        (ffi_closure_helper_SYSV): Declare variable type.


diff --git a/src/powerpc/ffi.c b/src/powerpc/ffi.c
index 1920c91..627b4cb 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);
 
@@ -293,6 +294,9 @@ ffi_prep_args_SYSV (extended_cif *ecif, unsigned *const stack)
 
 	case FFI_TYPE_UINT64:
 	case FFI_TYPE_SINT64:
+
+	soft_double_prep:
+
 	  if (intarg_count == NUM_GPR_ARG_REGISTERS-1)
 	    intarg_count++;
 	  if (intarg_count >= NUM_GPR_ARG_REGISTERS)
@@ -925,7 +929,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 +1136,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++;


  reply	other threads:[~2012-03-06  0:29 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-05 23:05 Dennis Clarke
2012-03-05 23:29 ` Peter Bergner
2012-03-06  0:29   ` Peter Bergner [this message]
2012-03-06  3:18     ` Anthony Green
2012-03-06 15:36       ` Peter Bergner
2012-03-06 16:16         ` Peter Bergner
2012-03-07  4:03         ` Peter Bergner
2012-03-08 23:14         ` Peter Bergner
2012-03-09  1:01           ` Peter Bergner
  -- strict thread matches above, loose matches on Subject: below --
2012-03-09  2:37 David Edelsohn
2012-03-09  8:02 ` Kyle Moffett
2012-03-07  4:13 Dennis Clarke
2012-03-06  4:21 Dennis Clarke
2012-03-06 16:17 ` Peter Bergner
2012-03-05 22:56 Peter Bergner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1330993709.21041.5.camel@otta \
    --to=bergner@vnet.ibm.com \
    --cc=dclarke@blastwave.org \
    --cc=green@moxielogic.com \
    --cc=libffi-discuss@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).