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