public inbox for libffi-discuss@sourceware.org
 help / color / mirror / Atom feed
* Re: libffi 3.0.9rc6
       [not found] <1131757732.14242.1261862023560.JavaMail.root@cm-mail03.mozilla.org>
@ 2009-12-26 21:19 ` Dan Witte
  0 siblings, 0 replies; 9+ messages in thread
From: Dan Witte @ 2009-12-26 21:19 UTC (permalink / raw)
  To: Anthony Green; +Cc: libffi-discuss

Tests pass for rc6, using Mozilla's automated test harness, for the following platforms:

i686-redhat-linux-gnu
i386-apple-darwin9.2.0

Our test harness heavily tests ffi_call, but not the closure or raw API.

Regards,
Dan

----- Original Message -----
From: "Anthony Green" <green@redhat.com>
To: libffi-discuss@sourceware.org
Sent: Thursday, December 24, 2009 11:11:59 PM
Subject: libffi 3.0.9rc6

Thanks for all the feedback.  I've uploaded release candidate 6 here:

ftp://sources.redhat.com/pub/libffi/libffi-3.0.9rc6.tar.gz

It includes the missing patches identified by Andreas, Samuli, and 
Carlo.  It also includes a fix to the huge_struct test case.

And Merry Christmas to all of you celebrating today...

AG

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: libffi 3.0.9rc6
  2009-12-26 12:37       ` Anthony Green
@ 2009-12-26 14:32         ` Andreas Tobler
  0 siblings, 0 replies; 9+ messages in thread
From: Andreas Tobler @ 2009-12-26 14:32 UTC (permalink / raw)
  To: Anthony Green; +Cc: Andreas Schwab, libffi-discuss

On 26.12.09 13:37, Anthony Green wrote:
> On 12/26/2009 06:50 AM, Andreas Tobler wrote:
>> On 26.12.09 11:11, Andreas Schwab wrote:
>>> Andreas Tobler<andreast-list@fgznet.ch>   writes:
>>>
>>>> This huge_struct test fails under powerpc-*-linux
>>>
>>> See<http://sourceware.org/ml/libffi-discuss/2009/msg00337.html>   and
>>> <http://sourceware.org/ml/libffi-discuss/2009/msg00360.html>.
>>
>> Thank you Andreas!
>>
>> With the patch mentioned above the FreeBSD and Linux PowerPC port pass
>> w/o failure.
>>
>> Additionally, if I apply the attached diff, I also pass the
>> huge_struct test case on i386-pc-solaris2.11 and sparc-sun-solaris2.10
>> (It also passes on all other archs here.)
>>
>> The issue is this, the %p modifier for printf under solaris does not
>> add a leading 0x. So I modified the test case to use %#x and cast the
>> value to (unsigned int). Do you think this feasible?
>>
>> Thanks,
>> Andreas
>>
>
> I had to change it to %#lx and (unsigned long) on x86-64 linux to make
> it compile cleanly.   See the attached patch.   I can test on a bunch of
> linux systems now (x86-64, powerpc, armv5tel, etc).  If you can check
> Solaris and *bsd, then I think we have a winner.

Thank you!

amd64-unknown-freebsd9.0: ok
i386-pc-solaris2.11: ok
i386-unknown-freebsd9.0: ok
i686-apple-darwin9.8.0: ok
powerpc-apple-darwin9.8.0 failures see: (PR42378/PR34311)
powerpc-redhat-linux-gnu: ok
powerpc-unknown-freebsd9.0: ok
sparc-sun-solaris2.10: ok
(I'll add them to the wiki.)

And, another new target:)
Here it is upon you if you like to add it to 3.0.9. It is a bit boring 
here so I thought to try this one as well ;)

amd64-unknown-openbsd4.6

With these two patches (configure.ac & configure and 
testsuite/lib/libffi-dg.exp):

--- configure.ac.orig	2009-12-26 15:10:45.000000000 +0100
+++ configure.ac	2009-12-26 15:23:05.000000000 +0100
@@ -51,14 +51,10 @@
  	TARGET=ARM; TARGETDIR=arm
  	;;

-  amd64-*-freebsd*)
+  amd64-*-freebsd* | amd64-*-openbsd*)
  	TARGET=X86_64; TARGETDIR=x86
    	;;

-  amd64-*-freebsd*)
-	TARGET=X86_64; TARGETDIR=x86
-	;;
-
    avr32*-*-*)
  	TARGET=AVR32; TARGETDIR=avr32
  	;;

--- testsuite/lib/libffi-dg.exp.orig	2009-12-26 15:11:04.000000000 +0100
+++ testsuite/lib/libffi-dg.exp	2009-12-26 15:12:10.000000000 +0100
@@ -197,6 +197,10 @@
  	lappend options "libs= -shared-libgcc"
      }

+    if { [string match "*-*-openbsd*" $target_triplet] } {
+	lappend options "libs= -lpthread"
+    }
+
      lappend options "libs= -lffi"

      verbose "options: $options"



Regards,
Andreas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: libffi 3.0.9rc6
  2009-12-26 11:51     ` Andreas Tobler
@ 2009-12-26 12:37       ` Anthony Green
  2009-12-26 14:32         ` Andreas Tobler
  0 siblings, 1 reply; 9+ messages in thread
From: Anthony Green @ 2009-12-26 12:37 UTC (permalink / raw)
  To: Andreas Tobler; +Cc: Andreas Schwab, libffi-discuss

[-- Attachment #1: Type: text/plain, Size: 1194 bytes --]

On 12/26/2009 06:50 AM, Andreas Tobler wrote:
> On 26.12.09 11:11, Andreas Schwab wrote:
>> Andreas Tobler<andreast-list@fgznet.ch>  writes:
>>
>>> This huge_struct test fails under powerpc-*-linux
>>
>> See<http://sourceware.org/ml/libffi-discuss/2009/msg00337.html>  and
>> <http://sourceware.org/ml/libffi-discuss/2009/msg00360.html>.
>
> Thank you Andreas!
>
> With the patch mentioned above the FreeBSD and Linux PowerPC port pass 
> w/o failure.
>
> Additionally, if I apply the attached diff, I also pass the 
> huge_struct test case on i386-pc-solaris2.11 and sparc-sun-solaris2.10 
> (It also passes on all other archs here.)
>
> The issue is this, the %p modifier for printf under solaris does not 
> add a leading 0x. So I modified the test case to use %#x and cast the 
> value to (unsigned int). Do you think this feasible?
>
> Thanks,
> Andreas
>

I had to change it to %#lx and (unsigned long) on x86-64 linux to make 
it compile cleanly.   See the attached patch.   I can test on a bunch of 
linux systems now (x86-64, powerpc, armv5tel, etc).  If you can check 
Solaris and *bsd, then I think we have a winner.

ftp://sources.redhat.com/pub/libffi/libffi-3.0.9rc8.tar.gz

AG



[-- Attachment #2: huge_struct.patch --]
[-- Type: text/plain, Size: 8100 bytes --]

2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
	    Anthony Green  <green@redhat.com>

	* testsuite/libffi.call/huge_struct.c (test_large_fn): Replace
	format code %p with %#lx because %p does not add a leading 0x on
	Solaris.  Also change relevant arguments to unsigned long.


Index: libffi/testsuite/libffi.call/huge_struct.c
===================================================================
--- libffi.orig/testsuite/libffi.call/huge_struct.c
+++ libffi/testsuite/libffi.call/huge_struct.c
@@ -131,26 +131,26 @@ test_large_fn(
 			ui64_4 + 4, si64_4 + 4, f_4 + 4, d_4 + 4, ld_4 + 4, (char*)((intptr_t)p_4 + 4), 
 		ui8_5 + 5, si8_5 + 5};
 
-	printf("%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p %hhu %hhd: "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p %hhu %hhd\n",
-		ui8_1, si8_1, ui16_1, si16_1, ui32_1, si32_1, ui64_1, si64_1, f_1, d_1, ld_1, p_1,
-		ui8_2, si8_2, ui16_2, si16_2, ui32_2, si32_2, ui64_2, si64_2, f_2, d_2, ld_2, p_2,
-		ui8_3, si8_3, ui16_3, si16_3, ui32_3, si32_3, ui64_3, si64_3, f_3, d_3, ld_3, p_3,
-		ui8_4, si8_4, ui16_4, si16_4, ui32_4, si32_4, ui64_4, si64_4, f_4, d_4, ld_4, p_4, ui8_5, si8_5,
+	printf("%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx %hhu %hhd: "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx %hhu %hhd\n",
+	       ui8_1, si8_1, ui16_1, si16_1, ui32_1, si32_1, ui64_1, si64_1, f_1, d_1, ld_1, (unsigned long)p_1,
+		ui8_2, si8_2, ui16_2, si16_2, ui32_2, si32_2, ui64_2, si64_2, f_2, d_2, ld_2, (unsigned long)p_2,
+		ui8_3, si8_3, ui16_3, si16_3, ui32_3, si32_3, ui64_3, si64_3, f_3, d_3, ld_3, (unsigned long)p_3,
+		ui8_4, si8_4, ui16_4, si16_4, ui32_4, si32_4, ui64_4, si64_4, f_4, d_4, ld_4, (unsigned long)p_4, ui8_5, si8_5,
 		retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f,
-		retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, retVal.l,
+	       retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, (unsigned long)retVal.l,
 		retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r,
-		retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, retVal.x,
+	       retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, (unsigned long)retVal.x,
 		retVal.y, retVal.z, retVal.aa, retVal.bb, retVal.cc, retVal.dd,
-		retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, retVal.jj,
+	       retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, (unsigned long)retVal.jj,
 		retVal.kk, retVal.ll, retVal.mm, retVal.nn, retVal.oo, retVal.pp,
-		retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, retVal.vv, retVal.ww, retVal.xx);
+	       retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, (unsigned long)retVal.vv, retVal.ww, retVal.xx);
 
 	return	retVal;
 }
@@ -298,18 +298,18 @@ main(int argc __UNUSED__, const char** a
 
 	ffi_call(&cif, FFI_FN(test_large_fn), &retVal, argValues);
 	// { dg-output "1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
-	printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p %hhu %hhd\n",
+	printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx %hhu %hhd\n",
 		retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f,
-		retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, retVal.l,
+	       retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, (unsigned long)retVal.l,
 		retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r,
-		retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, retVal.x,
+	       retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, (unsigned long)retVal.x,
 		retVal.y, retVal.z, retVal.aa, retVal.bb, retVal.cc, retVal.dd,
-		retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, retVal.jj,
+	       retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, (unsigned long)retVal.jj,
 		retVal.kk, retVal.ll, retVal.mm, retVal.nn, retVal.oo, retVal.pp,
-		retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, retVal.vv, retVal.ww, retVal.xx);
+	       retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, (unsigned long)retVal.vv, retVal.ww, retVal.xx);
 	// { dg-output "\nres: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
 
 	CHECK(ffi_prep_closure_loc(pcl, &cif, cls_large_fn, NULL, code) == FFI_OK);
@@ -326,18 +326,18 @@ main(int argc __UNUSED__, const char** a
 		ui8, si8, ui16, si16, ui32, si32, ui64, si64, f, d, ld, p,
 		ui8, si8);
 	// { dg-output "\n1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
-	printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p %hhu %hhd\n",
+	printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#lx %hhu %hhd\n",
 		retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f,
-		retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, retVal.l,
+	       retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, (unsigned long)retVal.l,
 		retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r,
-		retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, retVal.x,
+	       retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, (unsigned long)retVal.x,
 		retVal.y, retVal.z, retVal.aa, retVal.bb, retVal.cc, retVal.dd,
-		retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, retVal.jj,
+	       retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, (unsigned long)retVal.jj,
 		retVal.kk, retVal.ll, retVal.mm, retVal.nn, retVal.oo, retVal.pp,
-		retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, retVal.vv, retVal.ww, retVal.xx);
+	       retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, (unsigned long)retVal.vv, retVal.ww, retVal.xx);
 	// { dg-output "\nres: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
 
     return 0;

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: libffi 3.0.9rc6
  2009-12-26  5:08   ` Anthony Green
@ 2009-12-26 12:18     ` Andreas Tobler
  0 siblings, 0 replies; 9+ messages in thread
From: Andreas Tobler @ 2009-12-26 12:18 UTC (permalink / raw)
  To: Anthony Green; +Cc: libffi-discuss

On 26.12.09 06:08, Anthony Green wrote:
> On 12/25/2009 03:37 PM, Andreas Tobler wrote:
>> Hi Anthony!
>>
>> On 25.12.09 08:11, Anthony Green wrote:
>>> Thanks for all the feedback.  I've uploaded release candidate 6 here:
>>>
>>> ftp://sources.redhat.com/pub/libffi/libffi-3.0.9rc6.tar.gz
>>>
>>> It includes the missing patches identified by Andreas, Samuli, and
>>> Carlo.  It also includes a fix to the huge_struct test case.
>>>
>>> And Merry Christmas to all of you celebrating today...
>>
>> The same from my side!
>>
>> There are three issues from my side:
>
>
> Ok - check out ftp://sources.redhat.com/pub/libffi/libffi-3.0.9rc7.tar.gz .

All issues except huge_struct under solaris are resolved. See separate 
mail. I see the ppc fix is already in your repo.

Thanks,
Andreas


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: libffi 3.0.9rc6
  2009-12-26 10:11   ` Andreas Schwab
@ 2009-12-26 11:51     ` Andreas Tobler
  2009-12-26 12:37       ` Anthony Green
  0 siblings, 1 reply; 9+ messages in thread
From: Andreas Tobler @ 2009-12-26 11:51 UTC (permalink / raw)
  To: Andreas Schwab, Anthony Green; +Cc: libffi-discuss

[-- Attachment #1: Type: text/plain, Size: 779 bytes --]

On 26.12.09 11:11, Andreas Schwab wrote:
> Andreas Tobler<andreast-list@fgznet.ch>  writes:
>
>> This huge_struct test fails under powerpc-*-linux
>
> See<http://sourceware.org/ml/libffi-discuss/2009/msg00337.html>  and
> <http://sourceware.org/ml/libffi-discuss/2009/msg00360.html>.

Thank you Andreas!

With the patch mentioned above the FreeBSD and Linux PowerPC port pass 
w/o failure.

Additionally, if I apply the attached diff, I also pass the huge_struct 
test case on i386-pc-solaris2.11 and sparc-sun-solaris2.10 (It also 
passes on all other archs here.)

The issue is this, the %p modifier for printf under solaris does not add 
a leading 0x. So I modified the test case to use %#x and cast the value 
to (unsigned int). Do you think this feasible?

Thanks,
Andreas


[-- Attachment #2: huge_struct.diff --]
[-- Type: text/plain, Size: 7506 bytes --]

--- huge_struct.c.orig	2009-12-26 12:33:10.000000000 +0100
+++ huge_struct.c	2009-12-26 12:32:17.000000000 +0100
@@ -131,26 +131,26 @@
 			ui64_4 + 4, si64_4 + 4, f_4 + 4, d_4 + 4, ld_4 + 4, (char*)((intptr_t)p_4 + 4), 
 		ui8_5 + 5, si8_5 + 5};
 
-	printf("%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p %hhu %hhd: "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p %hhu %hhd\n",
-		ui8_1, si8_1, ui16_1, si16_1, ui32_1, si32_1, ui64_1, si64_1, f_1, d_1, ld_1, p_1,
-		ui8_2, si8_2, ui16_2, si16_2, ui32_2, si32_2, ui64_2, si64_2, f_2, d_2, ld_2, p_2,
-		ui8_3, si8_3, ui16_3, si16_3, ui32_3, si32_3, ui64_3, si64_3, f_3, d_3, ld_3, p_3,
-		ui8_4, si8_4, ui16_4, si16_4, ui32_4, si32_4, ui64_4, si64_4, f_4, d_4, ld_4, p_4, ui8_5, si8_5,
+	printf("%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x %hhu %hhd: "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x %hhu %hhd\n",
+		ui8_1, si8_1, ui16_1, si16_1, ui32_1, si32_1, ui64_1, si64_1, f_1, d_1, ld_1, (unsigned int)p_1,
+		ui8_2, si8_2, ui16_2, si16_2, ui32_2, si32_2, ui64_2, si64_2, f_2, d_2, ld_2, (unsigned int)p_2,
+		ui8_3, si8_3, ui16_3, si16_3, ui32_3, si32_3, ui64_3, si64_3, f_3, d_3, ld_3, (unsigned int)p_3,
+		ui8_4, si8_4, ui16_4, si16_4, ui32_4, si32_4, ui64_4, si64_4, f_4, d_4, ld_4, (unsigned int)p_4, ui8_5, si8_5,
 		retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f,
-		retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, retVal.l,
+		retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, (unsigned int)retVal.l,
 		retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r,
-		retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, retVal.x,
+		retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, (unsigned int)retVal.x,
 		retVal.y, retVal.z, retVal.aa, retVal.bb, retVal.cc, retVal.dd,
-		retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, retVal.jj,
+		retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, (unsigned int)retVal.jj,
 		retVal.kk, retVal.ll, retVal.mm, retVal.nn, retVal.oo, retVal.pp,
-		retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, retVal.vv, retVal.ww, retVal.xx);
+		retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, (unsigned int)retVal.vv, retVal.ww, retVal.xx);
 
 	return	retVal;
 }
@@ -298,18 +298,18 @@
 
 	ffi_call(&cif, FFI_FN(test_large_fn), &retVal, argValues);
 	// { dg-output "1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
-	printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p %hhu %hhd\n",
+	printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x %hhu %hhd\n",
 		retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f,
-		retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, retVal.l,
+		retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, (unsigned int)retVal.l,
 		retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r,
-		retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, retVal.x,
+		retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, (unsigned int)retVal.x,
 		retVal.y, retVal.z, retVal.aa, retVal.bb, retVal.cc, retVal.dd,
-		retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, retVal.jj,
+		retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, (unsigned int)retVal.jj,
 		retVal.kk, retVal.ll, retVal.mm, retVal.nn, retVal.oo, retVal.pp,
-		retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, retVal.vv, retVal.ww, retVal.xx);
+		retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, (unsigned int)retVal.vv, retVal.ww, retVal.xx);
 	// { dg-output "\nres: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
 
 	CHECK(ffi_prep_closure_loc(pcl, &cif, cls_large_fn, NULL, code) == FFI_OK);
@@ -326,18 +326,18 @@
 		ui8, si8, ui16, si16, ui32, si32, ui64, si64, f, d, ld, p,
 		ui8, si8);
 	// { dg-output "\n1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2 3 4 5 6 7 8 9 10 11 0x12345678 1 2: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
-	printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p "
-		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %p %hhu %hhd\n",
+	printf("res: %hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x "
+		"%hhu %hhd %hu %hd %u %d %" PRIu64 " %" PRId64 " %.0f %.0f %.0Lf %#x %hhu %hhd\n",
 		retVal.a, retVal.b, retVal.c, retVal.d, retVal.e, retVal.f,
-		retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, retVal.l,
+		retVal.g, retVal.h, retVal.i, retVal.j, retVal.k, (unsigned int)retVal.l,
 		retVal.m, retVal.n, retVal.o, retVal.p, retVal.q, retVal.r,
-		retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, retVal.x,
+		retVal.s, retVal.t, retVal.u, retVal.v, retVal.w, (unsigned int)retVal.x,
 		retVal.y, retVal.z, retVal.aa, retVal.bb, retVal.cc, retVal.dd,
-		retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, retVal.jj,
+		retVal.ee, retVal.ff, retVal.gg, retVal.hh, retVal.ii, (unsigned int)retVal.jj,
 		retVal.kk, retVal.ll, retVal.mm, retVal.nn, retVal.oo, retVal.pp,
-		retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, retVal.vv, retVal.ww, retVal.xx);
+		retVal.qq, retVal.rr, retVal.ss, retVal.tt, retVal.uu, (unsigned int)retVal.vv, retVal.ww, retVal.xx);
 	// { dg-output "\nres: 2 3 4 5 6 7 8 9 10 11 12 0x12345679 3 4 5 6 7 8 9 10 11 12 13 0x1234567a 4 5 6 7 8 9 10 11 12 13 14 0x1234567b 5 6 7 8 9 10 11 12 13 14 15 0x1234567c 6 7" }
 
     return 0;

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: libffi 3.0.9rc6
  2009-12-25 20:37 ` Andreas Tobler
  2009-12-26  5:08   ` Anthony Green
@ 2009-12-26 10:11   ` Andreas Schwab
  2009-12-26 11:51     ` Andreas Tobler
  1 sibling, 1 reply; 9+ messages in thread
From: Andreas Schwab @ 2009-12-26 10:11 UTC (permalink / raw)
  To: Andreas Tobler; +Cc: Anthony Green, libffi-discuss

Andreas Tobler <andreast-list@fgznet.ch> writes:

> This huge_struct test fails under powerpc-*-linux

See <http://sourceware.org/ml/libffi-discuss/2009/msg00337.html> and
<http://sourceware.org/ml/libffi-discuss/2009/msg00360.html>.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: libffi 3.0.9rc6
  2009-12-25 20:37 ` Andreas Tobler
@ 2009-12-26  5:08   ` Anthony Green
  2009-12-26 12:18     ` Andreas Tobler
  2009-12-26 10:11   ` Andreas Schwab
  1 sibling, 1 reply; 9+ messages in thread
From: Anthony Green @ 2009-12-26  5:08 UTC (permalink / raw)
  To: Andreas Tobler; +Cc: libffi-discuss

On 12/25/2009 03:37 PM, Andreas Tobler wrote:
> Hi Anthony!
>
> On 25.12.09 08:11, Anthony Green wrote:
>> Thanks for all the feedback.  I've uploaded release candidate 6 here:
>>
>> ftp://sources.redhat.com/pub/libffi/libffi-3.0.9rc6.tar.gz
>>
>> It includes the missing patches identified by Andreas, Samuli, and
>> Carlo.  It also includes a fix to the huge_struct test case.
>>
>> And Merry Christmas to all of you celebrating today...
>
> The same from my side!
>
> There are three issues from my side:


Ok - check out ftp://sources.redhat.com/pub/libffi/libffi-3.0.9rc7.tar.gz .


> Thank you for your patience!

Likewise :-)


AG



>
> Regards,
> Andreas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: libffi 3.0.9rc6
  2009-12-25  7:12 Anthony Green
@ 2009-12-25 20:37 ` Andreas Tobler
  2009-12-26  5:08   ` Anthony Green
  2009-12-26 10:11   ` Andreas Schwab
  0 siblings, 2 replies; 9+ messages in thread
From: Andreas Tobler @ 2009-12-25 20:37 UTC (permalink / raw)
  To: Anthony Green; +Cc: libffi-discuss

Hi Anthony!

On 25.12.09 08:11, Anthony Green wrote:
> Thanks for all the feedback.  I've uploaded release candidate 6 here:
>
> ftp://sources.redhat.com/pub/libffi/libffi-3.0.9rc6.tar.gz
>
> It includes the missing patches identified by Andreas, Samuli, and
> Carlo.  It also includes a fix to the huge_struct test case.
>
> And Merry Christmas to all of you celebrating today...

The same from my side!

There are three issues from my side:

First:

I probably was not clear about my part of the feedback. I had the 
assumption that you followed the libffi-discuss traffic.

My 'almost' complete feedback referred to this patch:

http://sources.redhat.com/ml/libffi-discuss/2009/msg00373.html

This patch is not yet in the gcc libffi tree. I hope to get it in soon.
I think it makes sense.

With almost I mean that the closures part is now also in the standalone 
libffi. So this part of the patch can also be applied now. When I wrote 
and tested the patch the closures.c part for pc-solaris was missing in 
the standalone part.
Also, an autoheader run is needed to populate the FFI_MMAP_EXEC_WRIT in 
fficonfig.h.in.

So, this part is missing in the rc6 candidate:

	* fficonfig.h.in: Regenerate.
	* src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
	Solaris/x86.

----
Index: src/closures.c
===================================================================
--- src/closures.c	(revision 155394)
+++ src/closures.c	(working copy)
@@ -50,11 +50,6 @@
     executable memory. */
  #  define FFI_MMAP_EXEC_WRIT 1
  # endif
-# if defined(X86_64) && defined(__sun__) && defined(__svr4__)
-/* The data segment on 64-bit Solaris/x86 isn't executable, so use mmap
-   instead.  */
-#  define FFI_MMAP_EXEC_WRIT 1
-# endif
  #endif

  #if FFI_MMAP_EXEC_WRIT && !defined FFI_MMAP_EXEC_SELINUX
----

Second:

While testing the rc6 I encountered that the install.sh is not 
executable, therefore configure will fail. chmod +x install.sh helps ;)

Third:

This huge_struct test fails under powerpc-*-linux, powerpc-*-freebsd9 
and i386-pc-solaris2.11. I will investigate.

Thank you for your patience!

Regards,
Andreas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* libffi 3.0.9rc6
@ 2009-12-25  7:12 Anthony Green
  2009-12-25 20:37 ` Andreas Tobler
  0 siblings, 1 reply; 9+ messages in thread
From: Anthony Green @ 2009-12-25  7:12 UTC (permalink / raw)
  To: libffi-discuss

Thanks for all the feedback.  I've uploaded release candidate 6 here:

ftp://sources.redhat.com/pub/libffi/libffi-3.0.9rc6.tar.gz

It includes the missing patches identified by Andreas, Samuli, and 
Carlo.  It also includes a fix to the huge_struct test case.

And Merry Christmas to all of you celebrating today...

AG

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-12-26 21:19 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1131757732.14242.1261862023560.JavaMail.root@cm-mail03.mozilla.org>
2009-12-26 21:19 ` libffi 3.0.9rc6 Dan Witte
2009-12-25  7:12 Anthony Green
2009-12-25 20:37 ` Andreas Tobler
2009-12-26  5:08   ` Anthony Green
2009-12-26 12:18     ` Andreas Tobler
2009-12-26 10:11   ` Andreas Schwab
2009-12-26 11:51     ` Andreas Tobler
2009-12-26 12:37       ` Anthony Green
2009-12-26 14:32         ` Andreas Tobler

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).