mend
This commit is contained in:
10
ChangeLog
10
ChangeLog
@@ -1,3 +1,13 @@
|
|||||||
|
2013-02-09 Anthony Green <green@moxielogic.com>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/negint.c: Remove forced -O2.
|
||||||
|
* testsuite/libffi.call/many2.c (foo): Remove GCCism.
|
||||||
|
* testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition.
|
||||||
|
|
||||||
|
* src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong
|
||||||
|
closure return type fix developed by Martin v. Löwis for cpython
|
||||||
|
fork.
|
||||||
|
|
||||||
2013-02-08 Andreas Tobler <andreast@fgznet.ch>
|
2013-02-08 Andreas Tobler <andreast@fgznet.ch>
|
||||||
|
|
||||||
* src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
|
* src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
|
||||||
|
|||||||
13
README
13
README
@@ -43,7 +43,7 @@ Libffi has been ported to many different platforms.
|
|||||||
For specific configuration details and testing status, please
|
For specific configuration details and testing status, please
|
||||||
refer to the wiki page here:
|
refer to the wiki page here:
|
||||||
|
|
||||||
http://www.moxielogic.org/wiki/index.php?title=Libffi_3.0.11
|
http://www.moxielogic.org/wiki/index.php?title=Libffi_3.0.12
|
||||||
|
|
||||||
At the time of release, the following basic configurations have been
|
At the time of release, the following basic configurations have been
|
||||||
tested:
|
tested:
|
||||||
@@ -61,19 +61,21 @@ tested:
|
|||||||
| HPPA | HPUX | GCC |
|
| HPPA | HPUX | GCC |
|
||||||
| IA-64 | Linux | GCC |
|
| IA-64 | Linux | GCC |
|
||||||
| M68K | FreeMiNT | GCC |
|
| M68K | FreeMiNT | GCC |
|
||||||
|
| M68K | Linux | GCC |
|
||||||
| M68K | RTEMS | GCC |
|
| M68K | RTEMS | GCC |
|
||||||
| MicroBlaze | Linux | GCC |
|
| MicroBlaze | Linux | GCC |
|
||||||
| MIPS | IRIX | GCC |
|
| MIPS | IRIX | GCC |
|
||||||
| MIPS | Linux | GCC |
|
| MIPS | Linux | GCC |
|
||||||
| MIPS | RTEMS | GCC |
|
| MIPS | RTEMS | GCC |
|
||||||
| MIPS64 | Linux | GCC |
|
| MIPS64 | Linux | GCC |
|
||||||
| PowerPC 32-bit | AIX 6.1.0.0 | IBM XL C/C++, V11.1 |
|
| PowerPC 32-bit | AIX | IBM XL C |
|
||||||
| PowerPC 32-bit | AIX 7.1.1.0 | IBM XL C/C++, V11.1 |
|
| PowerPC 64-bit | AIX | IBM XL C |
|
||||||
| PowerPC | AMIGA | GCC |
|
| PowerPC | AMIGA | GCC |
|
||||||
| PowerPC | Linux | GCC |
|
| PowerPC | Linux | GCC |
|
||||||
| PowerPC | Mac OSX | GCC |
|
| PowerPC | Mac OSX | GCC |
|
||||||
| PowerPC | FreeBSD | GCC |
|
| PowerPC | FreeBSD | GCC |
|
||||||
| PowerPC64 | Linux | GCC |
|
| PowerPC 64-bit | FreeBSD | GCC |
|
||||||
|
| PowerPC 64-bit | Linux | GCC |
|
||||||
| S390 | Linux | GCC |
|
| S390 | Linux | GCC |
|
||||||
| S390X | Linux | GCC |
|
| S390X | Linux | GCC |
|
||||||
| SPARC | Linux | GCC |
|
| SPARC | Linux | GCC |
|
||||||
@@ -84,6 +86,7 @@ tested:
|
|||||||
| SPARC64 | Solaris | Oracle Solaris Studio C |
|
| SPARC64 | Solaris | Oracle Solaris Studio C |
|
||||||
| TILE-Gx/TILEPro | Linux | GCC |
|
| TILE-Gx/TILEPro | Linux | GCC |
|
||||||
| X86 | FreeBSD | GCC |
|
| X86 | FreeBSD | GCC |
|
||||||
|
| X86 | GNU HURD | GCC |
|
||||||
| X86 | Interix | GCC |
|
| X86 | Interix | GCC |
|
||||||
| X86 | kFreeBSD | GCC |
|
| X86 | kFreeBSD | GCC |
|
||||||
| X86 | Linux | GCC |
|
| X86 | Linux | GCC |
|
||||||
@@ -145,7 +148,7 @@ For iOS builds, the 'libffi.xcodeproj' Xcode project is available.
|
|||||||
Configure has many other options. Use "configure --help" to see them all.
|
Configure has many other options. Use "configure --help" to see them all.
|
||||||
|
|
||||||
Once configure has finished, type "make". Note that you must be using
|
Once configure has finished, type "make". Note that you must be using
|
||||||
GNU make. You can ftp GNU make from prep.ai.mit.edu:/pub/gnu.
|
GNU make. You can ftp GNU make from ftp.gnu.org:/pub/gnu/make .
|
||||||
|
|
||||||
To ensure that libffi is working as advertised, type "make check".
|
To ensure that libffi is working as advertised, type "make check".
|
||||||
This will require that you have DejaGNU installed.
|
This will require that you have DejaGNU installed.
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
static void cls_ret_ulonglong_fn(ffi_cif* cif __UNUSED__, void* resp,
|
static void cls_ret_ulonglong_fn(ffi_cif* cif __UNUSED__, void* resp,
|
||||||
void** args, void* userdata __UNUSED__)
|
void** args, void* userdata __UNUSED__)
|
||||||
{
|
{
|
||||||
*(unsigned long long *)resp= *(unsigned long long *)args[0];
|
*(unsigned long long *)resp= 0xfffffffffffffffLL ^ *(unsigned long long *)args[0];
|
||||||
|
|
||||||
printf("%" PRIuLL ": %" PRIuLL "\n",*(unsigned long long *)args[0],
|
printf("%" PRIuLL ": %" PRIuLL "\n",*(unsigned long long *)args[0],
|
||||||
*(unsigned long long *)(resp));
|
*(unsigned long long *)(resp));
|
||||||
@@ -34,14 +34,14 @@ int main (void)
|
|||||||
&ffi_type_uint64, cl_arg_types) == FFI_OK);
|
&ffi_type_uint64, cl_arg_types) == FFI_OK);
|
||||||
CHECK(ffi_prep_closure_loc(pcl, &cif, cls_ret_ulonglong_fn, NULL, code) == FFI_OK);
|
CHECK(ffi_prep_closure_loc(pcl, &cif, cls_ret_ulonglong_fn, NULL, code) == FFI_OK);
|
||||||
res = (*((cls_ret_ulonglong)code))(214LL);
|
res = (*((cls_ret_ulonglong)code))(214LL);
|
||||||
/* { dg-output "214: 214" } */
|
/* { dg-output "214: 1152921504606846761" } */
|
||||||
printf("res: %" PRIdLL "\n", res);
|
printf("res: %" PRIdLL "\n", res);
|
||||||
/* { dg-output "\nres: 214" } */
|
/* { dg-output "\nres: 1152921504606846761" } */
|
||||||
|
|
||||||
res = (*((cls_ret_ulonglong)code))(9223372035854775808LL);
|
res = (*((cls_ret_ulonglong)code))(9223372035854775808LL);
|
||||||
/* { dg-output "\n9223372035854775808: 9223372035854775808" } */
|
/* { dg-output "\n9223372035854775808: 8070450533247928831" } */
|
||||||
printf("res: %" PRIdLL "\n", res);
|
printf("res: %" PRIdLL "\n", res);
|
||||||
/* { dg-output "\nres: 9223372035854775808" } */
|
/* { dg-output "\nres: 8070450533247928831" } */
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user