mirror of
https://github.com/python/cpython.git
synced 2025-09-27 10:50:04 +00:00
Merged revisions 78968-78969 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r78968 | matthias.klose | 2010-03-15 01:02:36 +0100 (Mon, 15 Mar 2010) | 226 lines - Issue #8142: Update libffi to the 3.0.9 release. ........ r78969 | matthias.klose | 2010-03-15 01:36:18 +0100 (Mon, 15 Mar 2010) | 7 lines Backport from the libffi trunk: 2010-02-15 Matthias Klose <doko@ubuntu.com> * src/arm/sysv.S (__ARM_ARCH__): Define for processor __ARM_ARCH_7EM__. ........
This commit is contained in:
parent
4e0f8910bf
commit
a8349756fa
213 changed files with 57893 additions and 28164 deletions
|
@ -781,6 +781,8 @@ Library
|
||||||
Extension Modules
|
Extension Modules
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #8142: Update libffi to the 3.0.9 release.
|
||||||
|
|
||||||
- Issue #6949: Allow the _dbm extension to be built with db 4.8.x.
|
- Issue #6949: Allow the _dbm extension to be built with db 4.8.x.
|
||||||
|
|
||||||
- Issue #6544: fix a reference leak in the kqueue implementation's error
|
- Issue #6544: fix a reference leak in the kqueue implementation's error
|
||||||
|
|
|
@ -1,33 +1,18 @@
|
||||||
This file contains the diffs between the files in the libffi
|
This file contains the diffs between the files in the libffi
|
||||||
subdirectory and the 'official' source files from
|
subdirectory and the 'official' source files from
|
||||||
ftp://sourceware.org/pub/libffi/libffi-3.0.5.tar.gz
|
ftp://sourceware.org/pub/libffi/libffi-3.0.9.tar.gz
|
||||||
|
|
||||||
Index: libffi/aclocal.m4
|
--- libffi/configure.ac.orig 2009-12-31 13:41:51.000000000 +0100
|
||||||
===================================================================
|
+++ libffi/configure.ac 2010-02-24 00:39:10.341610848 +0100
|
||||||
--- libffi/aclocal.m4 (working copy)
|
|
||||||
+++ libffi/aclocal.m4 (revision 72475)
|
|
||||||
@@ -1155,7 +1155,7 @@
|
|
||||||
test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \
|
|
||||||
test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
|
|
||||||
|
|
||||||
- # We can hardcode non-existant directories.
|
|
||||||
+ # We can hardcode non-existent directories.
|
|
||||||
if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
|
|
||||||
# If the only mechanism to avoid hardcoding is shlibpath_var, we
|
|
||||||
# have to relink, otherwise we might link with an installed library
|
|
||||||
Index: libffi/configure.ac
|
|
||||||
===================================================================
|
|
||||||
--- libffi/configure.ac (working copy)
|
|
||||||
+++ libffi/configure.ac (revision 72475)
|
|
||||||
@@ -1,4 +1,7 @@
|
@@ -1,4 +1,7 @@
|
||||||
dnl Process this with autoconf to create configure
|
dnl Process this with autoconf to create configure
|
||||||
+#
|
+#
|
||||||
+# file from libffi - slightly patched for ctypes
|
+# file from libffi - slightly patched for ctypes
|
||||||
+#
|
+#
|
||||||
|
|
||||||
AC_PREREQ(2.59)
|
AC_PREREQ(2.63)
|
||||||
|
|
||||||
@@ -83,6 +86,9 @@
|
@@ -91,6 +94,9 @@
|
||||||
i?86-*-solaris2.1[[0-9]]*)
|
i?86-*-solaris2.1[[0-9]]*)
|
||||||
TARGET=X86_64; TARGETDIR=x86
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
;;
|
;;
|
||||||
|
@ -37,7 +22,7 @@ Index: libffi/configure.ac
|
||||||
i?86-*-*)
|
i?86-*-*)
|
||||||
TARGET=X86; TARGETDIR=x86
|
TARGET=X86; TARGETDIR=x86
|
||||||
;;
|
;;
|
||||||
@@ -100,10 +106,10 @@
|
@@ -108,12 +114,12 @@
|
||||||
;;
|
;;
|
||||||
|
|
||||||
mips-sgi-irix5.* | mips-sgi-irix6.*)
|
mips-sgi-irix5.* | mips-sgi-irix6.*)
|
||||||
|
@ -45,12 +30,14 @@ Index: libffi/configure.ac
|
||||||
+ TARGET=MIPS_IRIX; TARGETDIR=mips
|
+ TARGET=MIPS_IRIX; TARGETDIR=mips
|
||||||
;;
|
;;
|
||||||
mips*-*-linux*)
|
mips*-*-linux*)
|
||||||
|
# Support 128-bit long double for NewABI.
|
||||||
|
HAVE_LONG_DOUBLE='defined(__mips64)'
|
||||||
- TARGET=MIPS; TARGETDIR=mips
|
- TARGET=MIPS; TARGETDIR=mips
|
||||||
+ TARGET=MIPS_LINUX; TARGETDIR=mips
|
+ TARGET=MIPS_IRIX; TARGETDIR=mips
|
||||||
;;
|
;;
|
||||||
|
|
||||||
powerpc*-*-linux* | powerpc-*-sysv*)
|
powerpc*-*-linux* | powerpc-*-sysv*)
|
||||||
@@ -156,7 +162,7 @@
|
@@ -170,7 +176,7 @@
|
||||||
AC_MSG_ERROR(["libffi has not been ported to $host."])
|
AC_MSG_ERROR(["libffi has not been ported to $host."])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -59,59 +46,21 @@ Index: libffi/configure.ac
|
||||||
AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
|
AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
|
||||||
AM_CONDITIONAL(X86, test x$TARGET = xX86)
|
AM_CONDITIONAL(X86, test x$TARGET = xX86)
|
||||||
AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
|
AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
|
||||||
@@ -360,6 +366,10 @@
|
@@ -399,6 +405,10 @@
|
||||||
|
|
||||||
AC_CONFIG_LINKS(include/ffitarget.h:src/$TARGETDIR/ffitarget.h)
|
AC_CONFIG_LINKS(include/ffitarget.h:src/$TARGETDIR/ffitarget.h)
|
||||||
|
|
||||||
-AC_CONFIG_FILES(include/Makefile include/ffi.h Makefile testsuite/Makefile man/Makefile libffi.pc)
|
-AC_CONFIG_FILES(include/Makefile include/ffi.h Makefile testsuite/Makefile man/Makefile libffi.pc)
|
||||||
+AC_CONFIG_FILES(include/ffi.h)
|
+AC_CONFIG_FILES(include/ffi.h)
|
||||||
|
+
|
||||||
+AC_CONFIG_LINKS(include/ffi_common.h:include/ffi_common.h)
|
+AC_CONFIG_LINKS(include/ffi_common.h:include/ffi_common.h)
|
||||||
+
|
+
|
||||||
+AC_CONFIG_FILES(fficonfig.py)
|
+AC_CONFIG_FILES(fficonfig.py)
|
||||||
+
|
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
Index: libffi/configure
|
--- libffi/configure.orig 2009-12-31 13:41:51.000000000 +0100
|
||||||
===================================================================
|
+++ libffi/configure 2010-02-24 00:41:59.829608794 +0100
|
||||||
--- libffi/configure (working copy)
|
@@ -12191,6 +12191,9 @@
|
||||||
+++ libffi/configure (revision 72475)
|
|
||||||
@@ -9546,7 +9546,7 @@
|
|
||||||
test -n "$runpath_var" || \
|
|
||||||
test "X$hardcode_automatic" = "Xyes" ; then
|
|
||||||
|
|
||||||
- # We can hardcode non-existant directories.
|
|
||||||
+ # We can hardcode non-existent directories.
|
|
||||||
if test "$hardcode_direct" != no &&
|
|
||||||
# If the only mechanism to avoid hardcoding is shlibpath_var, we
|
|
||||||
# have to relink, otherwise we might link with an installed library
|
|
||||||
@@ -13514,7 +13514,7 @@
|
|
||||||
test -n "$runpath_var_CXX" || \
|
|
||||||
test "X$hardcode_automatic_CXX" = "Xyes" ; then
|
|
||||||
|
|
||||||
- # We can hardcode non-existant directories.
|
|
||||||
+ # We can hardcode non-existent directories.
|
|
||||||
if test "$hardcode_direct_CXX" != no &&
|
|
||||||
# If the only mechanism to avoid hardcoding is shlibpath_var, we
|
|
||||||
# have to relink, otherwise we might link with an installed library
|
|
||||||
@@ -16117,7 +16117,7 @@
|
|
||||||
test -n "$runpath_var_F77" || \
|
|
||||||
test "X$hardcode_automatic_F77" = "Xyes" ; then
|
|
||||||
|
|
||||||
- # We can hardcode non-existant directories.
|
|
||||||
+ # We can hardcode non-existent directories.
|
|
||||||
if test "$hardcode_direct_F77" != no &&
|
|
||||||
# If the only mechanism to avoid hardcoding is shlibpath_var, we
|
|
||||||
# have to relink, otherwise we might link with an installed library
|
|
||||||
@@ -18720,7 +18720,7 @@
|
|
||||||
test -n "$runpath_var_GCJ" || \
|
|
||||||
test "X$hardcode_automatic_GCJ" = "Xyes" ; then
|
|
||||||
|
|
||||||
- # We can hardcode non-existant directories.
|
|
||||||
+ # We can hardcode non-existent directories.
|
|
||||||
if test "$hardcode_direct_GCJ" != no &&
|
|
||||||
# If the only mechanism to avoid hardcoding is shlibpath_var, we
|
|
||||||
# have to relink, otherwise we might link with an installed library
|
|
||||||
@@ -20406,6 +20406,9 @@
|
|
||||||
i?86-*-solaris2.1[0-9]*)
|
i?86-*-solaris2.1[0-9]*)
|
||||||
TARGET=X86_64; TARGETDIR=x86
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
;;
|
;;
|
||||||
|
@ -121,7 +70,7 @@ Index: libffi/configure
|
||||||
i?86-*-*)
|
i?86-*-*)
|
||||||
TARGET=X86; TARGETDIR=x86
|
TARGET=X86; TARGETDIR=x86
|
||||||
;;
|
;;
|
||||||
@@ -20423,10 +20426,10 @@
|
@@ -12208,12 +12211,12 @@
|
||||||
;;
|
;;
|
||||||
|
|
||||||
mips-sgi-irix5.* | mips-sgi-irix6.*)
|
mips-sgi-irix5.* | mips-sgi-irix6.*)
|
||||||
|
@ -129,12 +78,14 @@ Index: libffi/configure
|
||||||
+ TARGET=MIPS_IRIX; TARGETDIR=mips
|
+ TARGET=MIPS_IRIX; TARGETDIR=mips
|
||||||
;;
|
;;
|
||||||
mips*-*-linux*)
|
mips*-*-linux*)
|
||||||
|
# Support 128-bit long double for NewABI.
|
||||||
|
HAVE_LONG_DOUBLE='defined(__mips64)'
|
||||||
- TARGET=MIPS; TARGETDIR=mips
|
- TARGET=MIPS; TARGETDIR=mips
|
||||||
+ TARGET=MIPS_LINUX; TARGETDIR=mips
|
+ TARGET=MIPS_IRIX; TARGETDIR=mips
|
||||||
;;
|
;;
|
||||||
|
|
||||||
powerpc*-*-linux* | powerpc-*-sysv*)
|
powerpc*-*-linux* | powerpc-*-sysv*)
|
||||||
@@ -20481,7 +20484,7 @@
|
@@ -12272,7 +12275,7 @@
|
||||||
{ (exit 1); exit 1; }; }
|
{ (exit 1); exit 1; }; }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -143,24 +94,22 @@ Index: libffi/configure
|
||||||
MIPS_TRUE=
|
MIPS_TRUE=
|
||||||
MIPS_FALSE='#'
|
MIPS_FALSE='#'
|
||||||
else
|
else
|
||||||
@@ -22712,9 +22715,15 @@
|
@@ -14667,7 +14670,13 @@
|
||||||
ac_config_links="$ac_config_links include/ffitarget.h:src/$TARGETDIR/ffitarget.h"
|
ac_config_links="$ac_config_links include/ffitarget.h:src/$TARGETDIR/ffitarget.h"
|
||||||
|
|
||||||
|
|
||||||
-ac_config_files="$ac_config_files include/Makefile include/ffi.h Makefile testsuite/Makefile man/Makefile libffi.pc"
|
-ac_config_files="$ac_config_files include/Makefile include/ffi.h Makefile testsuite/Makefile man/Makefile libffi.pc"
|
||||||
+ac_config_files="$ac_config_files include/ffi.h"
|
+ac_config_files="$ac_config_files include/ffi.h"
|
||||||
|
+
|
||||||
|
+
|
||||||
+ac_config_links="$ac_config_links include/ffi_common.h:include/ffi_common.h"
|
+ac_config_links="$ac_config_links include/ffi_common.h:include/ffi_common.h"
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
+ac_config_files="$ac_config_files fficonfig.py"
|
+ac_config_files="$ac_config_files fficonfig.py"
|
||||||
+
|
|
||||||
+
|
|
||||||
cat >confcache <<\_ACEOF
|
cat >confcache <<\_ACEOF
|
||||||
# This file is a shell script that caches the results of configure
|
@@ -15767,12 +15776,9 @@
|
||||||
# tests run on this system so they can be shared between configure
|
|
||||||
@@ -23498,12 +23507,9 @@
|
|
||||||
"include") CONFIG_COMMANDS="$CONFIG_COMMANDS include" ;;
|
"include") CONFIG_COMMANDS="$CONFIG_COMMANDS include" ;;
|
||||||
"src") CONFIG_COMMANDS="$CONFIG_COMMANDS src" ;;
|
"src") CONFIG_COMMANDS="$CONFIG_COMMANDS src" ;;
|
||||||
"include/ffitarget.h") CONFIG_LINKS="$CONFIG_LINKS include/ffitarget.h:src/$TARGETDIR/ffitarget.h" ;;
|
"include/ffitarget.h") CONFIG_LINKS="$CONFIG_LINKS include/ffitarget.h:src/$TARGETDIR/ffitarget.h" ;;
|
||||||
|
@ -173,13 +122,22 @@ Index: libffi/configure
|
||||||
+ "include/ffi_common.h") CONFIG_LINKS="$CONFIG_LINKS include/ffi_common.h:include/ffi_common.h" ;;
|
+ "include/ffi_common.h") CONFIG_LINKS="$CONFIG_LINKS include/ffi_common.h:include/ffi_common.h" ;;
|
||||||
+ "fficonfig.py") CONFIG_FILES="$CONFIG_FILES fficonfig.py" ;;
|
+ "fficonfig.py") CONFIG_FILES="$CONFIG_FILES fficonfig.py" ;;
|
||||||
|
|
||||||
*) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
|
*) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
|
||||||
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
|
$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
|
||||||
Index: libffi/src/x86/ffi.c
|
--- libffi/src/x86/ffi64.c.orig 2009-12-29 16:22:26.000000000 +0100
|
||||||
===================================================================
|
+++ libffi/src/x86/ffi64.c 2010-02-24 00:36:46.678610932 +0100
|
||||||
--- libffi/src/x86/ffi.c (working copy)
|
@@ -52,7 +52,7 @@
|
||||||
+++ libffi/src/x86/ffi.c (revision 72475)
|
/* Register class used for passing given 64bit part of the argument.
|
||||||
@@ -388,10 +388,10 @@
|
These represent classes as documented by the PS ABI, with the exception
|
||||||
|
of SSESF, SSEDF classes, that are basically SSE class, just gcc will
|
||||||
|
- use SF or DFmode move instead of DImode to avoid reformating penalties.
|
||||||
|
+ use SF or DFmode move instead of DImode to avoid reformatting penalties.
|
||||||
|
|
||||||
|
Similary we play games with INTEGERSI_CLASS to use cheaper SImode moves
|
||||||
|
whenever possible (upper half does contain padding). */
|
||||||
|
--- libffi/src/x86/ffi.c.orig 2009-12-29 16:22:26.000000000 +0100
|
||||||
|
+++ libffi/src/x86/ffi.c 2010-02-24 00:36:46.678610932 +0100
|
||||||
|
@@ -594,10 +594,10 @@
|
||||||
return FFI_BAD_ABI;
|
return FFI_BAD_ABI;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,16 +150,3 @@ Index: libffi/src/x86/ffi.c
|
||||||
|
|
||||||
for (i = cif->nargs-1; i >= 0; i--)
|
for (i = cif->nargs-1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
Index: libffi/src/x86/ffi64.c
|
|
||||||
===================================================================
|
|
||||||
--- libffi/src/x86/ffi64.c (working copy)
|
|
||||||
+++ libffi/src/x86/ffi64.c (revision 72475)
|
|
||||||
@@ -52,7 +52,7 @@
|
|
||||||
/* Register class used for passing given 64bit part of the argument.
|
|
||||||
These represent classes as documented by the PS ABI, with the exception
|
|
||||||
of SSESF, SSEDF classes, that are basically SSE class, just gcc will
|
|
||||||
- use SF or DFmode move instead of DImode to avoid reformating penalties.
|
|
||||||
+ use SF or DFmode move instead of DImode to avoid reformatting penalties.
|
|
||||||
|
|
||||||
Similary we play games with INTEGERSI_CLASS to use cheaper SImode moves
|
|
||||||
whenever possible (upper half does contain padding). */
|
|
||||||
|
|
4059
Modules/_ctypes/libffi/ChangeLog
Normal file
4059
Modules/_ctypes/libffi/ChangeLog
Normal file
File diff suppressed because it is too large
Load diff
658
Modules/_ctypes/libffi/ChangeLog.libffi
Normal file
658
Modules/_ctypes/libffi/ChangeLog.libffi
Normal file
|
@ -0,0 +1,658 @@
|
||||||
|
2009-12-27 Matthias Klose <doko@ubuntu.com>
|
||||||
|
|
||||||
|
* configure.ac (HAVE_LONG_DOUBLE): Define for mips when
|
||||||
|
appropriate.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
2009-12-27 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/cls_longdouble.c: Don't xfail for ARM.
|
||||||
|
|
||||||
|
2009-12-26 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/huge_struct.c: Don't xfail for avr32*-*-*.
|
||||||
|
* testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
|
||||||
|
avr32*-*-*.
|
||||||
|
* testsuite/libffi.call/cls_double_va.c: Ditto.
|
||||||
|
|
||||||
|
2009-12-26 Andreas Tobler <a.tobler@schweiz.org>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
|
||||||
|
and inttypes.h.
|
||||||
|
* testsuite/libffi.special/unwindtest.cc: Ditto.
|
||||||
|
* testsuite/libffi.call/huge_struct.c: Don't include stdint.h
|
||||||
|
directly.
|
||||||
|
|
||||||
|
2009-12-26 Andreas Tobler <a.tobler@schweiz.org>
|
||||||
|
|
||||||
|
* configure.ac: Add amd64-*-openbsd*.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
* testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
|
||||||
|
openbsd programs with -lpthread.
|
||||||
|
|
||||||
|
2009-12-26 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/cls_double_va.c,
|
||||||
|
testsuite/libffi.call/cls_longdouble.c,
|
||||||
|
testsuite/libffi.call/cls_longdouble_va.c,
|
||||||
|
testsuite/libffi.call/cls_pointer.c,
|
||||||
|
testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
|
||||||
|
mips*-*-* and arm*-*-*.
|
||||||
|
* testsuite/libffi.call/cls_align_longdouble_split.c,
|
||||||
|
testsuite/libffi.call/cls_align_longdouble_split2.c,
|
||||||
|
testsuite/libffi.call/stret_medium2.c,
|
||||||
|
testsuite/libffi.call/stret_medium.c,
|
||||||
|
testsuite/libffi.call/stret_large.c,
|
||||||
|
testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
2009-12-25 Samuli Suominen <ssuominen@gentoo.org>
|
||||||
|
|
||||||
|
* configure.ac: Undefine _AC_ARG_VAR_PRECIOUS for autoconf 2.64.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
* fficonfig.h.in: Rebuilt.
|
||||||
|
|
||||||
|
2009-12-29 Kay Tietz <ktietz70@googlemail.com>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/ffitest.h,
|
||||||
|
testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
|
||||||
|
definitions.
|
||||||
|
|
||||||
|
2009-12-25 Carlo Bramini <carlo.bramix@libero.it>
|
||||||
|
|
||||||
|
* configure.ac (AM_LTLDFLAGS): Define for windows hosts.
|
||||||
|
* Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
2009-12-24 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/huge_struct.c: Fix printf format, and
|
||||||
|
don't xfail x86 Linux.
|
||||||
|
* testsuite/libffi.call/huge_struct.c: Don't xfail mips.
|
||||||
|
* testsuite/libffi.call/cls_pointer.c: Ditto.
|
||||||
|
* testsuite/libffi.call/cls_pointer_stack.c: Ditto.
|
||||||
|
* testsuite/libffi.call/cls_longdouble_va.c: Ditto.
|
||||||
|
* testsuite/libffi.call/cls_longdouble.c: Ditto.
|
||||||
|
* testsuite/libffi.call/cls_double_va.c: Ditto.
|
||||||
|
|
||||||
|
2009-06-16 Andrew Haley <aph@redhat.com>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/cls_align_sint64.c,
|
||||||
|
testsuite/libffi.call/cls_align_uint64.c,
|
||||||
|
testsuite/libffi.call/cls_longdouble_va.c,
|
||||||
|
testsuite/libffi.call/cls_ulonglong.c,
|
||||||
|
testsuite/libffi.call/return_ll1.c,
|
||||||
|
testsuite/libffi.call/stret_medium2.c: Fix printf format
|
||||||
|
specifiers.
|
||||||
|
* testsuite/libffi.call/huge_struct.c: Ad x86 XFAILs.
|
||||||
|
* testsuite/libffi.call/float2.c: Fix dg-excess-errors.
|
||||||
|
* testsuite/libffi.call/ffitest.h,
|
||||||
|
testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
|
||||||
|
|
||||||
|
2009-06-12 Andrew Haley <aph@redhat.com>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/cls_align_sint64.c,
|
||||||
|
testsuite/libffi.call/cls_align_uint64.c,
|
||||||
|
testsuite/libffi.call/cls_ulonglong.c,
|
||||||
|
testsuite/libffi.call/return_ll1.c,
|
||||||
|
testsuite/libffi.call/stret_medium2.c: Fix printf format
|
||||||
|
specifiers.
|
||||||
|
testsuite/libffi.special/unwindtest.cc: include stdint.h.
|
||||||
|
|
||||||
|
2009-06-11 Timothy Wall <twall@users.sf.net>
|
||||||
|
|
||||||
|
* Makefile.am,
|
||||||
|
configure.ac,
|
||||||
|
include/ffi.h.in,
|
||||||
|
include/ffi_common.h,
|
||||||
|
src/closures.c,
|
||||||
|
src/dlmalloc.c,
|
||||||
|
src/x86/ffi.c,
|
||||||
|
src/x86/ffitarget.h,
|
||||||
|
src/x86/win64.S (new),
|
||||||
|
README: Added win64 support (mingw or MSVC)
|
||||||
|
* Makefile.in,
|
||||||
|
include/Makefile.in,
|
||||||
|
man/Makefile.in,
|
||||||
|
testsuite/Makefile.in,
|
||||||
|
configure,
|
||||||
|
aclocal.m4: Regenerated
|
||||||
|
* ltcf-c.sh: properly escape cygwin/w32 path
|
||||||
|
* man/ffi_call.3: Clarify size requirements for return value.
|
||||||
|
* src/x86/ffi64.c: Fix filename in comment.
|
||||||
|
* src/x86/win32.S: Remove unused extern.
|
||||||
|
|
||||||
|
* testsuite/libffi.call/closure_fn0.c,
|
||||||
|
testsuite/libffi.call/closure_fn1.c,
|
||||||
|
testsuite/libffi.call/closure_fn2.c,
|
||||||
|
testsuite/libffi.call/closure_fn3.c,
|
||||||
|
testsuite/libffi.call/closure_fn4.c,
|
||||||
|
testsuite/libffi.call/closure_fn5.c,
|
||||||
|
testsuite/libffi.call/closure_fn6.c,
|
||||||
|
testsuite/libffi.call/closure_stdcall.c,
|
||||||
|
testsuite/libffi.call/cls_12byte.c,
|
||||||
|
testsuite/libffi.call/cls_16byte.c,
|
||||||
|
testsuite/libffi.call/cls_18byte.c,
|
||||||
|
testsuite/libffi.call/cls_19byte.c,
|
||||||
|
testsuite/libffi.call/cls_1_1byte.c,
|
||||||
|
testsuite/libffi.call/cls_20byte.c,
|
||||||
|
testsuite/libffi.call/cls_20byte1.c,
|
||||||
|
testsuite/libffi.call/cls_24byte.c,
|
||||||
|
testsuite/libffi.call/cls_2byte.c,
|
||||||
|
testsuite/libffi.call/cls_3_1byte.c,
|
||||||
|
testsuite/libffi.call/cls_3byte1.c,
|
||||||
|
testsuite/libffi.call/cls_3byte2.c,
|
||||||
|
testsuite/libffi.call/cls_4_1byte.c,
|
||||||
|
testsuite/libffi.call/cls_4byte.c,
|
||||||
|
testsuite/libffi.call/cls_5_1_byte.c,
|
||||||
|
testsuite/libffi.call/cls_5byte.c,
|
||||||
|
testsuite/libffi.call/cls_64byte.c,
|
||||||
|
testsuite/libffi.call/cls_6_1_byte.c,
|
||||||
|
testsuite/libffi.call/cls_6byte.c,
|
||||||
|
testsuite/libffi.call/cls_7_1_byte.c,
|
||||||
|
testsuite/libffi.call/cls_7byte.c,
|
||||||
|
testsuite/libffi.call/cls_8byte.c,
|
||||||
|
testsuite/libffi.call/cls_9byte1.c,
|
||||||
|
testsuite/libffi.call/cls_9byte2.c,
|
||||||
|
testsuite/libffi.call/cls_align_double.c,
|
||||||
|
testsuite/libffi.call/cls_align_float.c,
|
||||||
|
testsuite/libffi.call/cls_align_longdouble.c,
|
||||||
|
testsuite/libffi.call/cls_align_longdouble_split.c,
|
||||||
|
testsuite/libffi.call/cls_align_longdouble_split2.c,
|
||||||
|
testsuite/libffi.call/cls_align_pointer.c,
|
||||||
|
testsuite/libffi.call/cls_align_sint16.c,
|
||||||
|
testsuite/libffi.call/cls_align_sint32.c,
|
||||||
|
testsuite/libffi.call/cls_align_sint64.c,
|
||||||
|
testsuite/libffi.call/cls_align_uint16.c,
|
||||||
|
testsuite/libffi.call/cls_align_uint32.c,
|
||||||
|
testsuite/libffi.call/cls_align_uint64.c,
|
||||||
|
testsuite/libffi.call/cls_dbls_struct.c,
|
||||||
|
testsuite/libffi.call/cls_double.c,
|
||||||
|
testsuite/libffi.call/cls_double_va.c,
|
||||||
|
testsuite/libffi.call/cls_float.c,
|
||||||
|
testsuite/libffi.call/cls_longdouble.c,
|
||||||
|
testsuite/libffi.call/cls_longdouble_va.c,
|
||||||
|
testsuite/libffi.call/cls_multi_schar.c,
|
||||||
|
testsuite/libffi.call/cls_multi_sshort.c,
|
||||||
|
testsuite/libffi.call/cls_multi_sshortchar.c,
|
||||||
|
testsuite/libffi.call/cls_multi_uchar.c,
|
||||||
|
testsuite/libffi.call/cls_multi_ushort.c,
|
||||||
|
testsuite/libffi.call/cls_multi_ushortchar.c,
|
||||||
|
testsuite/libffi.call/cls_pointer.c,
|
||||||
|
testsuite/libffi.call/cls_pointer_stack.c,
|
||||||
|
testsuite/libffi.call/cls_schar.c,
|
||||||
|
testsuite/libffi.call/cls_sint.c,
|
||||||
|
testsuite/libffi.call/cls_sshort.c,
|
||||||
|
testsuite/libffi.call/cls_uchar.c,
|
||||||
|
testsuite/libffi.call/cls_uint.c,
|
||||||
|
testsuite/libffi.call/cls_ulonglong.c,
|
||||||
|
testsuite/libffi.call/cls_ushort.c,
|
||||||
|
testsuite/libffi.call/err_bad_abi.c,
|
||||||
|
testsuite/libffi.call/err_bad_typedef.c,
|
||||||
|
testsuite/libffi.call/float2.c,
|
||||||
|
testsuite/libffi.call/huge_struct.c,
|
||||||
|
testsuite/libffi.call/nested_struct.c,
|
||||||
|
testsuite/libffi.call/nested_struct1.c,
|
||||||
|
testsuite/libffi.call/nested_struct10.c,
|
||||||
|
testsuite/libffi.call/nested_struct2.c,
|
||||||
|
testsuite/libffi.call/nested_struct3.c,
|
||||||
|
testsuite/libffi.call/nested_struct4.c,
|
||||||
|
testsuite/libffi.call/nested_struct5.c,
|
||||||
|
testsuite/libffi.call/nested_struct6.c,
|
||||||
|
testsuite/libffi.call/nested_struct7.c,
|
||||||
|
testsuite/libffi.call/nested_struct8.c,
|
||||||
|
testsuite/libffi.call/nested_struct9.c,
|
||||||
|
testsuite/libffi.call/problem1.c,
|
||||||
|
testsuite/libffi.call/return_ldl.c,
|
||||||
|
testsuite/libffi.call/return_ll1.c,
|
||||||
|
testsuite/libffi.call/stret_large.c,
|
||||||
|
testsuite/libffi.call/stret_large2.c,
|
||||||
|
testsuite/libffi.call/stret_medium.c,
|
||||||
|
testsuite/libffi.call/stret_medium2.c,
|
||||||
|
testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
|
||||||
|
of checking for MMAP. Use intptr_t instead of long casts.
|
||||||
|
|
||||||
|
2009-06-04 Andrew Haley <aph@redhat.com>
|
||||||
|
|
||||||
|
* src/powerpc/ffitarget.h: Fix misapplied merge from gcc.
|
||||||
|
|
||||||
|
2009-06-04 Andrew Haley <aph@redhat.com>
|
||||||
|
|
||||||
|
* src/mips/o32.S,
|
||||||
|
src/mips/n32.S: Fix licence formatting.
|
||||||
|
|
||||||
|
2009-06-04 Andrew Haley <aph@redhat.com>
|
||||||
|
|
||||||
|
* src/x86/darwin.S: Fix licence formatting.
|
||||||
|
src/x86/win32.S: Likewise.
|
||||||
|
src/sh64/sysv.S: Likewise.
|
||||||
|
src/sh/sysv.S: Likewise.
|
||||||
|
|
||||||
|
2009-06-04 Andrew Haley <aph@redhat.com>
|
||||||
|
|
||||||
|
* src/sh64/ffi.c: Remove lint directives. Was missing from merge
|
||||||
|
of Andreas Tobler's patch from 2006-04-22.
|
||||||
|
|
||||||
|
2009-06-04 Andrew Haley <aph@redhat.com>
|
||||||
|
|
||||||
|
* src/sh/ffi.c: Apply missing hunk from Alexandre Oliva's patch of
|
||||||
|
2007-03-07.
|
||||||
|
|
||||||
|
2008-12-26 Timothy Wall <twall@users.sf.net>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/cls_longdouble.c,
|
||||||
|
testsuite/libffi.call/cls_longdouble_va.c,
|
||||||
|
testsuite/libffi.call/cls_align_longdouble.c,
|
||||||
|
testsuite/libffi.call/cls_align_longdouble_split.c,
|
||||||
|
testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
|
||||||
|
failures on x86_64 cygwin/mingw.
|
||||||
|
|
||||||
|
2008-12-22 Timothy Wall <twall@users.sf.net>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/closure_fn0.c,
|
||||||
|
testsuite/libffi.call/closure_fn1.c,
|
||||||
|
testsuite/libffi.call/closure_fn2.c,
|
||||||
|
testsuite/libffi.call/closure_fn3.c,
|
||||||
|
testsuite/libffi.call/closure_fn4.c,
|
||||||
|
testsuite/libffi.call/closure_fn5.c,
|
||||||
|
testsuite/libffi.call/closure_fn6.c,
|
||||||
|
testsuite/libffi.call/closure_loc_fn0.c,
|
||||||
|
testsuite/libffi.call/closure_stdcall.c,
|
||||||
|
testsuite/libffi.call/cls_align_pointer.c,
|
||||||
|
testsuite/libffi.call/cls_pointer.c,
|
||||||
|
testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
|
||||||
|
pointer to integer (intptr_t).
|
||||||
|
* testsuite/libffi.call/cls_longdouble.c: disable for win64.
|
||||||
|
|
||||||
|
2008-12-19 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* configure.ac: Bump version to 3.0.8.
|
||||||
|
* configure, doc/stamp-vti, doc/version.texi: Rebuilt.
|
||||||
|
* libtool-version: Increment revision.
|
||||||
|
* README: Update for new release.
|
||||||
|
|
||||||
|
2008-11-11 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* configure.ac: Bump version to 3.0.7.
|
||||||
|
* configure, doc/stamp-vti, doc/version.texi: Rebuilt.
|
||||||
|
* libtool-version: Increment revision.
|
||||||
|
* README: Update for new release.
|
||||||
|
|
||||||
|
2008-08-25 Andreas Tobler <a.tobler@schweiz.org>
|
||||||
|
|
||||||
|
* src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
|
||||||
|
FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
|
||||||
|
Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
|
||||||
|
Adjust copyright notice.
|
||||||
|
* src/powerpc/ffi.c: Add two new flags to indicate if we have one
|
||||||
|
register or two register to use for FFI_SYSV structs.
|
||||||
|
(ffi_prep_cif_machdep): Pass the right register flag introduced above.
|
||||||
|
(ffi_closure_helper_SYSV): Fix the return type for
|
||||||
|
FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
|
||||||
|
Adjust copyright notice.
|
||||||
|
|
||||||
|
2008-07-24 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/cls_dbls_struct.c,
|
||||||
|
testsuite/libffi.call/cls_double_va.c,
|
||||||
|
testsuite/libffi.call/cls_longdouble.c,
|
||||||
|
testsuite/libffi.call/cls_longdouble_va.c,
|
||||||
|
testsuite/libffi.call/cls_pointer.c,
|
||||||
|
testsuite/libffi.call/cls_pointer_stack.c,
|
||||||
|
testsuite/libffi.call/err_bad_abi.c: Clean up failures from
|
||||||
|
compiler warnings.
|
||||||
|
|
||||||
|
2008-07-17 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* configure.ac: Bump version to 3.0.6.
|
||||||
|
* configure, doc/stamp-vti, doc/version.texi: Rebuilt.
|
||||||
|
* libtool-version: Increment revision. Add documentation.
|
||||||
|
* README: Update for new release.
|
||||||
|
|
||||||
|
2008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
|
||||||
|
|
||||||
|
* src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
|
||||||
|
int.
|
||||||
|
|
||||||
|
2008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
|
||||||
|
|
||||||
|
* src/sh/sysv.S: Add .note.GNU-stack on Linux.
|
||||||
|
* src/sh64/sysv.S: Likewise.
|
||||||
|
|
||||||
|
2008-04-03 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* libffi.pc.in (Libs): Add -L${libdir}.
|
||||||
|
* configure.ac: Bump version to 3.0.5.
|
||||||
|
* configure, doc/stamp-vti, doc/version.texi: Rebuilt.
|
||||||
|
* libtool-version: Increment revision.
|
||||||
|
* README: Update for new release.
|
||||||
|
|
||||||
|
2008-04-03 Anthony Green <green@redhat.com>
|
||||||
|
Xerces Ranby <xerxes@zafena.se>
|
||||||
|
|
||||||
|
* include/ffi.h.in: Wrap definition of target architecture to
|
||||||
|
protect from double definitions.
|
||||||
|
|
||||||
|
2008-03-22 Moriyoshi Koizumi <moriyoshi@gmail.com>
|
||||||
|
|
||||||
|
* src/x86/ffi.c (ffi_prep_closure_loc): Fix for bug revealed in
|
||||||
|
closure_loc_fn0.c.
|
||||||
|
* testsuite/libffi.call/closure_loc_fn0.c (closure_loc_test_fn0):
|
||||||
|
New test.
|
||||||
|
|
||||||
|
2008-03-04 Anthony Green <green@redhat.com>
|
||||||
|
Blake Chaffin
|
||||||
|
hos@tamanegi.org
|
||||||
|
|
||||||
|
* testsuite/libffi.call/cls_align_longdouble_split2.c
|
||||||
|
testsuite/libffi.call/cls_align_longdouble_split.c
|
||||||
|
testsuite/libffi.call/cls_dbls_struct.c
|
||||||
|
testsuite/libffi.call/cls_double_va.c
|
||||||
|
testsuite/libffi.call/cls_longdouble.c
|
||||||
|
testsuite/libffi.call/cls_longdouble_va.c
|
||||||
|
testsuite/libffi.call/cls_pointer.c
|
||||||
|
testsuite/libffi.call/cls_pointer_stack.c
|
||||||
|
testsuite/libffi.call/err_bad_abi.c
|
||||||
|
testsuite/libffi.call/err_bad_typedef.c
|
||||||
|
testsuite/libffi.call/huge_struct.c
|
||||||
|
testsuite/libffi.call/stret_large2.c
|
||||||
|
testsuite/libffi.call/stret_large.c
|
||||||
|
testsuite/libffi.call/stret_medium2.c
|
||||||
|
testsuite/libffi.call/stret_medium.c: New tests from Apple.
|
||||||
|
|
||||||
|
2008-02-26 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* src/alpha/osf.S: Add .note.GNU-stack on Linux.
|
||||||
|
* src/s390/sysv.S: Likewise.
|
||||||
|
* src/powerpc/linux64.S: Likewise.
|
||||||
|
* src/powerpc/linux64_closure.S: Likewise.
|
||||||
|
* src/powerpc/ppc_closure.S: Likewise.
|
||||||
|
* src/powerpc/sysv.S: Likewise.
|
||||||
|
* src/x86/unix64.S: Likewise.
|
||||||
|
* src/x86/sysv.S: Likewise.
|
||||||
|
* src/sparc/v8.S: Likewise.
|
||||||
|
* src/sparc/v9.S: Likewise.
|
||||||
|
* src/m68k/sysv.S: Likewise.
|
||||||
|
* src/ia64/unix.S: Likewise.
|
||||||
|
* src/arm/sysv.S: Likewise.
|
||||||
|
|
||||||
|
2008-02-26 Anthony Green <green@redhat.com>
|
||||||
|
Thomas Heller <theller@ctypes.org>
|
||||||
|
|
||||||
|
* src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
|
||||||
|
comment.
|
||||||
|
|
||||||
|
2008-02-26 Anthony Green <green@redhat.org>
|
||||||
|
Thomas Heller <theller@ctypes.org>
|
||||||
|
|
||||||
|
* include/ffi.h.in: Change void (*)() to void (*)(void).
|
||||||
|
|
||||||
|
2008-02-26 Anthony Green <green@redhat.org>
|
||||||
|
Thomas Heller <theller@ctypes.org>
|
||||||
|
|
||||||
|
* src/alpha/ffi.c: Change void (*)() to void (*)(void).
|
||||||
|
src/alpha/osf.S, src/arm/ffi.c, src/frv/ffi.c, src/ia64/ffi.c,
|
||||||
|
src/ia64/unix.S, src/java_raw_api.c, src/m32r/ffi.c,
|
||||||
|
src/mips/ffi.c, src/pa/ffi.c, src/pa/hpux32.S, src/pa/linux.S,
|
||||||
|
src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/raw_api.c,
|
||||||
|
src/s390/ffi.c, src/sh/ffi.c, src/sh64/ffi.c, src/sparc/ffi.c,
|
||||||
|
src/x86/ffi.c, src/x86/unix64.S, src/x86/darwin64.S,
|
||||||
|
src/x86/ffi64.c: Ditto.
|
||||||
|
|
||||||
|
2008-02-24 Anthony Green <green@redhat.org>
|
||||||
|
|
||||||
|
* configure.ac: Accept openbsd*, not just openbsd.
|
||||||
|
Bump version to 3.0.4.
|
||||||
|
* configure, doc/stamp-vti, doc/version.texi: Rebuilt.
|
||||||
|
* libtool-version: Increment revision.
|
||||||
|
* README: Update for new release.
|
||||||
|
|
||||||
|
2008-02-22 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* README: Clean up list of tested platforms.
|
||||||
|
|
||||||
|
2008-02-22 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* configure.ac: Bump version to 3.0.3.
|
||||||
|
* configure, doc/stamp-vti, doc/version.texi: Rebuilt.
|
||||||
|
* libtool-version: Increment revision.
|
||||||
|
* README: Update for new release. Clean up test docs.
|
||||||
|
|
||||||
|
2008-02-22 Bjoern Koenig <bkoenig@alpha-tierchen.de>
|
||||||
|
Andreas Tobler <a.tobler@schweiz.org>
|
||||||
|
|
||||||
|
* configure.ac: Add amd64-*-freebsd* target.
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
|
2008-02-22 Thomas Heller <theller@ctypes.org>
|
||||||
|
|
||||||
|
* configure.ac: Add x86 OpenBSD support.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
2008-02-21 Thomas Heller <theller@ctypes.org>
|
||||||
|
|
||||||
|
* README: Change "make test" to "make check".
|
||||||
|
|
||||||
|
2008-02-21 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* configure.ac: Bump version to 3.0.2.
|
||||||
|
* configure, doc/stamp-vti, doc/version.texi: Rebuilt.
|
||||||
|
* libtool-version: Increment revision.
|
||||||
|
* README: Update for new release.
|
||||||
|
|
||||||
|
2008-02-21 Björn König <bkoenig@alpha-tierchen.de>
|
||||||
|
|
||||||
|
* src/x86/freebsd.S: New file.
|
||||||
|
* configure.ac: Add x86 FreeBSD support.
|
||||||
|
* Makefile.am: Ditto.
|
||||||
|
|
||||||
|
2008-02-15 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* configure.ac: Bump version to 3.0.1.
|
||||||
|
* configure, doc/stamp-vti, doc/version.texi: Rebuilt.
|
||||||
|
* libtool-version: Increment revision.
|
||||||
|
* README: Update for new release.
|
||||||
|
|
||||||
|
2008-02-15 David Daney <ddaney@avtrex.com>
|
||||||
|
|
||||||
|
* src/mips/ffi.c: Remove extra '>' from include directive.
|
||||||
|
(ffi_prep_closure_loc): Use clear_location instead of tramp.
|
||||||
|
|
||||||
|
2008-02-15 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* configure.ac: Bump version to 3.0.0.
|
||||||
|
* configure, doc/stamp-vti, doc/version.texi: Rebuilt.
|
||||||
|
|
||||||
|
2008-02-15 David Daney <ddaney@avtrex.com>
|
||||||
|
|
||||||
|
* src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
|
||||||
|
Define (conditionally), and use it to include cachectl.h.
|
||||||
|
(ffi_prep_closure_loc): Fix cache flushing.
|
||||||
|
* src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
|
||||||
|
|
||||||
|
2008-02-15 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* man/ffi_call.3, man/ffi_prep_cif.3, man/ffi.3:
|
||||||
|
Update dates and remove all references to ffi_prep_closure.
|
||||||
|
* configure.ac: Bump version to 2.99.9.
|
||||||
|
* configure, doc/stamp-vti, doc/version.texi: Rebuilt.
|
||||||
|
|
||||||
|
2008-02-15 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* man/ffi_prep_closure.3: Delete.
|
||||||
|
* man/Makefile.am (EXTRA_DIST): Remove ffi_prep_closure.3.
|
||||||
|
(man_MANS): Ditto.
|
||||||
|
* man/Makefile.in: Rebuilt.
|
||||||
|
* configure.ac: Bump version to 2.99.8.
|
||||||
|
* configure, doc/stamp-vti, doc/version.texi: Rebuilt.
|
||||||
|
|
||||||
|
2008-02-14 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* configure.ac: Bump version to 2.99.7.
|
||||||
|
* configure, doc/stamp-vti, doc/version.texi: Rebuilt.
|
||||||
|
* include/ffi.h.in LICENSE src/debug.c src/closures.c
|
||||||
|
src/ffitest.c src/s390/sysv.S src/s390/ffitarget.h
|
||||||
|
src/types.c src/m68k/ffitarget.h src/raw_api.c src/frv/ffi.c
|
||||||
|
src/frv/ffitarget.h src/sh/ffi.c src/sh/sysv.S
|
||||||
|
src/sh/ffitarget.h src/powerpc/ffitarget.h src/pa/ffi.c
|
||||||
|
src/pa/ffitarget.h src/pa/linux.S src/java_raw_api.c
|
||||||
|
src/cris/ffitarget.h src/x86/ffi.c src/x86/sysv.S
|
||||||
|
src/x86/unix64.S src/x86/win32.S src/x86/ffitarget.h
|
||||||
|
src/x86/ffi64.c src/x86/darwin.S src/ia64/ffi.c
|
||||||
|
src/ia64/ffitarget.h src/ia64/ia64_flags.h src/ia64/unix.S
|
||||||
|
src/sparc/ffi.c src/sparc/v9.S src/sparc/ffitarget.h
|
||||||
|
src/sparc/v8.S src/alpha/ffi.c src/alpha/ffitarget.h
|
||||||
|
src/alpha/osf.S src/sh64/ffi.c src/sh64/sysv.S
|
||||||
|
src/sh64/ffitarget.h src/mips/ffi.c src/mips/ffitarget.h
|
||||||
|
src/mips/n32.S src/mips/o32.S src/arm/ffi.c src/arm/sysv.S
|
||||||
|
src/arm/ffitarget.h src/prep_cif.c: Update license text.
|
||||||
|
|
||||||
|
2008-02-14 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* README: Update tested platforms.
|
||||||
|
* configure.ac: Bump version to 2.99.6.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
2008-02-14 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* configure.ac: Bump version to 2.99.5.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
* Makefile.am (EXTRA_DIST): Add darwin64.S
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
* testsuite/lib/libffi-dg.exp: Remove libstdc++ bits from GCC tree.
|
||||||
|
* LICENSE: Update WARRANTY.
|
||||||
|
|
||||||
|
2008-02-14 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* libffi.pc.in (libdir): Fix libdir definition.
|
||||||
|
* configure.ac: Bump version to 2.99.4.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
2008-02-14 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* README: Update.
|
||||||
|
* libffi.info: New file.
|
||||||
|
* doc/stamp-vti: New file.
|
||||||
|
* configure.ac: Bump version to 2.99.3.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
2008-02-14 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* Makefile.am (SUBDIRS): Add man dir.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
* configure.ac: Create Makefile.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
* man/ffi_call.3 man/ffi_prep_cif.3 man/ffi_prep_closure.3
|
||||||
|
man/Makefile.am man/Makefile.in: New files.
|
||||||
|
|
||||||
|
2008-02-14 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
* aclocal.m4, Makefile.in, configure, fficonfig.h.in: Rebuilt.
|
||||||
|
* mdate-sh, texinfo.tex: New files.
|
||||||
|
* Makefile.am (info_TEXINFOS): New variable.
|
||||||
|
* doc/libffi.texi: New file.
|
||||||
|
* doc/version.texi: Likewise.
|
||||||
|
|
||||||
|
2008-02-14 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* Makefile.am (AM_CFLAGS): Don't compile with -D$(TARGET).
|
||||||
|
(lib_LTLIBRARIES): Define.
|
||||||
|
(toolexeclib_LIBRARIES): Undefine.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
* configure.ac: Reset version to 2.99.1.
|
||||||
|
* configure.in: Rebuilt.
|
||||||
|
|
||||||
|
2008-02-14 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* libffi.pc.in: Use @PACKAGE_NAME@ and @PACKAGE_VERSION@.
|
||||||
|
* configure.ac: Reset version to 2.99.1.
|
||||||
|
* configure.in: Rebuilt.
|
||||||
|
* Makefile.am (EXTRA_DIST): Add ChangeLog.libffi.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
* LICENSE: Update copyright notice.
|
||||||
|
|
||||||
|
2008-02-14 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* include/Makefile.am (nodist_includes_HEADERS): Define. Don't
|
||||||
|
distribute ffitarget.h or ffi.h from the build include dir.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
2008-02-14 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* include/Makefile.am (includesdir): Install headers under libdir.
|
||||||
|
(pkgconfigdir): Define. Install libffi.pc.
|
||||||
|
* include/Makefile.in: Rebuilt.
|
||||||
|
* libffi.pc.in: Create.
|
||||||
|
* libtool-version: Increment CURRENT
|
||||||
|
* configure.ac: Add libffi.pc.in
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
2008-02-03 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* include/Makefile.am (includesdir): Fix header install with
|
||||||
|
DESTDIR.
|
||||||
|
* include/Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
2008-02-03 Timothy Wall <twall@users.sf.net>
|
||||||
|
|
||||||
|
* src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
|
||||||
|
offset based on code pointer, not data pointer.
|
||||||
|
|
||||||
|
2008-02-01 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* include/Makefile.am: Fix header installs.
|
||||||
|
* Makefile.am: Ditto.
|
||||||
|
* include/Makefile.in: Rebuilt.
|
||||||
|
* Makefile.in: Ditto.
|
||||||
|
|
||||||
|
2008-02-01 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL,
|
||||||
|
FFI_INIT_TRAMPOLINE): Revert my broken changes to twall's last
|
||||||
|
patch.
|
||||||
|
|
||||||
|
2008-01-31 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* Makefile.am (EXTRA_DIST): Add missing files.
|
||||||
|
* testsuite/Makefile.am: Ditto.
|
||||||
|
* Makefile.in, testsuite/Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
2008-01-31 Timothy Wall <twall@users.sf.net>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
|
||||||
|
closures.
|
||||||
|
* src/x86/ffitarget.h: Increase size of trampoline for stdcall
|
||||||
|
closures.
|
||||||
|
* src/x86/win32.S: Add assembly for stdcall closure.
|
||||||
|
* src/x86/ffi.c: Initialize stdcall closure trampoline.
|
||||||
|
|
||||||
|
2008-01-30 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR libffi/34612
|
||||||
|
* src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
|
||||||
|
returning struct.
|
||||||
|
|
||||||
|
* testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
|
||||||
|
tests.
|
||||||
|
|
||||||
|
2008-01-30 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* Makefile.am, include/Makefile.am: Move headers to
|
||||||
|
libffi_la_SOURCES for new automake.
|
||||||
|
* Makefile.in, include/Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
* testsuite/lib/wrapper.exp: Copied from gcc tree to allow for
|
||||||
|
execution outside of gcc tree.
|
||||||
|
* testsuite/lib/target-libpath.exp: Ditto.
|
||||||
|
|
||||||
|
* testsuite/lib/libffi-dg.exp: Many changes to allow for execution
|
||||||
|
outside of gcc tree.
|
||||||
|
|
40
Modules/_ctypes/libffi/ChangeLog.libgcj
Normal file
40
Modules/_ctypes/libffi/ChangeLog.libgcj
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
|
||||||
|
|
||||||
|
* configure.in: Add in AC_PREREQ(2.13)
|
||||||
|
|
||||||
|
2003-02-20 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
|
* configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
|
||||||
|
config.status.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
2002-01-27 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
|
* configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
|
||||||
|
Remove USE_LIBDIR conditional.
|
||||||
|
* Makefile.am (toolexecdir, toolexeclibdir): Don't override.
|
||||||
|
* Makefile.in, configure: Rebuilt.
|
||||||
|
|
||||||
|
Mon Aug 9 18:33:38 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
||||||
|
|
||||||
|
* include/Makefile.in: Rebuilt.
|
||||||
|
* Makefile.in: Rebuilt
|
||||||
|
* Makefile.am (toolexeclibdir): Add $(MULTISUBDIR) even for native
|
||||||
|
builds.
|
||||||
|
Use USE_LIBDIR.
|
||||||
|
|
||||||
|
* configure: Rebuilt.
|
||||||
|
* configure.in (USE_LIBDIR): Define for native builds.
|
||||||
|
Use lowercase in configure --help explanations.
|
||||||
|
|
||||||
|
1999-08-08 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* include/ffi.h.in (FFI_FN): Remove `...'.
|
||||||
|
|
||||||
|
1999-08-08 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
* Makefile.am (AM_CFLAGS): Compile with -fexceptions.
|
||||||
|
|
||||||
|
* src/x86/sysv.S: Add exception handling metadata.
|
||||||
|
|
764
Modules/_ctypes/libffi/ChangeLog.v1
Normal file
764
Modules/_ctypes/libffi/ChangeLog.v1
Normal file
|
@ -0,0 +1,764 @@
|
||||||
|
The libffi version 1 ChangeLog archive.
|
||||||
|
|
||||||
|
Version 1 of libffi had per-directory ChangeLogs. Current and future
|
||||||
|
versions have a single ChangeLog file in the root directory. The
|
||||||
|
version 1 ChangeLogs have all been concatonated into this file for
|
||||||
|
future reference only.
|
||||||
|
|
||||||
|
--- libffi ----------------------------------------------------------------
|
||||||
|
|
||||||
|
Mon Oct 5 02:17:50 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Boosted rev.
|
||||||
|
* configure, Makefile.in, aclocal.m4: Rebuilt.
|
||||||
|
* README: Boosted rev and updated release notes.
|
||||||
|
|
||||||
|
Mon Oct 5 01:03:03 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Boosted rev.
|
||||||
|
* configure, Makefile.in, aclocal.m4: Rebuilt.
|
||||||
|
* README: Boosted rev and updated release notes.
|
||||||
|
|
||||||
|
1998-07-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* m68k/ffi.c (ffi_prep_cif_machdep): Use bitmask for cif->flags.
|
||||||
|
Correctly handle small structures.
|
||||||
|
(ffi_prep_args): Also handle small structures.
|
||||||
|
(ffi_call): Pass size of return type to ffi_call_SYSV.
|
||||||
|
* m68k/sysv.S: Adjust for above changes. Correctly align small
|
||||||
|
structures in the return value.
|
||||||
|
|
||||||
|
* types.c (uint64, sint64) [M68K]: Change alignment to 4.
|
||||||
|
|
||||||
|
Fri Apr 17 17:26:58 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Boosted rev.
|
||||||
|
* configure,Makefile.in,aclocal.m4: Rebuilt.
|
||||||
|
* README: Boosted rev and added release notes.
|
||||||
|
|
||||||
|
Sun Feb 22 00:50:41 1998 Geoff Keating <geoffk@ozemail.com.au>
|
||||||
|
|
||||||
|
* configure.in: Add PowerPC config bits.
|
||||||
|
|
||||||
|
1998-02-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* configure.in: Add m68k config bits. Change AC_CANONICAL_SYSTEM
|
||||||
|
to AC_CANONICAL_HOST, this is not a compiler. Use $host instead
|
||||||
|
of $target. Remove AC_CHECK_SIZEOF(char), we already know the
|
||||||
|
result. Fix argument of AC_ARG_ENABLE.
|
||||||
|
* configure, fficonfig.h.in: Rebuilt.
|
||||||
|
|
||||||
|
Tue Feb 10 20:53:40 1998 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Add Alpha config bits.
|
||||||
|
|
||||||
|
Tue May 13 13:39:20 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* README: Updated dates and reworded Irix comments.
|
||||||
|
|
||||||
|
* configure.in: Removed AC_PROG_RANLIB.
|
||||||
|
|
||||||
|
* Makefile.in, aclocal.m4, config.guess, config.sub, configure,
|
||||||
|
ltmain.sh, */Makefile.in: libtoolized again and rebuilt with
|
||||||
|
automake and autoconf.
|
||||||
|
|
||||||
|
Sat May 10 18:44:50 1997 Tom Tromey <tromey@cygnus.com>
|
||||||
|
|
||||||
|
* configure, aclocal.m4: Rebuilt.
|
||||||
|
* configure.in: Don't compute EXTRADIST; now handled in
|
||||||
|
src/Makefile.in. Removed macros implied by AM_INIT_AUTOMAKE.
|
||||||
|
Don't run AM_MAINTAINER_MODE.
|
||||||
|
|
||||||
|
Thu May 8 14:34:05 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* missing, ltmain.sh, ltconfig.sh: Created. These are new files
|
||||||
|
required by automake and libtool.
|
||||||
|
|
||||||
|
* README: Boosted rev to 1.14. Added notes.
|
||||||
|
|
||||||
|
* acconfig.h: Moved PACKAGE and VERSION for new automake.
|
||||||
|
|
||||||
|
* configure.in: Changes for libtool.
|
||||||
|
|
||||||
|
* Makefile.am (check): make test now make check. Uses libtool now.
|
||||||
|
|
||||||
|
* Makefile.in, configure.in, aclocal.h, fficonfig.h.in: Rebuilt.
|
||||||
|
|
||||||
|
Thu May 1 16:27:07 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* missing: Added file required by new automake.
|
||||||
|
|
||||||
|
Tue Nov 26 14:10:42 1996 Anthony Green <green@csk3.cygnus.com>
|
||||||
|
|
||||||
|
* acconfig.h: Added USING_PURIFY flag. This is defined when
|
||||||
|
--enable-purify-safety was used at configure time.
|
||||||
|
|
||||||
|
* configure.in (allsources): Added --enable-purify-safety switch.
|
||||||
|
(VERSION): Boosted rev to 1.13.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
Fri Nov 22 06:46:12 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in (VERSION): Boosted rev to 1.12.
|
||||||
|
Removed special CFLAGS hack for gcc.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Boosted rev to 1.12. Added notes.
|
||||||
|
|
||||||
|
* Many files: Cygnus Support changed to Cygnus Solutions.
|
||||||
|
|
||||||
|
Wed Oct 30 11:15:25 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in (VERSION): Boosted rev to 1.11.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Boosted rev to 1.11. Added notes about GNU make.
|
||||||
|
|
||||||
|
Tue Oct 29 12:25:12 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Fixed -Wall trick.
|
||||||
|
(VERSION): Boosted rev.
|
||||||
|
* configure: Rebuilt
|
||||||
|
|
||||||
|
* acconfig.h: Needed for --enable-debug configure switch.
|
||||||
|
|
||||||
|
* README: Boosted rev to 1.09. Added more notes on building
|
||||||
|
libffi, and LCLint.
|
||||||
|
|
||||||
|
* configure.in: Added --enable-debug switch. Boosted rev to
|
||||||
|
1.09.
|
||||||
|
* configure: Rebuilt
|
||||||
|
|
||||||
|
Tue Oct 15 13:11:28 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in (VERSION): Boosted rev to 1.08
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Added n32 bug fix notes.
|
||||||
|
|
||||||
|
* Makefile.am: Added "make lint" production.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Mon Oct 14 10:54:46 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* README: Added web page reference.
|
||||||
|
|
||||||
|
* configure.in, README: Boosted rev to 1.05
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Fixed n32 sample code.
|
||||||
|
|
||||||
|
Fri Oct 11 17:09:28 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* README: Added sparc notes.
|
||||||
|
|
||||||
|
* configure.in, README: Boosted rev to 1.04.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
Thu Oct 10 10:31:03 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in, README: Boosted rev to 1.03.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Added struct notes.
|
||||||
|
|
||||||
|
* Makefile.am (EXTRA_DIST): Added LICENSE to distribution.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
* README: Removed Linux section. No special notes now
|
||||||
|
because aggregates arg/return types work.
|
||||||
|
|
||||||
|
Wed Oct 9 16:16:42 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* README, configure.in (VERSION): Boosted rev to 1.02
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
Tue Oct 8 11:56:33 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* README (NOTE): Added n32 notes.
|
||||||
|
|
||||||
|
* Makefile.am: Added test production.
|
||||||
|
* Makefile: Rebuilt
|
||||||
|
|
||||||
|
* README: spell checked!
|
||||||
|
|
||||||
|
* configure.in (VERSION): Boosted rev to 1.01
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
Mon Oct 7 15:50:22 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: Added nasty bit to support SGI tools.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* README: Added SGI notes. Added note about automake bug.
|
||||||
|
|
||||||
|
Mon Oct 7 11:00:28 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* README: Rewrote intro, and fixed examples.
|
||||||
|
|
||||||
|
Fri Oct 4 10:19:55 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* configure.in: -D$TARGET is no longer used as a compiler switch.
|
||||||
|
It is now inserted into ffi.h at configure time.
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* FFI_ABI and FFI_STATUS are now ffi_abi and ffi_status.
|
||||||
|
|
||||||
|
Thu Oct 3 13:47:34 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* README, LICENSE: Created. Wrote some docs.
|
||||||
|
|
||||||
|
* configure.in: Don't barf on i586-unknown-linuxaout.
|
||||||
|
Added EXTRADIST code for "make dist".
|
||||||
|
* configure: Rebuilt.
|
||||||
|
|
||||||
|
* */Makefile.in: Rebuilt with patched automake.
|
||||||
|
|
||||||
|
Tue Oct 1 17:12:25 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am, aclocal.m4, config.guess, config.sub,
|
||||||
|
configure.in, fficonfig.h.in, install-sh, mkinstalldirs,
|
||||||
|
stamp-h.in: Created
|
||||||
|
* Makefile.in, configure: Generated
|
||||||
|
|
||||||
|
--- libffi/include --------------------------------------------------------
|
||||||
|
|
||||||
|
Tue Feb 24 13:09:36 1998 Anthony Green <green@gerbil.cygnus.com>
|
||||||
|
|
||||||
|
* ffi_mips.h: Updated FFI_TYPE_STRUCT_* values based on
|
||||||
|
ffi.h.in changes. This is a work-around for SGI's "simple"
|
||||||
|
assembler.
|
||||||
|
|
||||||
|
Sun Feb 22 00:51:55 1998 Geoff Keating <geoffk@ozemail.com.au>
|
||||||
|
|
||||||
|
* ffi.h.in: PowerPC support.
|
||||||
|
|
||||||
|
1998-02-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* ffi.h.in: Add m68k support.
|
||||||
|
(FFI_TYPE_LONGDOUBLE): Make it a separate value.
|
||||||
|
|
||||||
|
Tue Feb 10 20:55:16 1998 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in (SIZEOF_ARG): Use a pointer type by default.
|
||||||
|
|
||||||
|
* ffi.h.in: Alpha support.
|
||||||
|
|
||||||
|
Fri Nov 22 06:48:45 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in, ffi_common.h: Cygnus Support -> Cygnus Solutions.
|
||||||
|
|
||||||
|
Wed Nov 20 22:31:01 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Added ffi_type_void definition.
|
||||||
|
|
||||||
|
Tue Oct 29 12:22:40 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am (hack_DATA): Always install ffi_mips.h.
|
||||||
|
|
||||||
|
* ffi.h.in: Removed FFI_DEBUG. It's now in the correct
|
||||||
|
place (acconfig.h).
|
||||||
|
Added #include <stddef.h> for size_t definition.
|
||||||
|
|
||||||
|
Tue Oct 15 17:23:35 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in, ffi_common.h, ffi_mips.h: More clean up.
|
||||||
|
Commented out #define of FFI_DEBUG.
|
||||||
|
|
||||||
|
Tue Oct 15 13:01:06 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi_common.h: Added bool definition.
|
||||||
|
|
||||||
|
* ffi.h.in, ffi_common.h: Clean up based on LCLint output.
|
||||||
|
Added funny /*@...@*/ comments to annotate source.
|
||||||
|
|
||||||
|
Mon Oct 14 12:29:23 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Interface changes based on feedback from Jim
|
||||||
|
Blandy.
|
||||||
|
|
||||||
|
Fri Oct 11 16:49:35 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Small change for sparc support.
|
||||||
|
|
||||||
|
Thu Oct 10 14:53:37 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi_mips.h: Added FFI_TYPE_STRUCT_* definitions for
|
||||||
|
special structure return types.
|
||||||
|
|
||||||
|
Wed Oct 9 13:55:57 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Added SIZEOF_ARG definition for X86
|
||||||
|
|
||||||
|
Tue Oct 8 11:40:36 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in (FFI_FN): Added macro for eliminating compiler warnings.
|
||||||
|
Use it to case your function pointers to the proper type.
|
||||||
|
|
||||||
|
* ffi_mips.h (SIZEOF_ARG): Added magic to fix type promotion bug.
|
||||||
|
|
||||||
|
* Makefile.am (EXTRA_DIST): Added ffi_mips.h to EXTRA_DIST.
|
||||||
|
* Makefile: Rebuilt.
|
||||||
|
|
||||||
|
* ffi_mips.h: Created. Moved all common mips definitions here.
|
||||||
|
|
||||||
|
Mon Oct 7 10:58:12 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: The SGI assember is very picky about parens. Redefined
|
||||||
|
some macros to avoid problems.
|
||||||
|
|
||||||
|
* ffi.h.in: Added FFI_DEFAULT_ABI definitions. Also added
|
||||||
|
externs for pointer, and 64bit integral ffi_types.
|
||||||
|
|
||||||
|
Fri Oct 4 09:51:37 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Added FFI_ABI member to ffi_cif and changed
|
||||||
|
function prototypes accordingly.
|
||||||
|
Added #define @TARGET@. Now programs including ffi.h don't
|
||||||
|
have to specify this themselves.
|
||||||
|
|
||||||
|
Thu Oct 3 15:36:44 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in: Changed ffi_prep_cif's values from void* to void**
|
||||||
|
|
||||||
|
* Makefile.am (EXTRA_DIST): Added EXTRA_DIST for "make dist"
|
||||||
|
to work.
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
|
||||||
|
Wed Oct 2 10:16:59 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am: Created
|
||||||
|
* Makefile.in: Generated
|
||||||
|
|
||||||
|
* ffi_common.h: Added rcsid comment
|
||||||
|
|
||||||
|
Tue Oct 1 17:13:51 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.h.in, ffi_common.h: Created
|
||||||
|
|
||||||
|
--- libffi/src ------------------------------------------------------------
|
||||||
|
|
||||||
|
Mon Oct 5 02:17:50 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* arm/ffi.c, arm/sysv.S: Created.
|
||||||
|
|
||||||
|
* Makefile.am: Added arm files.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Mon Oct 5 01:41:38 1998 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am (libffi_la_LDFLAGS): Incremented revision.
|
||||||
|
|
||||||
|
Sun Oct 4 16:27:17 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* alpha/osf.S (ffi_call_osf): Patch for DU assembler.
|
||||||
|
|
||||||
|
* ffitest.c (main): long long and long double return values work
|
||||||
|
for x86.
|
||||||
|
|
||||||
|
Fri Apr 17 11:50:58 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
* ffitest.c (main): Floating point tests not executed for systems
|
||||||
|
with broken lond double (SunOS 4 w/ GCC).
|
||||||
|
|
||||||
|
* types.c: Fixed x86 alignment info for long long types.
|
||||||
|
|
||||||
|
Thu Apr 16 07:15:28 1998 Anthony Green <green@ada.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c: Added more notes about GCC bugs under Irix 6.
|
||||||
|
|
||||||
|
Wed Apr 15 08:42:22 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (struct5): New test function.
|
||||||
|
(main): New test with struct5.
|
||||||
|
|
||||||
|
Thu Mar 5 10:48:11 1998 Anthony Green <green@tootie.to.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (initialize_aggregate): Fix assertion for
|
||||||
|
nested structures.
|
||||||
|
|
||||||
|
Tue Feb 24 16:33:41 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Added long double support for sparc.
|
||||||
|
|
||||||
|
Sun Feb 22 00:52:18 1998 Geoff Keating <geoffk@ozemail.com.au>
|
||||||
|
|
||||||
|
* powerpc/asm.h: New file.
|
||||||
|
* powerpc/ffi.c: New file.
|
||||||
|
* powerpc/sysv.S: New file.
|
||||||
|
* Makefile.am: PowerPC port.
|
||||||
|
* ffitest.c (main): Allow all tests to run even in presence of gcc
|
||||||
|
bug on PowerPC.
|
||||||
|
|
||||||
|
1998-02-17 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* mips/ffi.c: Fixed comment typo.
|
||||||
|
|
||||||
|
* x86/ffi.c (ffi_prep_cif_machdep), x86/sysv.S (retfloat):
|
||||||
|
Fixed x86 long double return handling.
|
||||||
|
|
||||||
|
* types.c: Fixed x86 long double alignment info.
|
||||||
|
|
||||||
|
1998-02-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* types.c: Add m68k support.
|
||||||
|
|
||||||
|
* ffitest.c (floating): Add long double parameter.
|
||||||
|
(return_ll, ldblit): New functions to test long long and long
|
||||||
|
double return value.
|
||||||
|
(main): Fix type error in assignment of ts[1-4]_type.elements.
|
||||||
|
Add tests for long long and long double arguments and return
|
||||||
|
values.
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif) [M68K]: Don't allocate argument for
|
||||||
|
struct value pointer.
|
||||||
|
|
||||||
|
* m68k/ffi.c, m68k/sysv.S: New files.
|
||||||
|
* Makefile.am: Add bits for m68k port. Add kludge to work around
|
||||||
|
automake deficiency.
|
||||||
|
(test): Don't require "." in $PATH.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Wed Feb 11 07:36:50 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Tue Feb 10 20:56:00 1998 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
|
* alpha/ffi.c, alpha/osf.S: New files.
|
||||||
|
* Makefile.am: Alpha port.
|
||||||
|
|
||||||
|
Tue Nov 18 14:12:07 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* mips/ffi.c (ffi_prep_cif_machdep): Initialize rstruct_flag
|
||||||
|
for n32.
|
||||||
|
|
||||||
|
Tue Jun 3 17:18:20 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (main): Added hack to get structure tests working
|
||||||
|
correctly.
|
||||||
|
|
||||||
|
Sat May 10 19:06:42 1997 Tom Tromey <tromey@cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
* Makefile.am (EXTRA_DIST): Explicitly list all distributable
|
||||||
|
files in subdirs.
|
||||||
|
(VERSION, CC): Removed.
|
||||||
|
|
||||||
|
Thu May 8 17:19:01 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am: Many changes for new automake and libtool.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Fri Nov 22 06:57:56 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (main): Fixed test case for non mips machines.
|
||||||
|
|
||||||
|
Wed Nov 20 22:31:59 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* types.c: Added ffi_type_void declaration.
|
||||||
|
|
||||||
|
Tue Oct 29 13:07:19 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (main): Fixed character constants.
|
||||||
|
(main): Emit warning for structure test 3 failure on Sun.
|
||||||
|
|
||||||
|
* Makefile.am (VPATH): Fixed VPATH def'n so automake won't
|
||||||
|
strip it out.
|
||||||
|
Moved distdir hack from libffi to automake.
|
||||||
|
(ffitest): Added missing -c for $(COMPILE) (change in automake).
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
Tue Oct 15 13:08:20 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am: Added "make lint" production.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
* prep_cif.c (STACK_ARG_SIZE): Improved STACK_ARG_SIZE macro.
|
||||||
|
Clean up based on LCLint output. Added funny /*@...@*/ comments to
|
||||||
|
annotate source.
|
||||||
|
|
||||||
|
* ffitest.c, debug.c: Cleaned up code.
|
||||||
|
|
||||||
|
Mon Oct 14 12:26:56 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c: Changes based on interface changes.
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Cleaned up interface based on
|
||||||
|
feedback from Jim Blandy.
|
||||||
|
|
||||||
|
Fri Oct 11 15:53:18 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c: Reordered tests while porting to sparc.
|
||||||
|
Made changes to handle lame structure passing for sparc.
|
||||||
|
Removed calls to fflush().
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Added special case for sparc
|
||||||
|
aggregate type arguments.
|
||||||
|
|
||||||
|
Thu Oct 10 09:56:51 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffitest.c (main): Added structure passing/returning tests.
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Perform proper initialization
|
||||||
|
of structure return types if needed.
|
||||||
|
(initialize_aggregate): Bug fix
|
||||||
|
|
||||||
|
Wed Oct 9 16:04:20 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* types.c: Added special definitions for x86 (double doesn't
|
||||||
|
need double word alignment).
|
||||||
|
|
||||||
|
* ffitest.c: Added many tests
|
||||||
|
|
||||||
|
Tue Oct 8 09:19:22 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Fixed assertion.
|
||||||
|
|
||||||
|
* debug.c (ffi_assert): Must return a non void now.
|
||||||
|
|
||||||
|
* Makefile.am: Added test production.
|
||||||
|
* Makefile: Rebuilt.
|
||||||
|
|
||||||
|
* ffitest.c (main): Created.
|
||||||
|
|
||||||
|
* types.c: Created. Stripped common code out of */ffi.c.
|
||||||
|
|
||||||
|
* prep_cif.c: Added missing stdlib.h include.
|
||||||
|
|
||||||
|
* debug.c (ffi_type_test): Used "a" to eliminate compiler
|
||||||
|
warnings in non-debug builds. Included ffi_common.h.
|
||||||
|
|
||||||
|
Mon Oct 7 15:36:42 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.am: Added a rule for .s -> .o
|
||||||
|
This is required by the SGI compiler.
|
||||||
|
* Makefile: Rebuilt.
|
||||||
|
|
||||||
|
Fri Oct 4 09:51:08 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (initialize_aggregate): Moved abi specification
|
||||||
|
to ffi_prep_cif().
|
||||||
|
|
||||||
|
Thu Oct 3 15:37:37 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* prep_cif.c (ffi_prep_cif): Changed values from void* to void**.
|
||||||
|
(initialize_aggregate): Fixed aggregate type initialization.
|
||||||
|
|
||||||
|
* Makefile.am (EXTRA_DIST): Added support code for "make dist".
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
|
||||||
|
Wed Oct 2 11:41:57 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* debug.c, prep_cif: Created.
|
||||||
|
|
||||||
|
* Makefile.am: Added debug.o and prep_cif.o to OBJ.
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
|
||||||
|
* Makefile.am (INCLUDES): Added missing -I../include
|
||||||
|
* Makefile.in: Regenerated.
|
||||||
|
|
||||||
|
Tue Oct 1 17:11:51 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* error.c, Makefile.am: Created.
|
||||||
|
* Makefile.in: Generated.
|
||||||
|
|
||||||
|
--- libffi/src/x86 --------------------------------------------------------
|
||||||
|
|
||||||
|
Sun Oct 4 16:27:17 1998 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* sysv.S (retlongdouble): Fixed long long return value support.
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Ditto.
|
||||||
|
|
||||||
|
Wed May 13 04:30:33 1998 Anthony Green <green@raft.ppp.tsoft.net>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Fixed long double return value
|
||||||
|
support.
|
||||||
|
|
||||||
|
Wed Apr 15 08:43:20 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): small struct support was missing.
|
||||||
|
|
||||||
|
Thu May 8 16:53:58 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* objects.mak: Removed.
|
||||||
|
|
||||||
|
Mon Dec 2 15:12:58 1996 Tom Tromey <tromey@cygnus.com>
|
||||||
|
|
||||||
|
* sysv.S: Use .balign, for a.out Linux boxes.
|
||||||
|
|
||||||
|
Tue Oct 15 13:06:50 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c: Clean up based on LCLint output.
|
||||||
|
Added funny /*@...@*/ comments to annotate source.
|
||||||
|
|
||||||
|
Fri Oct 11 16:43:38 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): Added assertion for bad ABIs.
|
||||||
|
|
||||||
|
Wed Oct 9 13:57:27 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* sysv.S (retdouble): Fixed double return problems.
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): Corrected fn arg definition.
|
||||||
|
(ffi_prep_cif_machdep): Fixed double return problems
|
||||||
|
|
||||||
|
Tue Oct 8 12:12:49 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c: Moved ffi_type definitions to types.c.
|
||||||
|
(ffi_prep_args): Fixed type promotion bug.
|
||||||
|
|
||||||
|
Mon Oct 7 15:53:06 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (FFI_*_TYPEDEF): Removed redundant ';'
|
||||||
|
|
||||||
|
Fri Oct 4 09:54:53 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): Removed FFI_ABI arg, and swapped
|
||||||
|
remaining args.
|
||||||
|
|
||||||
|
Wed Oct 2 10:07:05 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c, sysv.S, objects.mak: Created.
|
||||||
|
(ffi_prep_cif): cif->rvalue no longer initialized to NULL.
|
||||||
|
(ffi_prep_cif_machdep): Moved machine independent cif processing
|
||||||
|
to src/prep_cif.c. Introduced ffi_prep_cif_machdep().
|
||||||
|
|
||||||
|
--- libffi/src/mips -------------------------------------------------------
|
||||||
|
|
||||||
|
Tue Feb 17 17:18:07 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* o32.S: Fixed typo in comment.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Fixed argument processing.
|
||||||
|
|
||||||
|
Thu May 8 16:53:58 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* o32.s, n32.s: Wrappers for SGI tool support.
|
||||||
|
|
||||||
|
* objects.mak: Removed.
|
||||||
|
|
||||||
|
Tue Oct 29 14:37:45 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): Changed int z to size_t z.
|
||||||
|
|
||||||
|
Tue Oct 15 13:17:25 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* n32.S: Fixed bad stack munging.
|
||||||
|
|
||||||
|
* ffi.c: Moved prototypes for ffi_call_?32() to here from
|
||||||
|
ffi_mips.h because extended_cif is not defined in ffi_mips.h.
|
||||||
|
|
||||||
|
Mon Oct 14 12:42:02 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c: Interface changes based on feedback from Jim Blandy.
|
||||||
|
|
||||||
|
Thu Oct 10 11:22:16 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* n32.S, ffi.c: Lots of changes to support passing and
|
||||||
|
returning structures with the n32 calling convention.
|
||||||
|
|
||||||
|
* n32.S: Fixed fn pointer bug.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Fix for o32 structure
|
||||||
|
return values.
|
||||||
|
(ffi_prep_args): Fixed n32 structure passing when structures
|
||||||
|
partially fit in registers.
|
||||||
|
|
||||||
|
Wed Oct 9 13:49:25 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* objects.mak: Added n32.o.
|
||||||
|
|
||||||
|
* n32.S: Created.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): Added magic to support proper
|
||||||
|
n32 processing.
|
||||||
|
|
||||||
|
Tue Oct 8 10:37:35 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c: Moved ffi_type definitions to types.c.
|
||||||
|
(ffi_prep_args): Fixed type promotion bug.
|
||||||
|
|
||||||
|
* o32.S: This code is only built for o32 compiles.
|
||||||
|
A lot of the #define cruft has moved to ffi_mips.h.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif_machdep): Fixed arg flags. Second arg
|
||||||
|
is only processed if the first is either a float or double.
|
||||||
|
|
||||||
|
Mon Oct 7 15:33:59 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* o32.S: Modified to compile under each of o32, n32 and n64.
|
||||||
|
|
||||||
|
* ffi.c (FFI_*_TYPEDEF): Removed redundant ';'
|
||||||
|
|
||||||
|
Fri Oct 4 09:53:25 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): Removed FFI_ABI arg, and swapped
|
||||||
|
remaining args.
|
||||||
|
|
||||||
|
Wed Oct 2 17:41:22 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* o32.S: Removed crufty definitions.
|
||||||
|
|
||||||
|
Wed Oct 2 12:53:42 1996 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_cif): cif->rvalue no longer initialized to NULL.
|
||||||
|
(ffi_prep_cif_machdep): Moved all machine independent cif processing
|
||||||
|
to src/prep_cif.c. Introduced ffi_prep_cif_machdep. Return types
|
||||||
|
of FFI_TYPE_STRUCT are no different than FFI_TYPE_INT.
|
||||||
|
|
||||||
|
Tue Oct 1 17:11:02 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c, o32.S, object.mak: Created
|
||||||
|
|
||||||
|
--- libffi/src/sparc ------------------------------------------------------
|
||||||
|
|
||||||
|
Tue Feb 24 16:33:18 1998 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): Added long double support.
|
||||||
|
|
||||||
|
Thu May 8 16:53:58 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* objects.mak: Removed.
|
||||||
|
|
||||||
|
Thu May 1 16:07:56 1997 Anthony Green <green@hoser.cygnus.com>
|
||||||
|
|
||||||
|
* v8.S: Fixed minor portability problem reported by
|
||||||
|
Russ McManus <mcmanr@eq.gs.com>.
|
||||||
|
|
||||||
|
Tue Nov 26 14:12:43 1996 Anthony Green <green@csk3.cygnus.com>
|
||||||
|
|
||||||
|
* v8.S: Used STACKFRAME define elsewhere.
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): Zero out space when USING_PURIFY
|
||||||
|
is set.
|
||||||
|
(ffi_prep_cif_machdep): Allocate the correct stack frame
|
||||||
|
space for functions with < 6 args.
|
||||||
|
|
||||||
|
Tue Oct 29 15:08:55 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c (ffi_prep_args): int z is now size_t z.
|
||||||
|
|
||||||
|
Mon Oct 14 13:31:24 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* v8.S (ffi_call_V8): Gordon rewrites this again. It looks
|
||||||
|
great now.
|
||||||
|
|
||||||
|
* ffi.c (ffi_call): The comment about hijacked registers
|
||||||
|
is no longer valid after gordoni hacked v8.S.
|
||||||
|
|
||||||
|
* v8.S (ffi_call_V8): Rewrote with gordoni. Much simpler.
|
||||||
|
|
||||||
|
* v8.S, ffi.c: ffi_call() had changed to accept more than
|
||||||
|
two args, so v8.S had to change (because it hijacks incoming
|
||||||
|
arg registers).
|
||||||
|
|
||||||
|
* ffi.c: Interface changes based on feedback from Jim Blandy.
|
||||||
|
|
||||||
|
Thu Oct 10 17:48:16 1996 Anthony Green <green@rtl.cygnus.com>
|
||||||
|
|
||||||
|
* ffi.c, v8.S, objects.mak: Created.
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
libffi - Copyright (c) 1996-2008 Red Hat, Inc and others.
|
libffi - Copyright (c) 1996-2009 Anthony Green, Red Hat, Inc and others.
|
||||||
See source files for details.
|
See source files for details.
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
|
|
@ -7,6 +7,7 @@ SUBDIRS = include testsuite man
|
||||||
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
|
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
|
||||||
src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \
|
src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \
|
||||||
src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h \
|
src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h \
|
||||||
|
src/avr32/ffi.c src/avr32/sysv.S src/avr32/ffitarget.h \
|
||||||
src/cris/ffi.c src/cris/sysv.S src/cris/ffitarget.h \
|
src/cris/ffi.c src/cris/sysv.S src/cris/ffitarget.h \
|
||||||
src/ia64/ffi.c src/ia64/ffitarget.h src/ia64/ia64_flags.h \
|
src/ia64/ffi.c src/ia64/ffitarget.h src/ia64/ia64_flags.h \
|
||||||
src/ia64/unix.S \
|
src/ia64/unix.S \
|
||||||
|
@ -25,12 +26,13 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
|
||||||
src/sh64/ffi.c src/sh64/sysv.S src/sh64/ffitarget.h \
|
src/sh64/ffi.c src/sh64/sysv.S src/sh64/ffitarget.h \
|
||||||
src/sparc/v8.S src/sparc/v9.S src/sparc/ffitarget.h \
|
src/sparc/v8.S src/sparc/v9.S src/sparc/ffitarget.h \
|
||||||
src/sparc/ffi.c src/x86/darwin64.S \
|
src/sparc/ffi.c src/x86/darwin64.S \
|
||||||
src/x86/ffi.c src/x86/sysv.S src/x86/win32.S src/x86/darwin.S \
|
src/x86/ffi.c src/x86/sysv.S src/x86/win32.S src/x86/win64.S \
|
||||||
src/x86/freebsd.S \
|
src/x86/darwin.S src/x86/freebsd.S \
|
||||||
src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h \
|
src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h \
|
||||||
src/pa/ffitarget.h src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
|
src/pa/ffitarget.h src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
|
||||||
src/frv/ffi.c src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c \
|
src/frv/ffi.c src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c \
|
||||||
libtool-version ChangeLog.libffi
|
libtool-version ChangeLog.libffi m4/libtool.m4 \
|
||||||
|
m4/lt~obsolete.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4
|
||||||
|
|
||||||
info_TEXINFOS = doc/libffi.texi
|
info_TEXINFOS = doc/libffi.texi
|
||||||
|
|
||||||
|
@ -79,6 +81,8 @@ AM_MAKEFLAGS = \
|
||||||
|
|
||||||
MAKEOVERRIDES=
|
MAKEOVERRIDES=
|
||||||
|
|
||||||
|
ACLOCAL_AMFLAGS=$(ACLOCAL_AMFLAGS) -I m4
|
||||||
|
|
||||||
lib_LTLIBRARIES = libffi.la
|
lib_LTLIBRARIES = libffi.la
|
||||||
noinst_LTLIBRARIES = libffi_convenience.la
|
noinst_LTLIBRARIES = libffi_convenience.la
|
||||||
|
|
||||||
|
@ -102,6 +106,9 @@ endif
|
||||||
if X86_WIN32
|
if X86_WIN32
|
||||||
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win32.S
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win32.S
|
||||||
endif
|
endif
|
||||||
|
if X86_WIN64
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win64.S
|
||||||
|
endif
|
||||||
if X86_DARWIN
|
if X86_DARWIN
|
||||||
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S
|
||||||
endif
|
endif
|
||||||
|
@ -135,6 +142,9 @@ endif
|
||||||
if ARM
|
if ARM
|
||||||
nodist_libffi_la_SOURCES += src/arm/sysv.S src/arm/ffi.c
|
nodist_libffi_la_SOURCES += src/arm/sysv.S src/arm/ffi.c
|
||||||
endif
|
endif
|
||||||
|
if AVR32
|
||||||
|
nodist_libffi_la_SOURCES += src/avr32/sysv.S src/avr32/ffi.c
|
||||||
|
endif
|
||||||
if LIBFFI_CRIS
|
if LIBFFI_CRIS
|
||||||
nodist_libffi_la_SOURCES += src/cris/sysv.S src/cris/ffi.c
|
nodist_libffi_la_SOURCES += src/cris/sysv.S src/cris/ffi.c
|
||||||
endif
|
endif
|
||||||
|
@ -165,7 +175,7 @@ nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
||||||
|
|
||||||
AM_CFLAGS = -Wall -g -fexceptions
|
AM_CFLAGS = -Wall -g -fexceptions
|
||||||
|
|
||||||
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
|
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(AM_LTLDFLAGS)
|
||||||
|
|
||||||
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
|
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
|
||||||
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,7 +1,7 @@
|
||||||
Status
|
Status
|
||||||
======
|
======
|
||||||
|
|
||||||
libffi-3.0.5 was released on April 3, 2008. Check the libffi web
|
libffi-3.0.9 was released on December 31, 2009. Check the libffi web
|
||||||
page for updates: <URL:http://sourceware.org/libffi/>.
|
page for updates: <URL:http://sourceware.org/libffi/>.
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,11 +10,11 @@ What is libffi?
|
||||||
|
|
||||||
Compilers for high level languages generate code that follow certain
|
Compilers for high level languages generate code that follow certain
|
||||||
conventions. These conventions are necessary, in part, for separate
|
conventions. These conventions are necessary, in part, for separate
|
||||||
compilation to work. One such convention is the "calling convention".
|
compilation to work. One such convention is the "calling
|
||||||
The "calling convention" is a set of assumptions made by the compiler
|
convention". The "calling convention" is essentially a set of
|
||||||
about where function arguments will be found on entry to a function.
|
assumptions made by the compiler about where function arguments will
|
||||||
A "calling convention" also specifies where the return value for a
|
be found on entry to a function. A "calling convention" also specifies
|
||||||
function is found.
|
where the return value for a function is found.
|
||||||
|
|
||||||
Some programs may not know at the time of compilation what arguments
|
Some programs may not know at the time of compilation what arguments
|
||||||
are to be passed to a function. For instance, an interpreter may be
|
are to be passed to a function. For instance, an interpreter may be
|
||||||
|
@ -39,36 +39,56 @@ between the two languages.
|
||||||
Supported Platforms
|
Supported Platforms
|
||||||
===================
|
===================
|
||||||
|
|
||||||
Libffi has been ported to many different platforms, although this
|
Libffi has been ported to many different platforms.
|
||||||
release was only tested on:
|
For specific configuration details and testing status, please
|
||||||
|
refer to the wiki page here:
|
||||||
|
|
||||||
arm oabi linux
|
http://www.moxielogic.org/wiki/index.php?title=Libffi_3.0.9
|
||||||
arm eabi linux
|
|
||||||
hppa linux
|
At the time of release, the following basic configurations have been
|
||||||
mips o32 linux (little endian)
|
tested:
|
||||||
powerpc darwin
|
|
||||||
powerpc64 linux
|
|--------------+------------------|
|
||||||
sparc solaris
|
| Architecture | Operating System |
|
||||||
sparc64 solaris
|
|--------------+------------------|
|
||||||
x86 cygwin
|
| Alpha | Linux |
|
||||||
x86 darwin
|
| ARM | Linux |
|
||||||
x86 freebsd
|
| AVR32 | Linux |
|
||||||
x86 linux
|
| HPPA | HPUX |
|
||||||
x86 openbsd
|
| IA-64 | Linux |
|
||||||
x86-64 darwin
|
| MIPS | IRIX |
|
||||||
x86-64 linux
|
| MIPS | Linux |
|
||||||
x86-64 OS X
|
| MIPS64 | Linux |
|
||||||
x86-64 freebsd
|
| PowerPC | Linux |
|
||||||
|
| PowerPC | Mac OSX |
|
||||||
|
| PowerPC | FreeBSD |
|
||||||
|
| PowerPC64 | Linux |
|
||||||
|
| S390 | Linux |
|
||||||
|
| S390X | Linux |
|
||||||
|
| SPARC | Linux |
|
||||||
|
| SPARC | Solaris |
|
||||||
|
| SPARC64 | Linux |
|
||||||
|
| SPARC64 | FreeBSD |
|
||||||
|
| X86 | FreeBSD |
|
||||||
|
| X86 | kFreeBSD |
|
||||||
|
| X86 | Linux |
|
||||||
|
| X86 | Mac OSX |
|
||||||
|
| X86 | OpenBSD |
|
||||||
|
| X86 | Solaris |
|
||||||
|
| X86 | Windows/Cygwin |
|
||||||
|
| X86 | Windows/MingW |
|
||||||
|
| X86-64 | FreeBSD |
|
||||||
|
| X86-64 | Linux |
|
||||||
|
| X86-64 | OpenBSD |
|
||||||
|
|--------------+------------------|
|
||||||
|
|
||||||
Please send additional platform test results to
|
Please send additional platform test results to
|
||||||
libffi-discuss@sourceware.org.
|
libffi-discuss@sourceware.org and feel free to update the wiki page
|
||||||
|
above.
|
||||||
|
|
||||||
Installing libffi
|
Installing libffi
|
||||||
=================
|
=================
|
||||||
|
|
||||||
[Note: before actually performing any of these installation steps,
|
|
||||||
you may wish to read the "Platform Specific Notes" below.]
|
|
||||||
|
|
||||||
First you must configure the distribution for your particular
|
First you must configure the distribution for your particular
|
||||||
system. Go to the directory you wish to build libffi in and run the
|
system. Go to the directory you wish to build libffi in and run the
|
||||||
"configure" program found in the root directory of the libffi source
|
"configure" program found in the root directory of the libffi source
|
||||||
|
@ -98,66 +118,29 @@ This will require that you have DejaGNU installed.
|
||||||
To install the library and header files, type "make install".
|
To install the library and header files, type "make install".
|
||||||
|
|
||||||
|
|
||||||
Platform Specific Notes
|
|
||||||
=======================
|
|
||||||
|
|
||||||
MIPS - Irix 5.3 & 6.x
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
Irix 6.2 and better supports three different calling conventions: o32,
|
|
||||||
n32 and n64. Currently, libffi only supports both o32 and n32 under
|
|
||||||
Irix 6.x, but only o32 under Irix 5.3. Libffi will automatically be
|
|
||||||
configured for whichever calling convention it was built for.
|
|
||||||
|
|
||||||
By default, the configure script will try to build libffi with the GNU
|
|
||||||
development tools. To build libffi with the SGI development tools, set
|
|
||||||
the environment variable CC to either "cc -32" or "cc -n32" before
|
|
||||||
running configure under Irix 6.x (depending on whether you want an o32
|
|
||||||
or n32 library), or just "cc" for Irix 5.3.
|
|
||||||
|
|
||||||
With the n32 calling convention, when returning structures smaller
|
|
||||||
than 16 bytes, be sure to provide an RVALUE that is 8 byte aligned.
|
|
||||||
Here's one way of forcing this:
|
|
||||||
|
|
||||||
double struct_storage[2];
|
|
||||||
my_small_struct *s = (my_small_struct *) struct_storage;
|
|
||||||
/* Use s for RVALUE */
|
|
||||||
|
|
||||||
If you don't do this you are liable to get spurious bus errors.
|
|
||||||
|
|
||||||
"long long" values are not supported yet.
|
|
||||||
|
|
||||||
You must use GNU Make to build libffi on SGI platforms.
|
|
||||||
|
|
||||||
|
|
||||||
PowerPC System V ABI
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
There are two `System V ABI's which libffi implements for PowerPC.
|
|
||||||
They differ only in how small structures are returned from functions.
|
|
||||||
|
|
||||||
In the FFI_SYSV version, structures that are 8 bytes or smaller are
|
|
||||||
returned in registers. This is what GCC does when it is configured
|
|
||||||
for solaris, and is what the System V ABI I have (dated September
|
|
||||||
1995) says.
|
|
||||||
|
|
||||||
In the FFI_GCC_SYSV version, all structures are returned the same way:
|
|
||||||
by passing a pointer as the first argument to the function. This is
|
|
||||||
what GCC does when it is configured for linux or a generic sysv
|
|
||||||
target.
|
|
||||||
|
|
||||||
EGCS 1.0.1 (and probably other versions of EGCS/GCC) also has a
|
|
||||||
inconsistency with the SysV ABI: When a procedure is called with many
|
|
||||||
floating-point arguments, some of them get put on the stack. They are
|
|
||||||
all supposed to be stored in double-precision format, even if they are
|
|
||||||
only single-precision, but EGCS stores single-precision arguments as
|
|
||||||
single-precision anyway. This causes one test to fail (the `many
|
|
||||||
arguments' test).
|
|
||||||
|
|
||||||
|
|
||||||
History
|
History
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
See the ChangeLog files for details.
|
||||||
|
|
||||||
|
3.0.9 Dec-31-09
|
||||||
|
Add AVR32 and win64 ports. Add ARM softfp support.
|
||||||
|
Many fixes for AIX, Solaris, HP-UX, *BSD.
|
||||||
|
Several PowerPC and x86-64 bug fixes.
|
||||||
|
Build DLL for windows.
|
||||||
|
|
||||||
|
3.0.8 Dec-19-08
|
||||||
|
Add *BSD, BeOS, and PA-Linux support.
|
||||||
|
|
||||||
|
3.0.7 Nov-11-08
|
||||||
|
Fix for ppc FreeBSD.
|
||||||
|
(thanks to Andreas Tobler)
|
||||||
|
|
||||||
|
3.0.6 Jul-17-08
|
||||||
|
Fix for closures on sh.
|
||||||
|
Mark the sh/sh64 stack as non-executable.
|
||||||
|
(both thanks to Kaz Kojima)
|
||||||
|
|
||||||
3.0.5 Apr-3-08
|
3.0.5 Apr-3-08
|
||||||
Fix libffi.pc file.
|
Fix libffi.pc file.
|
||||||
Fix #define ARM for IcedTea users.
|
Fix #define ARM for IcedTea users.
|
||||||
|
|
6819
Modules/_ctypes/libffi/aclocal.m4
vendored
6819
Modules/_ctypes/libffi/aclocal.m4
vendored
File diff suppressed because it is too large
Load diff
142
Modules/_ctypes/libffi/compile
Executable file
142
Modules/_ctypes/libffi/compile
Executable file
|
@ -0,0 +1,142 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# Wrapper for compilers which do not understand `-c -o'.
|
||||||
|
|
||||||
|
scriptversion=2005-05-14.22
|
||||||
|
|
||||||
|
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# This file is maintained in Automake, please report
|
||||||
|
# bugs to <bug-automake@gnu.org> or send patches to
|
||||||
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Wrapper for compilers which do not understand `-c -o'.
|
||||||
|
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||||
|
arguments, and rename the output as expected.
|
||||||
|
|
||||||
|
If you are trying to build a whole package this is not the
|
||||||
|
right script to run: please start by reading the file `INSTALL'.
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "compile $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ofile=
|
||||||
|
cfile=
|
||||||
|
eat=
|
||||||
|
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$eat"; then
|
||||||
|
eat=
|
||||||
|
else
|
||||||
|
case $1 in
|
||||||
|
-o)
|
||||||
|
# configure might choose to run compile as `compile cc -o foo foo.c'.
|
||||||
|
# So we strip `-o arg' only if arg is an object.
|
||||||
|
eat=1
|
||||||
|
case $2 in
|
||||||
|
*.o | *.obj)
|
||||||
|
ofile=$2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" -o "$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*.c)
|
||||||
|
cfile=$1
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$ofile" || test -z "$cfile"; then
|
||||||
|
# If no `-o' option was seen then we might have been invoked from a
|
||||||
|
# pattern rule where we don't need one. That is ok -- this is a
|
||||||
|
# normal compilation that the losing compiler can handle. If no
|
||||||
|
# `.c' file was seen then we are probably linking. That is also
|
||||||
|
# ok.
|
||||||
|
exec "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Name of file we expect compiler to create.
|
||||||
|
cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
|
||||||
|
|
||||||
|
# Create the lock directory.
|
||||||
|
# Note: use `[/.-]' here to ensure that we don't use the same name
|
||||||
|
# that we are using for the .o file. Also, base the name on the expected
|
||||||
|
# object file name, since that is what matters with a parallel build.
|
||||||
|
lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
|
||||||
|
while true; do
|
||||||
|
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
# FIXME: race condition here if user kills between mkdir and trap.
|
||||||
|
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||||
|
|
||||||
|
# Run the compile.
|
||||||
|
"$@"
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
if test -f "$cofile"; then
|
||||||
|
mv "$cofile" "$ofile"
|
||||||
|
elif test -f "${cofile}bj"; then
|
||||||
|
mv "${cofile}bj" "$ofile"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rmdir "$lockdir"
|
||||||
|
exit $ret
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
264
Modules/_ctypes/libffi/config.guess
vendored
264
Modules/_ctypes/libffi/config.guess
vendored
|
@ -1,10 +1,10 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Attempt to guess a canonical system name.
|
# Attempt to guess a canonical system name.
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
|
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||||
# Inc.
|
# Free Software Foundation, Inc.
|
||||||
|
|
||||||
timestamp='2007-05-17'
|
timestamp='2009-11-19'
|
||||||
|
|
||||||
# This file is free software; you can redistribute it and/or modify it
|
# This file is free software; you can redistribute it and/or modify it
|
||||||
# under the terms of the GNU General Public License as published by
|
# under the terms of the GNU General Public License as published by
|
||||||
|
@ -27,16 +27,16 @@ timestamp='2007-05-17'
|
||||||
# the same distribution terms that you use for the rest of that program.
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
|
||||||
# Originally written by Per Bothner <per@bothner.com>.
|
# Originally written by Per Bothner. Please send patches (context
|
||||||
# Please send patches to <config-patches@gnu.org>. Submit a context
|
# diff format) to <config-patches@gnu.org> and include a ChangeLog
|
||||||
# diff and a properly formatted ChangeLog entry.
|
# entry.
|
||||||
#
|
#
|
||||||
# This script attempts to guess a canonical system name similar to
|
# This script attempts to guess a canonical system name similar to
|
||||||
# config.sub. If it succeeds, it prints the system name on stdout, and
|
# config.sub. If it succeeds, it prints the system name on stdout, and
|
||||||
# exits with 0. Otherwise, it exits with 1.
|
# exits with 0. Otherwise, it exits with 1.
|
||||||
#
|
#
|
||||||
# The plan is that this can be called by configure scripts if you
|
# You can get the latest version of this script from:
|
||||||
# don't specify an explicit build system type.
|
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
|
||||||
|
|
||||||
me=`echo "$0" | sed -e 's,.*/,,'`
|
me=`echo "$0" | sed -e 's,.*/,,'`
|
||||||
|
|
||||||
|
@ -56,8 +56,8 @@ version="\
|
||||||
GNU config.guess ($timestamp)
|
GNU config.guess ($timestamp)
|
||||||
|
|
||||||
Originally written by Per Bothner.
|
Originally written by Per Bothner.
|
||||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
||||||
Free Software Foundation, Inc.
|
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This is free software; see the source for copying conditions. There is NO
|
This is free software; see the source for copying conditions. There is NO
|
||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||||
|
@ -170,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||||
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
||||||
eval $set_cc_for_build
|
eval $set_cc_for_build
|
||||||
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||||
| grep __ELF__ >/dev/null
|
| grep -q __ELF__
|
||||||
then
|
then
|
||||||
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
|
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
|
||||||
# Return netbsd for either. FIX?
|
# Return netbsd for either. FIX?
|
||||||
|
@ -324,14 +324,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||||
case `/usr/bin/uname -p` in
|
case `/usr/bin/uname -p` in
|
||||||
sparc) echo sparc-icl-nx7; exit ;;
|
sparc) echo sparc-icl-nx7; exit ;;
|
||||||
esac ;;
|
esac ;;
|
||||||
|
s390x:SunOS:*:*)
|
||||||
|
echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||||
|
exit ;;
|
||||||
sun4H:SunOS:5.*:*)
|
sun4H:SunOS:5.*:*)
|
||||||
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||||
exit ;;
|
exit ;;
|
||||||
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
|
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
|
||||||
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||||
exit ;;
|
exit ;;
|
||||||
i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*)
|
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
|
||||||
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
eval $set_cc_for_build
|
||||||
|
SUN_ARCH="i386"
|
||||||
|
# If there is a compiler, see if it is configured for 64-bit objects.
|
||||||
|
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
|
||||||
|
# This test works for both compilers.
|
||||||
|
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
|
||||||
|
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
|
||||||
|
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||||
|
grep IS_64BIT_ARCH >/dev/null
|
||||||
|
then
|
||||||
|
SUN_ARCH="x86_64"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||||
exit ;;
|
exit ;;
|
||||||
sun4*:SunOS:6*:*)
|
sun4*:SunOS:6*:*)
|
||||||
# According to config.sub, this is the proper way to canonicalize
|
# According to config.sub, this is the proper way to canonicalize
|
||||||
|
@ -532,7 +548,7 @@ EOF
|
||||||
echo rs6000-ibm-aix3.2
|
echo rs6000-ibm-aix3.2
|
||||||
fi
|
fi
|
||||||
exit ;;
|
exit ;;
|
||||||
*:AIX:*:[45])
|
*:AIX:*:[456])
|
||||||
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
|
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
|
||||||
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
|
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
|
||||||
IBM_ARCH=rs6000
|
IBM_ARCH=rs6000
|
||||||
|
@ -640,7 +656,7 @@ EOF
|
||||||
# => hppa64-hp-hpux11.23
|
# => hppa64-hp-hpux11.23
|
||||||
|
|
||||||
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
|
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
|
||||||
grep __LP64__ >/dev/null
|
grep -q __LP64__
|
||||||
then
|
then
|
||||||
HP_ARCH="hppa2.0w"
|
HP_ARCH="hppa2.0w"
|
||||||
else
|
else
|
||||||
|
@ -791,18 +807,24 @@ EOF
|
||||||
i*:PW*:*)
|
i*:PW*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-pw32
|
echo ${UNAME_MACHINE}-pc-pw32
|
||||||
exit ;;
|
exit ;;
|
||||||
*:Interix*:[3456]*)
|
*:Interix*:*)
|
||||||
case ${UNAME_MACHINE} in
|
case ${UNAME_MACHINE} in
|
||||||
x86)
|
x86)
|
||||||
echo i586-pc-interix${UNAME_RELEASE}
|
echo i586-pc-interix${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
EM64T | authenticamd)
|
authenticamd | genuineintel | EM64T)
|
||||||
echo x86_64-unknown-interix${UNAME_RELEASE}
|
echo x86_64-unknown-interix${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
|
IA64)
|
||||||
|
echo ia64-unknown-interix${UNAME_RELEASE}
|
||||||
|
exit ;;
|
||||||
esac ;;
|
esac ;;
|
||||||
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
|
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
|
||||||
echo i${UNAME_MACHINE}-pc-mks
|
echo i${UNAME_MACHINE}-pc-mks
|
||||||
exit ;;
|
exit ;;
|
||||||
|
8664:Windows_NT:*)
|
||||||
|
echo x86_64-pc-mks
|
||||||
|
exit ;;
|
||||||
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
||||||
# How do we know it's Interix rather than the generic POSIX subsystem?
|
# How do we know it's Interix rather than the generic POSIX subsystem?
|
||||||
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
||||||
|
@ -832,8 +854,29 @@ EOF
|
||||||
i*86:Minix:*:*)
|
i*86:Minix:*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-minix
|
echo ${UNAME_MACHINE}-pc-minix
|
||||||
exit ;;
|
exit ;;
|
||||||
|
alpha:Linux:*:*)
|
||||||
|
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
||||||
|
EV5) UNAME_MACHINE=alphaev5 ;;
|
||||||
|
EV56) UNAME_MACHINE=alphaev56 ;;
|
||||||
|
PCA56) UNAME_MACHINE=alphapca56 ;;
|
||||||
|
PCA57) UNAME_MACHINE=alphapca56 ;;
|
||||||
|
EV6) UNAME_MACHINE=alphaev6 ;;
|
||||||
|
EV67) UNAME_MACHINE=alphaev67 ;;
|
||||||
|
EV68*) UNAME_MACHINE=alphaev68 ;;
|
||||||
|
esac
|
||||||
|
objdump --private-headers /bin/sh | grep -q ld.so.1
|
||||||
|
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
||||||
|
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
||||||
|
exit ;;
|
||||||
arm*:Linux:*:*)
|
arm*:Linux:*:*)
|
||||||
|
eval $set_cc_for_build
|
||||||
|
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||||
|
| grep -q __ARM_EABI__
|
||||||
|
then
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
|
else
|
||||||
|
echo ${UNAME_MACHINE}-unknown-linux-gnueabi
|
||||||
|
fi
|
||||||
exit ;;
|
exit ;;
|
||||||
avr32*:Linux:*:*)
|
avr32*:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
|
@ -847,6 +890,17 @@ EOF
|
||||||
frv:Linux:*:*)
|
frv:Linux:*:*)
|
||||||
echo frv-unknown-linux-gnu
|
echo frv-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
|
i*86:Linux:*:*)
|
||||||
|
LIBC=gnu
|
||||||
|
eval $set_cc_for_build
|
||||||
|
sed 's/^ //' << EOF >$dummy.c
|
||||||
|
#ifdef __dietlibc__
|
||||||
|
LIBC=dietlibc
|
||||||
|
#endif
|
||||||
|
EOF
|
||||||
|
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
|
||||||
|
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
|
||||||
|
exit ;;
|
||||||
ia64:Linux:*:*)
|
ia64:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
|
@ -856,74 +910,33 @@ EOF
|
||||||
m68*:Linux:*:*)
|
m68*:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
mips:Linux:*:*)
|
mips:Linux:*:* | mips64:Linux:*:*)
|
||||||
eval $set_cc_for_build
|
eval $set_cc_for_build
|
||||||
sed 's/^ //' << EOF >$dummy.c
|
sed 's/^ //' << EOF >$dummy.c
|
||||||
#undef CPU
|
#undef CPU
|
||||||
#undef mips
|
#undef ${UNAME_MACHINE}
|
||||||
#undef mipsel
|
#undef ${UNAME_MACHINE}el
|
||||||
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
||||||
CPU=mipsel
|
CPU=${UNAME_MACHINE}el
|
||||||
#else
|
#else
|
||||||
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
||||||
CPU=mips
|
CPU=${UNAME_MACHINE}
|
||||||
#else
|
#else
|
||||||
CPU=
|
CPU=
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
EOF
|
EOF
|
||||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
|
||||||
/^CPU/{
|
|
||||||
s: ::g
|
|
||||||
p
|
|
||||||
}'`"
|
|
||||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
|
||||||
;;
|
|
||||||
mips64:Linux:*:*)
|
|
||||||
eval $set_cc_for_build
|
|
||||||
sed 's/^ //' << EOF >$dummy.c
|
|
||||||
#undef CPU
|
|
||||||
#undef mips64
|
|
||||||
#undef mips64el
|
|
||||||
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
|
||||||
CPU=mips64el
|
|
||||||
#else
|
|
||||||
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
|
||||||
CPU=mips64
|
|
||||||
#else
|
|
||||||
CPU=
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
EOF
|
|
||||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
|
||||||
/^CPU/{
|
|
||||||
s: ::g
|
|
||||||
p
|
|
||||||
}'`"
|
|
||||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
||||||
;;
|
;;
|
||||||
or32:Linux:*:*)
|
or32:Linux:*:*)
|
||||||
echo or32-unknown-linux-gnu
|
echo or32-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
ppc:Linux:*:*)
|
padre:Linux:*:*)
|
||||||
echo powerpc-unknown-linux-gnu
|
echo sparc-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
ppc64:Linux:*:*)
|
parisc64:Linux:*:* | hppa64:Linux:*:*)
|
||||||
echo powerpc64-unknown-linux-gnu
|
echo hppa64-unknown-linux-gnu
|
||||||
exit ;;
|
|
||||||
alpha:Linux:*:*)
|
|
||||||
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
|
||||||
EV5) UNAME_MACHINE=alphaev5 ;;
|
|
||||||
EV56) UNAME_MACHINE=alphaev56 ;;
|
|
||||||
PCA56) UNAME_MACHINE=alphapca56 ;;
|
|
||||||
PCA57) UNAME_MACHINE=alphapca56 ;;
|
|
||||||
EV6) UNAME_MACHINE=alphaev6 ;;
|
|
||||||
EV67) UNAME_MACHINE=alphaev67 ;;
|
|
||||||
EV68*) UNAME_MACHINE=alphaev68 ;;
|
|
||||||
esac
|
|
||||||
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
|
|
||||||
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
|
||||||
exit ;;
|
exit ;;
|
||||||
parisc:Linux:*:* | hppa:Linux:*:*)
|
parisc:Linux:*:* | hppa:Linux:*:*)
|
||||||
# Look for CPU level
|
# Look for CPU level
|
||||||
|
@ -933,8 +946,11 @@ EOF
|
||||||
*) echo hppa-unknown-linux-gnu ;;
|
*) echo hppa-unknown-linux-gnu ;;
|
||||||
esac
|
esac
|
||||||
exit ;;
|
exit ;;
|
||||||
parisc64:Linux:*:* | hppa64:Linux:*:*)
|
ppc64:Linux:*:*)
|
||||||
echo hppa64-unknown-linux-gnu
|
echo powerpc64-unknown-linux-gnu
|
||||||
|
exit ;;
|
||||||
|
ppc:Linux:*:*)
|
||||||
|
echo powerpc-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
s390:Linux:*:* | s390x:Linux:*:*)
|
s390:Linux:*:* | s390x:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-ibm-linux
|
echo ${UNAME_MACHINE}-ibm-linux
|
||||||
|
@ -954,72 +970,9 @@ EOF
|
||||||
x86_64:Linux:*:*)
|
x86_64:Linux:*:*)
|
||||||
echo x86_64-unknown-linux-gnu
|
echo x86_64-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
xtensa:Linux:*:*)
|
xtensa*:Linux:*:*)
|
||||||
echo xtensa-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:Linux:*:*)
|
|
||||||
# The BFD linker knows what the default object file format is, so
|
|
||||||
# first see if it will tell us. cd to the root directory to prevent
|
|
||||||
# problems with other programs or directories called `ld' in the path.
|
|
||||||
# Set LC_ALL=C to ensure ld outputs messages in English.
|
|
||||||
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
|
|
||||||
| sed -ne '/supported targets:/!d
|
|
||||||
s/[ ][ ]*/ /g
|
|
||||||
s/.*supported targets: *//
|
|
||||||
s/ .*//
|
|
||||||
p'`
|
|
||||||
case "$ld_supported_targets" in
|
|
||||||
elf32-i386)
|
|
||||||
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
|
|
||||||
;;
|
|
||||||
a.out-i386-linux)
|
|
||||||
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
|
|
||||||
exit ;;
|
|
||||||
coff-i386)
|
|
||||||
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
|
|
||||||
exit ;;
|
|
||||||
"")
|
|
||||||
# Either a pre-BFD a.out linker (linux-gnuoldld) or
|
|
||||||
# one that does not give us useful --help.
|
|
||||||
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
|
|
||||||
exit ;;
|
|
||||||
esac
|
|
||||||
# Determine whether the default compiler is a.out or elf
|
|
||||||
eval $set_cc_for_build
|
|
||||||
sed 's/^ //' << EOF >$dummy.c
|
|
||||||
#include <features.h>
|
|
||||||
#ifdef __ELF__
|
|
||||||
# ifdef __GLIBC__
|
|
||||||
# if __GLIBC__ >= 2
|
|
||||||
LIBC=gnu
|
|
||||||
# else
|
|
||||||
LIBC=gnulibc1
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
LIBC=gnulibc1
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
|
|
||||||
LIBC=gnu
|
|
||||||
#else
|
|
||||||
LIBC=gnuaout
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#ifdef __dietlibc__
|
|
||||||
LIBC=dietlibc
|
|
||||||
#endif
|
|
||||||
EOF
|
|
||||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
|
||||||
/^LIBC/{
|
|
||||||
s: ::g
|
|
||||||
p
|
|
||||||
}'`"
|
|
||||||
test x"${LIBC}" != x && {
|
|
||||||
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
|
|
||||||
;;
|
|
||||||
i*86:DYNIX/ptx:4*:*)
|
i*86:DYNIX/ptx:4*:*)
|
||||||
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
|
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
|
||||||
# earlier versions are messed up and put the nodename in both
|
# earlier versions are messed up and put the nodename in both
|
||||||
|
@ -1048,7 +1001,7 @@ EOF
|
||||||
i*86:syllable:*:*)
|
i*86:syllable:*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-syllable
|
echo ${UNAME_MACHINE}-pc-syllable
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
|
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
|
||||||
echo i386-unknown-lynxos${UNAME_RELEASE}
|
echo i386-unknown-lynxos${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:*DOS:*:*)
|
i*86:*DOS:*:*)
|
||||||
|
@ -1092,8 +1045,11 @@ EOF
|
||||||
pc:*:*:*)
|
pc:*:*:*)
|
||||||
# Left here for compatibility:
|
# Left here for compatibility:
|
||||||
# uname -m prints for DJGPP always 'pc', but it prints nothing about
|
# uname -m prints for DJGPP always 'pc', but it prints nothing about
|
||||||
# the processor, so we play safe by assuming i386.
|
# the processor, so we play safe by assuming i586.
|
||||||
echo i386-pc-msdosdjgpp
|
# Note: whatever this is, it MUST be the same as what config.sub
|
||||||
|
# prints for the "djgpp" host, or else GDB configury will decide that
|
||||||
|
# this is a cross-build.
|
||||||
|
echo i586-pc-msdosdjgpp
|
||||||
exit ;;
|
exit ;;
|
||||||
Intel:Mach:3*:*)
|
Intel:Mach:3*:*)
|
||||||
echo i386-pc-mach3
|
echo i386-pc-mach3
|
||||||
|
@ -1131,6 +1087,16 @@ EOF
|
||||||
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
|
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
|
||||||
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||||
&& { echo i486-ncr-sysv4; exit; } ;;
|
&& { echo i486-ncr-sysv4; exit; } ;;
|
||||||
|
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
|
||||||
|
OS_REL='.3'
|
||||||
|
test -r /etc/.relid \
|
||||||
|
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
|
||||||
|
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||||
|
&& { echo i486-ncr-sysv4.3${OS_REL}; exit; }
|
||||||
|
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
|
||||||
|
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; }
|
||||||
|
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
|
||||||
|
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
|
||||||
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
|
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
|
||||||
echo m68k-unknown-lynxos${UNAME_RELEASE}
|
echo m68k-unknown-lynxos${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
|
@ -1143,7 +1109,7 @@ EOF
|
||||||
rs6000:LynxOS:2.*:*)
|
rs6000:LynxOS:2.*:*)
|
||||||
echo rs6000-unknown-lynxos${UNAME_RELEASE}
|
echo rs6000-unknown-lynxos${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
|
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
|
||||||
echo powerpc-unknown-lynxos${UNAME_RELEASE}
|
echo powerpc-unknown-lynxos${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
SM[BE]S:UNIX_SV:*:*)
|
SM[BE]S:UNIX_SV:*:*)
|
||||||
|
@ -1206,6 +1172,9 @@ EOF
|
||||||
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
|
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
|
||||||
echo i586-pc-beos
|
echo i586-pc-beos
|
||||||
exit ;;
|
exit ;;
|
||||||
|
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
|
||||||
|
echo i586-pc-haiku
|
||||||
|
exit ;;
|
||||||
SX-4:SUPER-UX:*:*)
|
SX-4:SUPER-UX:*:*)
|
||||||
echo sx4-nec-superux${UNAME_RELEASE}
|
echo sx4-nec-superux${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
|
@ -1233,6 +1202,16 @@ EOF
|
||||||
*:Darwin:*:*)
|
*:Darwin:*:*)
|
||||||
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
|
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
|
||||||
case $UNAME_PROCESSOR in
|
case $UNAME_PROCESSOR in
|
||||||
|
i386)
|
||||||
|
eval $set_cc_for_build
|
||||||
|
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
|
||||||
|
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
|
||||||
|
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||||
|
grep IS_64BIT_ARCH >/dev/null
|
||||||
|
then
|
||||||
|
UNAME_PROCESSOR="x86_64"
|
||||||
|
fi
|
||||||
|
fi ;;
|
||||||
unknown) UNAME_PROCESSOR=powerpc ;;
|
unknown) UNAME_PROCESSOR=powerpc ;;
|
||||||
esac
|
esac
|
||||||
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
|
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
|
||||||
|
@ -1314,6 +1293,9 @@ EOF
|
||||||
i*86:rdos:*:*)
|
i*86:rdos:*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-rdos
|
echo ${UNAME_MACHINE}-pc-rdos
|
||||||
exit ;;
|
exit ;;
|
||||||
|
i*86:AROS:*:*)
|
||||||
|
echo ${UNAME_MACHINE}-pc-aros
|
||||||
|
exit ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
#echo '(No uname command or uname output not recognized.)' 1>&2
|
#echo '(No uname command or uname output not recognized.)' 1>&2
|
||||||
|
@ -1474,9 +1456,9 @@ This script, last modified $timestamp, has failed to recognize
|
||||||
the operating system you are using. It is advised that you
|
the operating system you are using. It is advised that you
|
||||||
download the most up to date version of the config scripts from
|
download the most up to date version of the config scripts from
|
||||||
|
|
||||||
http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
|
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
|
||||||
and
|
and
|
||||||
http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
|
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
|
||||||
|
|
||||||
If the version you run ($0) is already up to date, please
|
If the version you run ($0) is already up to date, please
|
||||||
send the following data and any information you think might be
|
send the following data and any information you think might be
|
||||||
|
|
130
Modules/_ctypes/libffi/config.sub
vendored
130
Modules/_ctypes/libffi/config.sub
vendored
|
@ -1,10 +1,10 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Configuration validation subroutine script.
|
# Configuration validation subroutine script.
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
|
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||||
# Inc.
|
# Free Software Foundation, Inc.
|
||||||
|
|
||||||
timestamp='2007-04-29'
|
timestamp='2009-11-07'
|
||||||
|
|
||||||
# This file is (in principle) common to ALL GNU software.
|
# This file is (in principle) common to ALL GNU software.
|
||||||
# The presence of a machine in this file suggests that SOME GNU software
|
# The presence of a machine in this file suggests that SOME GNU software
|
||||||
|
@ -32,13 +32,16 @@ timestamp='2007-04-29'
|
||||||
|
|
||||||
|
|
||||||
# Please send patches to <config-patches@gnu.org>. Submit a context
|
# Please send patches to <config-patches@gnu.org>. Submit a context
|
||||||
# diff and a properly formatted ChangeLog entry.
|
# diff and a properly formatted GNU ChangeLog entry.
|
||||||
#
|
#
|
||||||
# Configuration subroutine to validate and canonicalize a configuration type.
|
# Configuration subroutine to validate and canonicalize a configuration type.
|
||||||
# Supply the specified configuration type as an argument.
|
# Supply the specified configuration type as an argument.
|
||||||
# If it is invalid, we print an error message on stderr and exit with code 1.
|
# If it is invalid, we print an error message on stderr and exit with code 1.
|
||||||
# Otherwise, we print the canonical config type on stdout and succeed.
|
# Otherwise, we print the canonical config type on stdout and succeed.
|
||||||
|
|
||||||
|
# You can get the latest version of this script from:
|
||||||
|
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
|
||||||
|
|
||||||
# This file is supposed to be the same for all GNU packages
|
# This file is supposed to be the same for all GNU packages
|
||||||
# and recognize all the CPU types, system types and aliases
|
# and recognize all the CPU types, system types and aliases
|
||||||
# that are meaningful with *any* GNU software.
|
# that are meaningful with *any* GNU software.
|
||||||
|
@ -72,8 +75,8 @@ Report bugs and patches to <config-patches@gnu.org>."
|
||||||
version="\
|
version="\
|
||||||
GNU config.sub ($timestamp)
|
GNU config.sub ($timestamp)
|
||||||
|
|
||||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
||||||
Free Software Foundation, Inc.
|
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This is free software; see the source for copying conditions. There is NO
|
This is free software; see the source for copying conditions. There is NO
|
||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||||
|
@ -122,6 +125,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||||
case $maybe_os in
|
case $maybe_os in
|
||||||
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
|
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
|
||||||
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
|
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
|
||||||
|
kopensolaris*-gnu* | \
|
||||||
storm-chaos* | os2-emx* | rtmk-nova*)
|
storm-chaos* | os2-emx* | rtmk-nova*)
|
||||||
os=-$maybe_os
|
os=-$maybe_os
|
||||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||||
|
@ -148,10 +152,13 @@ case $os in
|
||||||
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
|
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
|
||||||
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
|
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
|
||||||
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
|
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
|
||||||
-apple | -axis | -knuth | -cray)
|
-apple | -axis | -knuth | -cray | -microblaze)
|
||||||
os=
|
os=
|
||||||
basic_machine=$1
|
basic_machine=$1
|
||||||
;;
|
;;
|
||||||
|
-bluegene*)
|
||||||
|
os=-cnk
|
||||||
|
;;
|
||||||
-sim | -cisco | -oki | -wec | -winbond)
|
-sim | -cisco | -oki | -wec | -winbond)
|
||||||
os=
|
os=
|
||||||
basic_machine=$1
|
basic_machine=$1
|
||||||
|
@ -249,13 +256,16 @@ case $basic_machine in
|
||||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||||
| i370 | i860 | i960 | ia64 \
|
| i370 | i860 | i960 | ia64 \
|
||||||
| ip2k | iq2000 \
|
| ip2k | iq2000 \
|
||||||
|
| lm32 \
|
||||||
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
||||||
| maxq | mb | microblaze | mcore | mep \
|
| maxq | mb | microblaze | mcore | mep | metag \
|
||||||
| mips | mipsbe | mipseb | mipsel | mipsle \
|
| mips | mipsbe | mipseb | mipsel | mipsle \
|
||||||
| mips16 \
|
| mips16 \
|
||||||
| mips64 | mips64el \
|
| mips64 | mips64el \
|
||||||
| mips64vr | mips64vrel \
|
| mips64octeon | mips64octeonel \
|
||||||
| mips64orion | mips64orionel \
|
| mips64orion | mips64orionel \
|
||||||
|
| mips64r5900 | mips64r5900el \
|
||||||
|
| mips64vr | mips64vrel \
|
||||||
| mips64vr4100 | mips64vr4100el \
|
| mips64vr4100 | mips64vr4100el \
|
||||||
| mips64vr4300 | mips64vr4300el \
|
| mips64vr4300 | mips64vr4300el \
|
||||||
| mips64vr5000 | mips64vr5000el \
|
| mips64vr5000 | mips64vr5000el \
|
||||||
|
@ -268,6 +278,7 @@ case $basic_machine in
|
||||||
| mipsisa64sr71k | mipsisa64sr71kel \
|
| mipsisa64sr71k | mipsisa64sr71kel \
|
||||||
| mipstx39 | mipstx39el \
|
| mipstx39 | mipstx39el \
|
||||||
| mn10200 | mn10300 \
|
| mn10200 | mn10300 \
|
||||||
|
| moxie \
|
||||||
| mt \
|
| mt \
|
||||||
| msp430 \
|
| msp430 \
|
||||||
| nios | nios2 \
|
| nios | nios2 \
|
||||||
|
@ -276,20 +287,22 @@ case $basic_machine in
|
||||||
| pdp10 | pdp11 | pj | pjl \
|
| pdp10 | pdp11 | pj | pjl \
|
||||||
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
||||||
| pyramid \
|
| pyramid \
|
||||||
|
| rx \
|
||||||
| score \
|
| score \
|
||||||
| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
||||||
| sh64 | sh64le \
|
| sh64 | sh64le \
|
||||||
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
|
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
|
||||||
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
|
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
|
||||||
| spu | strongarm \
|
| spu | strongarm \
|
||||||
| tahoe | thumb | tic4x | tic80 | tron \
|
| tahoe | thumb | tic4x | tic80 | tron \
|
||||||
|
| ubicom32 \
|
||||||
| v850 | v850e \
|
| v850 | v850e \
|
||||||
| we32k \
|
| we32k \
|
||||||
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
|
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
|
||||||
| z8k)
|
| z8k | z80)
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
;;
|
;;
|
||||||
m6811 | m68hc11 | m6812 | m68hc12)
|
m6811 | m68hc11 | m6812 | m68hc12 | picochip)
|
||||||
# Motorola 68HC11/12.
|
# Motorola 68HC11/12.
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
os=-none
|
os=-none
|
||||||
|
@ -329,14 +342,17 @@ case $basic_machine in
|
||||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||||
| i*86-* | i860-* | i960-* | ia64-* \
|
| i*86-* | i860-* | i960-* | ia64-* \
|
||||||
| ip2k-* | iq2000-* \
|
| ip2k-* | iq2000-* \
|
||||||
|
| lm32-* \
|
||||||
| m32c-* | m32r-* | m32rle-* \
|
| m32c-* | m32r-* | m32rle-* \
|
||||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||||||
| m88110-* | m88k-* | maxq-* | mcore-* \
|
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
|
||||||
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
||||||
| mips16-* \
|
| mips16-* \
|
||||||
| mips64-* | mips64el-* \
|
| mips64-* | mips64el-* \
|
||||||
| mips64vr-* | mips64vrel-* \
|
| mips64octeon-* | mips64octeonel-* \
|
||||||
| mips64orion-* | mips64orionel-* \
|
| mips64orion-* | mips64orionel-* \
|
||||||
|
| mips64r5900-* | mips64r5900el-* \
|
||||||
|
| mips64vr-* | mips64vrel-* \
|
||||||
| mips64vr4100-* | mips64vr4100el-* \
|
| mips64vr4100-* | mips64vr4100el-* \
|
||||||
| mips64vr4300-* | mips64vr4300el-* \
|
| mips64vr4300-* | mips64vr4300el-* \
|
||||||
| mips64vr5000-* | mips64vr5000el-* \
|
| mips64vr5000-* | mips64vr5000el-* \
|
||||||
|
@ -357,21 +373,26 @@ case $basic_machine in
|
||||||
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
||||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
||||||
| pyramid-* \
|
| pyramid-* \
|
||||||
| romp-* | rs6000-* \
|
| romp-* | rs6000-* | rx-* \
|
||||||
| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
||||||
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
||||||
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
||||||
| sparclite-* \
|
| sparclite-* \
|
||||||
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
|
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
|
||||||
| tahoe-* | thumb-* \
|
| tahoe-* | thumb-* \
|
||||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
|
||||||
| tron-* \
|
| tron-* \
|
||||||
|
| ubicom32-* \
|
||||||
| v850-* | v850e-* | vax-* \
|
| v850-* | v850e-* | vax-* \
|
||||||
| we32k-* \
|
| we32k-* \
|
||||||
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
|
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
|
||||||
| xstormy16-* | xtensa-* \
|
| xstormy16-* | xtensa*-* \
|
||||||
| ymp-* \
|
| ymp-* \
|
||||||
| z8k-*)
|
| z8k-* | z80-*)
|
||||||
|
;;
|
||||||
|
# Recognize the basic CPU types without company name, with glob match.
|
||||||
|
xtensa*)
|
||||||
|
basic_machine=$basic_machine-unknown
|
||||||
;;
|
;;
|
||||||
# Recognize the various machine names and aliases which stand
|
# Recognize the various machine names and aliases which stand
|
||||||
# for a CPU type and a company and sometimes even an OS.
|
# for a CPU type and a company and sometimes even an OS.
|
||||||
|
@ -435,6 +456,10 @@ case $basic_machine in
|
||||||
basic_machine=m68k-apollo
|
basic_machine=m68k-apollo
|
||||||
os=-bsd
|
os=-bsd
|
||||||
;;
|
;;
|
||||||
|
aros)
|
||||||
|
basic_machine=i386-pc
|
||||||
|
os=-aros
|
||||||
|
;;
|
||||||
aux)
|
aux)
|
||||||
basic_machine=m68k-apple
|
basic_machine=m68k-apple
|
||||||
os=-aux
|
os=-aux
|
||||||
|
@ -443,10 +468,26 @@ case $basic_machine in
|
||||||
basic_machine=ns32k-sequent
|
basic_machine=ns32k-sequent
|
||||||
os=-dynix
|
os=-dynix
|
||||||
;;
|
;;
|
||||||
|
blackfin)
|
||||||
|
basic_machine=bfin-unknown
|
||||||
|
os=-linux
|
||||||
|
;;
|
||||||
|
blackfin-*)
|
||||||
|
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
|
os=-linux
|
||||||
|
;;
|
||||||
|
bluegene*)
|
||||||
|
basic_machine=powerpc-ibm
|
||||||
|
os=-cnk
|
||||||
|
;;
|
||||||
c90)
|
c90)
|
||||||
basic_machine=c90-cray
|
basic_machine=c90-cray
|
||||||
os=-unicos
|
os=-unicos
|
||||||
;;
|
;;
|
||||||
|
cegcc)
|
||||||
|
basic_machine=arm-unknown
|
||||||
|
os=-cegcc
|
||||||
|
;;
|
||||||
convex-c1)
|
convex-c1)
|
||||||
basic_machine=c1-convex
|
basic_machine=c1-convex
|
||||||
os=-bsd
|
os=-bsd
|
||||||
|
@ -475,8 +516,8 @@ case $basic_machine in
|
||||||
basic_machine=craynv-cray
|
basic_machine=craynv-cray
|
||||||
os=-unicosmp
|
os=-unicosmp
|
||||||
;;
|
;;
|
||||||
cr16c)
|
cr16)
|
||||||
basic_machine=cr16c-unknown
|
basic_machine=cr16-unknown
|
||||||
os=-elf
|
os=-elf
|
||||||
;;
|
;;
|
||||||
crds | unos)
|
crds | unos)
|
||||||
|
@ -514,6 +555,10 @@ case $basic_machine in
|
||||||
basic_machine=m88k-motorola
|
basic_machine=m88k-motorola
|
||||||
os=-sysv3
|
os=-sysv3
|
||||||
;;
|
;;
|
||||||
|
dicos)
|
||||||
|
basic_machine=i686-pc
|
||||||
|
os=-dicos
|
||||||
|
;;
|
||||||
djgpp)
|
djgpp)
|
||||||
basic_machine=i586-pc
|
basic_machine=i586-pc
|
||||||
os=-msdosdjgpp
|
os=-msdosdjgpp
|
||||||
|
@ -668,6 +713,14 @@ case $basic_machine in
|
||||||
basic_machine=m68k-isi
|
basic_machine=m68k-isi
|
||||||
os=-sysv
|
os=-sysv
|
||||||
;;
|
;;
|
||||||
|
m68knommu)
|
||||||
|
basic_machine=m68k-unknown
|
||||||
|
os=-linux
|
||||||
|
;;
|
||||||
|
m68knommu-*)
|
||||||
|
basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
|
os=-linux
|
||||||
|
;;
|
||||||
m88k-omron*)
|
m88k-omron*)
|
||||||
basic_machine=m88k-omron
|
basic_machine=m88k-omron
|
||||||
;;
|
;;
|
||||||
|
@ -679,6 +732,9 @@ case $basic_machine in
|
||||||
basic_machine=ns32k-utek
|
basic_machine=ns32k-utek
|
||||||
os=-sysv
|
os=-sysv
|
||||||
;;
|
;;
|
||||||
|
microblaze)
|
||||||
|
basic_machine=microblaze-xilinx
|
||||||
|
;;
|
||||||
mingw32)
|
mingw32)
|
||||||
basic_machine=i386-pc
|
basic_machine=i386-pc
|
||||||
os=-mingw32
|
os=-mingw32
|
||||||
|
@ -813,6 +869,14 @@ case $basic_machine in
|
||||||
basic_machine=i860-intel
|
basic_machine=i860-intel
|
||||||
os=-osf
|
os=-osf
|
||||||
;;
|
;;
|
||||||
|
parisc)
|
||||||
|
basic_machine=hppa-unknown
|
||||||
|
os=-linux
|
||||||
|
;;
|
||||||
|
parisc-*)
|
||||||
|
basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
|
os=-linux
|
||||||
|
;;
|
||||||
pbd)
|
pbd)
|
||||||
basic_machine=sparc-tti
|
basic_machine=sparc-tti
|
||||||
;;
|
;;
|
||||||
|
@ -1021,6 +1085,10 @@ case $basic_machine in
|
||||||
basic_machine=tic6x-unknown
|
basic_machine=tic6x-unknown
|
||||||
os=-coff
|
os=-coff
|
||||||
;;
|
;;
|
||||||
|
tile*)
|
||||||
|
basic_machine=tile-unknown
|
||||||
|
os=-linux-gnu
|
||||||
|
;;
|
||||||
tx39)
|
tx39)
|
||||||
basic_machine=mipstx39-unknown
|
basic_machine=mipstx39-unknown
|
||||||
;;
|
;;
|
||||||
|
@ -1096,6 +1164,10 @@ case $basic_machine in
|
||||||
basic_machine=z8k-unknown
|
basic_machine=z8k-unknown
|
||||||
os=-sim
|
os=-sim
|
||||||
;;
|
;;
|
||||||
|
z80-*-coff)
|
||||||
|
basic_machine=z80-unknown
|
||||||
|
os=-sim
|
||||||
|
;;
|
||||||
none)
|
none)
|
||||||
basic_machine=none-none
|
basic_machine=none-none
|
||||||
os=-none
|
os=-none
|
||||||
|
@ -1134,7 +1206,7 @@ case $basic_machine in
|
||||||
we32k)
|
we32k)
|
||||||
basic_machine=we32k-att
|
basic_machine=we32k-att
|
||||||
;;
|
;;
|
||||||
sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
|
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
|
||||||
basic_machine=sh-unknown
|
basic_machine=sh-unknown
|
||||||
;;
|
;;
|
||||||
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
|
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
|
||||||
|
@ -1204,10 +1276,11 @@ case $os in
|
||||||
# Each alternative MUST END IN A *, to match a version number.
|
# Each alternative MUST END IN A *, to match a version number.
|
||||||
# -sysv* is not here because it comes later, after sysvr4.
|
# -sysv* is not here because it comes later, after sysvr4.
|
||||||
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
||||||
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
|
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
||||||
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
|
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
|
||||||
|
| -kopensolaris* \
|
||||||
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
||||||
| -aos* \
|
| -aos* | -aros* \
|
||||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
||||||
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
||||||
|
@ -1216,7 +1289,7 @@ case $os in
|
||||||
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
||||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||||
| -chorusos* | -chorusrdb* \
|
| -chorusos* | -chorusrdb* | -cegcc* \
|
||||||
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||||
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
|
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
|
||||||
| -uxpv* | -beos* | -mpeix* | -udk* \
|
| -uxpv* | -beos* | -mpeix* | -udk* \
|
||||||
|
@ -1226,7 +1299,7 @@ case $os in
|
||||||
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
||||||
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
||||||
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
||||||
| -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
|
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
|
||||||
# Remember, each alternative MUST END IN *, to match a version number.
|
# Remember, each alternative MUST END IN *, to match a version number.
|
||||||
;;
|
;;
|
||||||
-qnx*)
|
-qnx*)
|
||||||
|
@ -1356,6 +1429,9 @@ case $os in
|
||||||
-zvmoe)
|
-zvmoe)
|
||||||
os=-zvmoe
|
os=-zvmoe
|
||||||
;;
|
;;
|
||||||
|
-dicos*)
|
||||||
|
os=-dicos
|
||||||
|
;;
|
||||||
-none)
|
-none)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
@ -1553,7 +1629,7 @@ case $basic_machine in
|
||||||
-sunos*)
|
-sunos*)
|
||||||
vendor=sun
|
vendor=sun
|
||||||
;;
|
;;
|
||||||
-aix*)
|
-cnk*|-aix*)
|
||||||
vendor=ibm
|
vendor=ibm
|
||||||
;;
|
;;
|
||||||
-beos*)
|
-beos*)
|
||||||
|
|
23180
Modules/_ctypes/libffi/configure
vendored
23180
Modules/_ctypes/libffi/configure
vendored
File diff suppressed because it is too large
Load diff
|
@ -3,9 +3,9 @@ dnl Process this with autoconf to create configure
|
||||||
# file from libffi - slightly patched for ctypes
|
# file from libffi - slightly patched for ctypes
|
||||||
#
|
#
|
||||||
|
|
||||||
AC_PREREQ(2.59)
|
AC_PREREQ(2.63)
|
||||||
|
|
||||||
AC_INIT([libffi], [3.0.5], [http://gcc.gnu.org/bugs.html])
|
AC_INIT([libffi], [3.0.9], [http://gcc.gnu.org/bugs.html])
|
||||||
AC_CONFIG_HEADERS([fficonfig.h])
|
AC_CONFIG_HEADERS([fficonfig.h])
|
||||||
|
|
||||||
AC_CANONICAL_SYSTEM
|
AC_CANONICAL_SYSTEM
|
||||||
|
@ -23,6 +23,7 @@ AM_INIT_AUTOMAKE
|
||||||
m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
|
m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
|
||||||
m4_define([_AC_ARG_VAR_PRECIOUS],[])
|
m4_define([_AC_ARG_VAR_PRECIOUS],[])
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
|
m4_undefine([_AC_ARG_VAR_PRECIOUS])
|
||||||
m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
|
m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
|
||||||
|
|
||||||
AC_SUBST(CFLAGS)
|
AC_SUBST(CFLAGS)
|
||||||
|
@ -30,6 +31,7 @@ AC_SUBST(CFLAGS)
|
||||||
AM_PROG_AS
|
AM_PROG_AS
|
||||||
AM_PROG_CC_C_O
|
AM_PROG_CC_C_O
|
||||||
AC_PROG_LIBTOOL
|
AC_PROG_LIBTOOL
|
||||||
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
||||||
AM_MAINTAINER_MODE
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
@ -52,10 +54,14 @@ case "$host" in
|
||||||
TARGET=ARM; TARGETDIR=arm
|
TARGET=ARM; TARGETDIR=arm
|
||||||
;;
|
;;
|
||||||
|
|
||||||
amd64-*-freebsd*)
|
amd64-*-freebsd* | amd64-*-openbsd*)
|
||||||
TARGET=X86_64; TARGETDIR=x86
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
avr32*-*-*)
|
||||||
|
TARGET=AVR32; TARGETDIR=avr32
|
||||||
|
;;
|
||||||
|
|
||||||
cris-*-*)
|
cris-*-*)
|
||||||
TARGET=LIBFFI_CRIS; TARGETDIR=cris
|
TARGET=LIBFFI_CRIS; TARGETDIR=cris
|
||||||
;;
|
;;
|
||||||
|
@ -74,11 +80,13 @@ case "$host" in
|
||||||
TARGET=PA_HPUX; TARGETDIR=pa
|
TARGET=PA_HPUX; TARGETDIR=pa
|
||||||
;;
|
;;
|
||||||
|
|
||||||
i386-*-freebsd* | i386-*-openbsd*)
|
i?86-*-freebsd* | i?86-*-openbsd*)
|
||||||
TARGET=X86_FREEBSD; TARGETDIR=x86
|
TARGET=X86_FREEBSD; TARGETDIR=x86
|
||||||
;;
|
;;
|
||||||
i?86-win32* | i?86-*-cygwin* | i?86-*-mingw*)
|
i?86-win32* | i?86-*-cygwin* | i?86-*-mingw*)
|
||||||
TARGET=X86_WIN32; TARGETDIR=x86
|
TARGET=X86_WIN32; TARGETDIR=x86
|
||||||
|
# All mingw/cygwin/win32 builds require this for sharedlib
|
||||||
|
AM_LTLDFLAGS="-no-undefined"
|
||||||
;;
|
;;
|
||||||
i?86-*-darwin*)
|
i?86-*-darwin*)
|
||||||
TARGET=X86_DARWIN; TARGETDIR=x86
|
TARGET=X86_DARWIN; TARGETDIR=x86
|
||||||
|
@ -109,7 +117,9 @@ case "$host" in
|
||||||
TARGET=MIPS_IRIX; TARGETDIR=mips
|
TARGET=MIPS_IRIX; TARGETDIR=mips
|
||||||
;;
|
;;
|
||||||
mips*-*-linux*)
|
mips*-*-linux*)
|
||||||
TARGET=MIPS_LINUX; TARGETDIR=mips
|
# Support 128-bit long double for NewABI.
|
||||||
|
HAVE_LONG_DOUBLE='defined(__mips64)'
|
||||||
|
TARGET=MIPS_IRIX; TARGETDIR=mips
|
||||||
;;
|
;;
|
||||||
|
|
||||||
powerpc*-*-linux* | powerpc-*-sysv*)
|
powerpc*-*-linux* | powerpc-*-sysv*)
|
||||||
|
@ -149,14 +159,18 @@ case "$host" in
|
||||||
x86_64-*-darwin*)
|
x86_64-*-darwin*)
|
||||||
TARGET=X86_DARWIN; TARGETDIR=x86
|
TARGET=X86_DARWIN; TARGETDIR=x86
|
||||||
;;
|
;;
|
||||||
|
|
||||||
x86_64-*-cygwin* | x86_64-*-mingw*)
|
x86_64-*-cygwin* | x86_64-*-mingw*)
|
||||||
|
TARGET=X86_WIN64; TARGETDIR=x86
|
||||||
;;
|
;;
|
||||||
|
|
||||||
x86_64-*-*)
|
x86_64-*-*)
|
||||||
TARGET=X86_64; TARGETDIR=x86
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
AC_SUBST(AM_RUNTESTFLAGS)
|
AC_SUBST(AM_RUNTESTFLAGS)
|
||||||
|
AC_SUBST(AM_LTLDFLAGS)
|
||||||
|
|
||||||
if test $TARGETDIR = unknown; then
|
if test $TARGETDIR = unknown; then
|
||||||
AC_MSG_ERROR(["libffi has not been ported to $host."])
|
AC_MSG_ERROR(["libffi has not been ported to $host."])
|
||||||
|
@ -167,6 +181,7 @@ AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
|
||||||
AM_CONDITIONAL(X86, test x$TARGET = xX86)
|
AM_CONDITIONAL(X86, test x$TARGET = xX86)
|
||||||
AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
|
AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
|
||||||
AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
|
AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
|
||||||
|
AM_CONDITIONAL(X86_WIN64, test x$TARGET = xX86_WIN64)
|
||||||
AM_CONDITIONAL(X86_DARWIN, test x$TARGET = xX86_DARWIN)
|
AM_CONDITIONAL(X86_DARWIN, test x$TARGET = xX86_DARWIN)
|
||||||
AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
|
AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
|
||||||
AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
|
AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
|
||||||
|
@ -177,6 +192,7 @@ AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX)
|
||||||
AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN)
|
AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN)
|
||||||
AM_CONDITIONAL(POWERPC_FREEBSD, test x$TARGET = xPOWERPC_FREEBSD)
|
AM_CONDITIONAL(POWERPC_FREEBSD, test x$TARGET = xPOWERPC_FREEBSD)
|
||||||
AM_CONDITIONAL(ARM, test x$TARGET = xARM)
|
AM_CONDITIONAL(ARM, test x$TARGET = xARM)
|
||||||
|
AM_CONDITIONAL(AVR32, test x$TARGET = xAVR32)
|
||||||
AM_CONDITIONAL(LIBFFI_CRIS, test x$TARGET = xLIBFFI_CRIS)
|
AM_CONDITIONAL(LIBFFI_CRIS, test x$TARGET = xLIBFFI_CRIS)
|
||||||
AM_CONDITIONAL(FRV, test x$TARGET = xFRV)
|
AM_CONDITIONAL(FRV, test x$TARGET = xFRV)
|
||||||
AM_CONDITIONAL(S390, test x$TARGET = xS390)
|
AM_CONDITIONAL(S390, test x$TARGET = xS390)
|
||||||
|
@ -251,6 +267,29 @@ if test x$TARGET = xSPARC; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test x$TARGET = xX86 || test x$TARGET = xX86_WIN32 || test x$TARGET = xX86_64; then
|
||||||
|
AC_CACHE_CHECK([assembler supports pc related relocs],
|
||||||
|
libffi_cv_as_x86_pcrel, [
|
||||||
|
libffi_cv_as_x86_pcrel=yes
|
||||||
|
echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
|
||||||
|
if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
|
||||||
|
libffi_cv_as_x86_pcrel=no
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_x86_pcrel" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_X86_PCREL, 1,
|
||||||
|
[Define if your assembler supports PC relative relocs.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$target" in
|
||||||
|
*-apple-darwin10* | *-*-freebsd* | *-*-openbsd* | *-pc-solaris*)
|
||||||
|
AC_DEFINE(FFI_MMAP_EXEC_WRIT, 1,
|
||||||
|
[Cannot use malloc on this target, so, we revert to
|
||||||
|
alternative means])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
AC_CACHE_CHECK([whether .eh_frame section should be read-only],
|
AC_CACHE_CHECK([whether .eh_frame section should be read-only],
|
||||||
libffi_cv_ro_eh_frame, [
|
libffi_cv_ro_eh_frame, [
|
||||||
libffi_cv_ro_eh_frame=no
|
libffi_cv_ro_eh_frame=no
|
||||||
|
|
584
Modules/_ctypes/libffi/depcomp
Executable file
584
Modules/_ctypes/libffi/depcomp
Executable file
|
@ -0,0 +1,584 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# depcomp - compile a program generating dependencies as side-effects
|
||||||
|
|
||||||
|
scriptversion=2006-10-15.18
|
||||||
|
|
||||||
|
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
|
||||||
|
# Foundation, Inc.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
|
# 02110-1301, USA.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||||
|
as side-effects.
|
||||||
|
|
||||||
|
Environment variables:
|
||||||
|
depmode Dependency tracking mode.
|
||||||
|
source Source file read by `PROGRAMS ARGS'.
|
||||||
|
object Object file output by `PROGRAMS ARGS'.
|
||||||
|
DEPDIR directory where to store dependencies.
|
||||||
|
depfile Dependency file to output.
|
||||||
|
tmpdepfile Temporary file to use when outputing dependencies.
|
||||||
|
libtool Whether libtool is used (yes/no).
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "depcomp $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||||
|
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||||
|
depfile=${depfile-`echo "$object" |
|
||||||
|
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||||
|
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||||
|
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
|
||||||
|
# Some modes work just like other modes, but use different flags. We
|
||||||
|
# parameterize here, but still list the modes in the big case below,
|
||||||
|
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||||
|
# here, because this file can only contain one case statement.
|
||||||
|
if test "$depmode" = hp; then
|
||||||
|
# HP compiler uses -M and no extra arg.
|
||||||
|
gccflag=-M
|
||||||
|
depmode=gcc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = dashXmstdout; then
|
||||||
|
# This is just like dashmstdout with a different argument.
|
||||||
|
dashmflag=-xM
|
||||||
|
depmode=dashmstdout
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$depmode" in
|
||||||
|
gcc3)
|
||||||
|
## gcc 3 implements dependency tracking that does exactly what
|
||||||
|
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||||
|
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||||
|
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||||
|
## the command line argument order; so add the flags where they
|
||||||
|
## appear in depend2.am. Note that the slowdown incurred here
|
||||||
|
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||||
|
*) set fnord "$@" "$arg" ;;
|
||||||
|
esac
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
done
|
||||||
|
"$@"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
mv "$tmpdepfile" "$depfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
gcc)
|
||||||
|
## There are various ways to get dependency output from gcc. Here's
|
||||||
|
## why we pick this rather obscure method:
|
||||||
|
## - Don't want to use -MD because we'd like the dependencies to end
|
||||||
|
## up in a subdir. Having to rename by hand is ugly.
|
||||||
|
## (We might end up doing this anyway to support other compilers.)
|
||||||
|
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||||
|
## -MM, not -M (despite what the docs say).
|
||||||
|
## - Using -M directly means running the compiler twice (even worse
|
||||||
|
## than renaming).
|
||||||
|
if test -z "$gccflag"; then
|
||||||
|
gccflag=-MD,
|
||||||
|
fi
|
||||||
|
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||||
|
## The second -e expression handles DOS-style file names with drive letters.
|
||||||
|
sed -e 's/^[^:]*: / /' \
|
||||||
|
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||||
|
## This next piece of magic avoids the `deleted header file' problem.
|
||||||
|
## The problem is that when a header file which appears in a .P file
|
||||||
|
## is deleted, the dependency causes make to die (because there is
|
||||||
|
## typically no way to rebuild the header). We avoid this by adding
|
||||||
|
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||||
|
## this for us directly.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" |
|
||||||
|
## Some versions of gcc put a space before the `:'. On the theory
|
||||||
|
## that the space means something, we add a space to the output as
|
||||||
|
## well.
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
sgi)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||||
|
else
|
||||||
|
"$@" -MDupdate "$tmpdepfile"
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
|
||||||
|
# Clip off the initial element (the dependent). Don't try to be
|
||||||
|
# clever and replace this with sed code, as IRIX sed won't handle
|
||||||
|
# lines with more than a fixed number of characters (4096 in
|
||||||
|
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||||
|
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||||
|
# dependency line.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||||
|
tr '
|
||||||
|
' ' ' >> $depfile
|
||||||
|
echo >> $depfile
|
||||||
|
|
||||||
|
# The second pass generates a dummy entry for each header file.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||||
|
>> $depfile
|
||||||
|
else
|
||||||
|
# The sourcefile does not contain any dependencies, so just
|
||||||
|
# store a dummy comment line, to avoid errors with the Makefile
|
||||||
|
# "include basename.Plo" scheme.
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
aix)
|
||||||
|
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||||
|
# in a .u file. In older versions, this file always lives in the
|
||||||
|
# current directory. Also, the AIX compiler puts `$object:' at the
|
||||||
|
# start of each line; $object doesn't have directory information.
|
||||||
|
# Version 6 uses the directory in both cases.
|
||||||
|
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
|
||||||
|
tmpdepfile="$stripped.u"
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
"$@" -Wc,-M
|
||||||
|
else
|
||||||
|
"$@" -M
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then :
|
||||||
|
else
|
||||||
|
stripped=`echo "$stripped" | sed 's,^.*/,,'`
|
||||||
|
tmpdepfile="$stripped.u"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
outname="$stripped.o"
|
||||||
|
# Each line is of the form `foo.o: dependent.h'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||||
|
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
|
||||||
|
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
# The sourcefile does not contain any dependencies, so just
|
||||||
|
# store a dummy comment line, to avoid errors with the Makefile
|
||||||
|
# "include basename.Plo" scheme.
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
icc)
|
||||||
|
# Intel's C compiler understands `-MD -MF file'. However on
|
||||||
|
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
||||||
|
# ICC 7.0 will fill foo.d with something like
|
||||||
|
# foo.o: sub/foo.c
|
||||||
|
# foo.o: sub/foo.h
|
||||||
|
# which is wrong. We want:
|
||||||
|
# sub/foo.o: sub/foo.c
|
||||||
|
# sub/foo.o: sub/foo.h
|
||||||
|
# sub/foo.c:
|
||||||
|
# sub/foo.h:
|
||||||
|
# ICC 7.1 will output
|
||||||
|
# foo.o: sub/foo.c sub/foo.h
|
||||||
|
# and will wrap long lines using \ :
|
||||||
|
# foo.o: sub/foo.c ... \
|
||||||
|
# sub/foo.h ... \
|
||||||
|
# ...
|
||||||
|
|
||||||
|
"$@" -MD -MF "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
# Each line is of the form `foo.o: dependent.h',
|
||||||
|
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||||
|
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
|
||||||
|
sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp2)
|
||||||
|
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||||
|
# compilers, which have integrated preprocessors. The correct option
|
||||||
|
# to use with these is +Maked; it writes dependencies to a file named
|
||||||
|
# 'foo.d', which lands next to the object file, wherever that
|
||||||
|
# happens to be.
|
||||||
|
# Much of this is similar to the tru64 case; see comments there.
|
||||||
|
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||||
|
test "x$dir" = "x$object" && dir=
|
||||||
|
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir.libs/$base.d
|
||||||
|
"$@" -Wc,+Maked
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
"$@" +Maked
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||||
|
# Add `dependent.h:' lines.
|
||||||
|
sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||||
|
;;
|
||||||
|
|
||||||
|
tru64)
|
||||||
|
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||||
|
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||||
|
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||||
|
# dependencies in `foo.d' instead, so we check for that too.
|
||||||
|
# Subdirectories are respected.
|
||||||
|
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||||
|
test "x$dir" = "x$object" && dir=
|
||||||
|
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||||
|
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
# With Tru64 cc, shared objects can also be used to make a
|
||||||
|
# static library. This mechanism is used in libtool 1.4 series to
|
||||||
|
# handle both shared and static libraries in a single compilation.
|
||||||
|
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
|
||||||
|
#
|
||||||
|
# With libtool 1.5 this exception was removed, and libtool now
|
||||||
|
# generates 2 separate objects for the 2 libraries. These two
|
||||||
|
# compilations output dependencies in $dir.libs/$base.o.d and
|
||||||
|
# in $dir$base.o.d. We have to check for both files, because
|
||||||
|
# one of the two compilations can be disabled. We should prefer
|
||||||
|
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||||
|
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||||
|
# the former would cause a distcleancheck panic.
|
||||||
|
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
|
||||||
|
tmpdepfile2=$dir$base.o.d # libtool 1.5
|
||||||
|
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
|
||||||
|
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||||
|
"$@" -Wc,-MD
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.o.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
tmpdepfile3=$dir$base.d
|
||||||
|
tmpdepfile4=$dir$base.d
|
||||||
|
"$@" -MD
|
||||||
|
fi
|
||||||
|
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||||
|
# That's a tab and a space in the [].
|
||||||
|
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
#nosideeffect)
|
||||||
|
# This comment above is used by automake to tell side-effect
|
||||||
|
# dependency tracking mechanisms from slower ones.
|
||||||
|
|
||||||
|
dashmstdout)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout, regardless of -o.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test $1 != '--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove `-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
test -z "$dashmflag" && dashmflag=-M
|
||||||
|
# Require at least two characters before searching for `:'
|
||||||
|
# in the target name. This is to cope with DOS-style filenames:
|
||||||
|
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
|
||||||
|
"$@" $dashmflag |
|
||||||
|
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" | \
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
dashXmstdout)
|
||||||
|
# This case only exists to satisfy depend.m4. It is never actually
|
||||||
|
# run, as this mode is specially recognized in the preamble.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
makedepend)
|
||||||
|
"$@" || exit $?
|
||||||
|
# Remove any Libtool call
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test $1 != '--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
# X makedepend
|
||||||
|
shift
|
||||||
|
cleared=no
|
||||||
|
for arg in "$@"; do
|
||||||
|
case $cleared in
|
||||||
|
no)
|
||||||
|
set ""; shift
|
||||||
|
cleared=yes ;;
|
||||||
|
esac
|
||||||
|
case "$arg" in
|
||||||
|
-D*|-I*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
# Strip any option that makedepend may not understand. Remove
|
||||||
|
# the object too, otherwise makedepend will parse it as a source file.
|
||||||
|
-*|$object)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
obj_suffix="`echo $object | sed 's/^.*\././'`"
|
||||||
|
touch "$tmpdepfile"
|
||||||
|
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||||
|
rm -f "$depfile"
|
||||||
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
|
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||||
|
' | \
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||||
|
;;
|
||||||
|
|
||||||
|
cpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test $1 != '--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove `-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
"$@" -E |
|
||||||
|
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||||
|
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||||
|
sed '$ s: \\$::' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
cat < "$tmpdepfile" >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvisualcpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout, regardless of -o,
|
||||||
|
# because we must use -o when running libtool.
|
||||||
|
"$@" || exit $?
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case "$arg" in
|
||||||
|
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||||
|
set fnord "$@"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
"$@" -E |
|
||||||
|
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||||
|
echo " " >> "$depfile"
|
||||||
|
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
none)
|
||||||
|
exec "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Unknown depmode $depmode" 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
533
Modules/_ctypes/libffi/doc/libffi.info
Normal file
533
Modules/_ctypes/libffi/doc/libffi.info
Normal file
|
@ -0,0 +1,533 @@
|
||||||
|
This is ../libffi/doc/libffi.info, produced by makeinfo version 4.13
|
||||||
|
from ../libffi/doc/libffi.texi.
|
||||||
|
|
||||||
|
This manual is for Libffi, a portable foreign-function interface
|
||||||
|
library.
|
||||||
|
|
||||||
|
Copyright (C) 2008 Red Hat, Inc.
|
||||||
|
|
||||||
|
Permission is granted to copy, distribute and/or modify this
|
||||||
|
document under the terms of the GNU General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2, or
|
||||||
|
(at your option) any later version. A copy of the license is
|
||||||
|
included in the section entitled "GNU General Public License".
|
||||||
|
|
||||||
|
|
||||||
|
INFO-DIR-SECTION Development
|
||||||
|
START-INFO-DIR-ENTRY
|
||||||
|
* libffi: (libffi). Portable foreign-function interface library.
|
||||||
|
END-INFO-DIR-ENTRY
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Top, Next: Introduction, Up: (dir)
|
||||||
|
|
||||||
|
libffi
|
||||||
|
******
|
||||||
|
|
||||||
|
This manual is for Libffi, a portable foreign-function interface
|
||||||
|
library.
|
||||||
|
|
||||||
|
Copyright (C) 2008 Red Hat, Inc.
|
||||||
|
|
||||||
|
Permission is granted to copy, distribute and/or modify this
|
||||||
|
document under the terms of the GNU General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2, or
|
||||||
|
(at your option) any later version. A copy of the license is
|
||||||
|
included in the section entitled "GNU General Public License".
|
||||||
|
|
||||||
|
|
||||||
|
* Menu:
|
||||||
|
|
||||||
|
* Introduction:: What is libffi?
|
||||||
|
* Using libffi:: How to use libffi.
|
||||||
|
* Missing Features:: Things libffi can't do.
|
||||||
|
* Index:: Index.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Introduction, Next: Using libffi, Prev: Top, Up: Top
|
||||||
|
|
||||||
|
1 What is libffi?
|
||||||
|
*****************
|
||||||
|
|
||||||
|
Compilers for high level languages generate code that follow certain
|
||||||
|
conventions. These conventions are necessary, in part, for separate
|
||||||
|
compilation to work. One such convention is the "calling convention".
|
||||||
|
The calling convention is a set of assumptions made by the compiler
|
||||||
|
about where function arguments will be found on entry to a function. A
|
||||||
|
calling convention also specifies where the return value for a function
|
||||||
|
is found. The calling convention is also sometimes called the "ABI" or
|
||||||
|
"Application Binary Interface".
|
||||||
|
|
||||||
|
Some programs may not know at the time of compilation what arguments
|
||||||
|
are to be passed to a function. For instance, an interpreter may be
|
||||||
|
told at run-time about the number and types of arguments used to call a
|
||||||
|
given function. `Libffi' can be used in such programs to provide a
|
||||||
|
bridge from the interpreter program to compiled code.
|
||||||
|
|
||||||
|
The `libffi' library provides a portable, high level programming
|
||||||
|
interface to various calling conventions. This allows a programmer to
|
||||||
|
call any function specified by a call interface description at run time.
|
||||||
|
|
||||||
|
FFI stands for Foreign Function Interface. A foreign function
|
||||||
|
interface is the popular name for the interface that allows code
|
||||||
|
written in one language to call code written in another language. The
|
||||||
|
`libffi' library really only provides the lowest, machine dependent
|
||||||
|
layer of a fully featured foreign function interface. A layer must
|
||||||
|
exist above `libffi' that handles type conversions for values passed
|
||||||
|
between the two languages.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Using libffi, Next: Missing Features, Prev: Introduction, Up: Top
|
||||||
|
|
||||||
|
2 Using libffi
|
||||||
|
**************
|
||||||
|
|
||||||
|
* Menu:
|
||||||
|
|
||||||
|
* The Basics:: The basic libffi API.
|
||||||
|
* Simple Example:: A simple example.
|
||||||
|
* Types:: libffi type descriptions.
|
||||||
|
* Multiple ABIs:: Different passing styles on one platform.
|
||||||
|
* The Closure API:: Writing a generic function.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: The Basics, Next: Simple Example, Up: Using libffi
|
||||||
|
|
||||||
|
2.1 The Basics
|
||||||
|
==============
|
||||||
|
|
||||||
|
`Libffi' assumes that you have a pointer to the function you wish to
|
||||||
|
call and that you know the number and types of arguments to pass it, as
|
||||||
|
well as the return type of the function.
|
||||||
|
|
||||||
|
The first thing you must do is create an `ffi_cif' object that
|
||||||
|
matches the signature of the function you wish to call. This is a
|
||||||
|
separate step because it is common to make multiple calls using a
|
||||||
|
single `ffi_cif'. The "cif" in `ffi_cif' stands for Call InterFace.
|
||||||
|
To prepare a call interface object, use the function `ffi_prep_cif'.
|
||||||
|
|
||||||
|
-- Function: ffi_status ffi_prep_cif (ffi_cif *CIF, ffi_abi ABI,
|
||||||
|
unsigned int NARGS, ffi_type *RTYPE, ffi_type **ARGTYPES)
|
||||||
|
This initializes CIF according to the given parameters.
|
||||||
|
|
||||||
|
ABI is the ABI to use; normally `FFI_DEFAULT_ABI' is what you
|
||||||
|
want. *note Multiple ABIs:: for more information.
|
||||||
|
|
||||||
|
NARGS is the number of arguments that this function accepts.
|
||||||
|
`libffi' does not yet handle varargs functions; see *note Missing
|
||||||
|
Features:: for more information.
|
||||||
|
|
||||||
|
RTYPE is a pointer to an `ffi_type' structure that describes the
|
||||||
|
return type of the function. *Note Types::.
|
||||||
|
|
||||||
|
ARGTYPES is a vector of `ffi_type' pointers. ARGTYPES must have
|
||||||
|
NARGS elements. If NARGS is 0, this argument is ignored.
|
||||||
|
|
||||||
|
`ffi_prep_cif' returns a `libffi' status code, of type
|
||||||
|
`ffi_status'. This will be either `FFI_OK' if everything worked
|
||||||
|
properly; `FFI_BAD_TYPEDEF' if one of the `ffi_type' objects is
|
||||||
|
incorrect; or `FFI_BAD_ABI' if the ABI parameter is invalid.
|
||||||
|
|
||||||
|
To call a function using an initialized `ffi_cif', use the
|
||||||
|
`ffi_call' function:
|
||||||
|
|
||||||
|
-- Function: void ffi_call (ffi_cif *CIF, void *FN, void *RVALUE, void
|
||||||
|
**AVALUES)
|
||||||
|
This calls the function FN according to the description given in
|
||||||
|
CIF. CIF must have already been prepared using `ffi_prep_cif'.
|
||||||
|
|
||||||
|
RVALUE is a pointer to a chunk of memory that will hold the result
|
||||||
|
of the function call. This must be large enough to hold the
|
||||||
|
result and must be suitably aligned; it is the caller's
|
||||||
|
responsibility to ensure this. If CIF declares that the function
|
||||||
|
returns `void' (using `ffi_type_void'), then RVALUE is ignored.
|
||||||
|
If RVALUE is `NULL', then the return value is discarded.
|
||||||
|
|
||||||
|
AVALUES is a vector of `void *' pointers that point to the memory
|
||||||
|
locations holding the argument values for a call. If CIF declares
|
||||||
|
that the function has no arguments (i.e., NARGS was 0), then
|
||||||
|
AVALUES is ignored.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Simple Example, Next: Types, Prev: The Basics, Up: Using libffi
|
||||||
|
|
||||||
|
2.2 Simple Example
|
||||||
|
==================
|
||||||
|
|
||||||
|
Here is a trivial example that calls `puts' a few times.
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <ffi.h>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
ffi_cif cif;
|
||||||
|
ffi_type *args[1];
|
||||||
|
void *values[1];
|
||||||
|
char *s;
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
/* Initialize the argument info vectors */
|
||||||
|
args[0] = &ffi_type_pointer;
|
||||||
|
values[0] = &s;
|
||||||
|
|
||||||
|
/* Initialize the cif */
|
||||||
|
if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
|
||||||
|
&ffi_type_uint, args) == FFI_OK)
|
||||||
|
{
|
||||||
|
s = "Hello World!";
|
||||||
|
ffi_call(&cif, puts, &rc, values);
|
||||||
|
/* rc now holds the result of the call to puts */
|
||||||
|
|
||||||
|
/* values holds a pointer to the function's arg, so to
|
||||||
|
call puts() again all we need to do is change the
|
||||||
|
value of s */
|
||||||
|
s = "This is cool!";
|
||||||
|
ffi_call(&cif, puts, &rc, values);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Types, Next: Multiple ABIs, Prev: Simple Example, Up: Using libffi
|
||||||
|
|
||||||
|
2.3 Types
|
||||||
|
=========
|
||||||
|
|
||||||
|
* Menu:
|
||||||
|
|
||||||
|
* Primitive Types:: Built-in types.
|
||||||
|
* Structures:: Structure types.
|
||||||
|
* Type Example:: Structure type example.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Primitive Types, Next: Structures, Up: Types
|
||||||
|
|
||||||
|
2.3.1 Primitive Types
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
`Libffi' provides a number of built-in type descriptors that can be
|
||||||
|
used to describe argument and return types:
|
||||||
|
|
||||||
|
`ffi_type_void'
|
||||||
|
The type `void'. This cannot be used for argument types, only for
|
||||||
|
return values.
|
||||||
|
|
||||||
|
`ffi_type_uint8'
|
||||||
|
An unsigned, 8-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_sint8'
|
||||||
|
A signed, 8-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_uint16'
|
||||||
|
An unsigned, 16-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_sint16'
|
||||||
|
A signed, 16-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_uint32'
|
||||||
|
An unsigned, 32-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_sint32'
|
||||||
|
A signed, 32-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_uint64'
|
||||||
|
An unsigned, 64-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_sint64'
|
||||||
|
A signed, 64-bit integer type.
|
||||||
|
|
||||||
|
`ffi_type_float'
|
||||||
|
The C `float' type.
|
||||||
|
|
||||||
|
`ffi_type_double'
|
||||||
|
The C `double' type.
|
||||||
|
|
||||||
|
`ffi_type_uchar'
|
||||||
|
The C `unsigned char' type.
|
||||||
|
|
||||||
|
`ffi_type_schar'
|
||||||
|
The C `signed char' type. (Note that there is not an exact
|
||||||
|
equivalent to the C `char' type in `libffi'; ordinarily you should
|
||||||
|
either use `ffi_type_schar' or `ffi_type_uchar' depending on
|
||||||
|
whether `char' is signed.)
|
||||||
|
|
||||||
|
`ffi_type_ushort'
|
||||||
|
The C `unsigned short' type.
|
||||||
|
|
||||||
|
`ffi_type_sshort'
|
||||||
|
The C `short' type.
|
||||||
|
|
||||||
|
`ffi_type_uint'
|
||||||
|
The C `unsigned int' type.
|
||||||
|
|
||||||
|
`ffi_type_sint'
|
||||||
|
The C `int' type.
|
||||||
|
|
||||||
|
`ffi_type_ulong'
|
||||||
|
The C `unsigned long' type.
|
||||||
|
|
||||||
|
`ffi_type_slong'
|
||||||
|
The C `long' type.
|
||||||
|
|
||||||
|
`ffi_type_longdouble'
|
||||||
|
On platforms that have a C `long double' type, this is defined.
|
||||||
|
On other platforms, it is not.
|
||||||
|
|
||||||
|
`ffi_type_pointer'
|
||||||
|
A generic `void *' pointer. You should use this for all pointers,
|
||||||
|
regardless of their real type.
|
||||||
|
|
||||||
|
Each of these is of type `ffi_type', so you must take the address
|
||||||
|
when passing to `ffi_prep_cif'.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Structures, Next: Type Example, Prev: Primitive Types, Up: Types
|
||||||
|
|
||||||
|
2.3.2 Structures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Although `libffi' has no special support for unions or bit-fields, it
|
||||||
|
is perfectly happy passing structures back and forth. You must first
|
||||||
|
describe the structure to `libffi' by creating a new `ffi_type' object
|
||||||
|
for it.
|
||||||
|
|
||||||
|
-- ffi_type:
|
||||||
|
The `ffi_type' has the following members:
|
||||||
|
`size_t size'
|
||||||
|
This is set by `libffi'; you should initialize it to zero.
|
||||||
|
|
||||||
|
`unsigned short alignment'
|
||||||
|
This is set by `libffi'; you should initialize it to zero.
|
||||||
|
|
||||||
|
`unsigned short type'
|
||||||
|
For a structure, this should be set to `FFI_TYPE_STRUCT'.
|
||||||
|
|
||||||
|
`ffi_type **elements'
|
||||||
|
This is a `NULL'-terminated array of pointers to `ffi_type'
|
||||||
|
objects. There is one element per field of the struct.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Type Example, Prev: Structures, Up: Types
|
||||||
|
|
||||||
|
2.3.3 Type Example
|
||||||
|
------------------
|
||||||
|
|
||||||
|
The following example initializes a `ffi_type' object representing the
|
||||||
|
`tm' struct from Linux's `time.h'.
|
||||||
|
|
||||||
|
Here is how the struct is defined:
|
||||||
|
|
||||||
|
struct tm {
|
||||||
|
int tm_sec;
|
||||||
|
int tm_min;
|
||||||
|
int tm_hour;
|
||||||
|
int tm_mday;
|
||||||
|
int tm_mon;
|
||||||
|
int tm_year;
|
||||||
|
int tm_wday;
|
||||||
|
int tm_yday;
|
||||||
|
int tm_isdst;
|
||||||
|
/* Those are for future use. */
|
||||||
|
long int __tm_gmtoff__;
|
||||||
|
__const char *__tm_zone__;
|
||||||
|
};
|
||||||
|
|
||||||
|
Here is the corresponding code to describe this struct to `libffi':
|
||||||
|
|
||||||
|
{
|
||||||
|
ffi_type tm_type;
|
||||||
|
ffi_type *tm_type_elements[12];
|
||||||
|
int i;
|
||||||
|
|
||||||
|
tm_type.size = tm_type.alignment = 0;
|
||||||
|
tm_type.elements = &tm_type_elements;
|
||||||
|
|
||||||
|
for (i = 0; i < 9; i++)
|
||||||
|
tm_type_elements[i] = &ffi_type_sint;
|
||||||
|
|
||||||
|
tm_type_elements[9] = &ffi_type_slong;
|
||||||
|
tm_type_elements[10] = &ffi_type_pointer;
|
||||||
|
tm_type_elements[11] = NULL;
|
||||||
|
|
||||||
|
/* tm_type can now be used to represent tm argument types and
|
||||||
|
return types for ffi_prep_cif() */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Multiple ABIs, Next: The Closure API, Prev: Types, Up: Using libffi
|
||||||
|
|
||||||
|
2.4 Multiple ABIs
|
||||||
|
=================
|
||||||
|
|
||||||
|
A given platform may provide multiple different ABIs at once. For
|
||||||
|
instance, the x86 platform has both `stdcall' and `fastcall' functions.
|
||||||
|
|
||||||
|
`libffi' provides some support for this. However, this is
|
||||||
|
necessarily platform-specific.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: The Closure API, Prev: Multiple ABIs, Up: Using libffi
|
||||||
|
|
||||||
|
2.5 The Closure API
|
||||||
|
===================
|
||||||
|
|
||||||
|
`libffi' also provides a way to write a generic function - a function
|
||||||
|
that can accept and decode any combination of arguments. This can be
|
||||||
|
useful when writing an interpreter, or to provide wrappers for
|
||||||
|
arbitrary functions.
|
||||||
|
|
||||||
|
This facility is called the "closure API". Closures are not
|
||||||
|
supported on all platforms; you can check the `FFI_CLOSURES' define to
|
||||||
|
determine whether they are supported on the current platform.
|
||||||
|
|
||||||
|
Because closures work by assembling a tiny function at runtime, they
|
||||||
|
require special allocation on platforms that have a non-executable
|
||||||
|
heap. Memory management for closures is handled by a pair of functions:
|
||||||
|
|
||||||
|
-- Function: void *ffi_closure_alloc (size_t SIZE, void **CODE)
|
||||||
|
Allocate a chunk of memory holding SIZE bytes. This returns a
|
||||||
|
pointer to the writable address, and sets *CODE to the
|
||||||
|
corresponding executable address.
|
||||||
|
|
||||||
|
SIZE should be sufficient to hold a `ffi_closure' object.
|
||||||
|
|
||||||
|
-- Function: void ffi_closure_free (void *WRITABLE)
|
||||||
|
Free memory allocated using `ffi_closure_alloc'. The argument is
|
||||||
|
the writable address that was returned.
|
||||||
|
|
||||||
|
Once you have allocated the memory for a closure, you must construct
|
||||||
|
a `ffi_cif' describing the function call. Finally you can prepare the
|
||||||
|
closure function:
|
||||||
|
|
||||||
|
-- Function: ffi_status ffi_prep_closure_loc (ffi_closure *CLOSURE,
|
||||||
|
ffi_cif *CIF, void (*FUN) (ffi_cif *CIF, void *RET, void
|
||||||
|
**ARGS, void *USER_DATA), void *USER_DATA, void *CODELOC)
|
||||||
|
Prepare a closure function.
|
||||||
|
|
||||||
|
CLOSURE is the address of a `ffi_closure' object; this is the
|
||||||
|
writable address returned by `ffi_closure_alloc'.
|
||||||
|
|
||||||
|
CIF is the `ffi_cif' describing the function parameters.
|
||||||
|
|
||||||
|
USER_DATA is an arbitrary datum that is passed, uninterpreted, to
|
||||||
|
your closure function.
|
||||||
|
|
||||||
|
CODELOC is the executable address returned by `ffi_closure_alloc'.
|
||||||
|
|
||||||
|
FUN is the function which will be called when the closure is
|
||||||
|
invoked. It is called with the arguments:
|
||||||
|
CIF
|
||||||
|
The `ffi_cif' passed to `ffi_prep_closure_loc'.
|
||||||
|
|
||||||
|
RET
|
||||||
|
A pointer to the memory used for the function's return value.
|
||||||
|
FUN must fill this, unless the function is declared as
|
||||||
|
returning `void'.
|
||||||
|
|
||||||
|
ARGS
|
||||||
|
A vector of pointers to memory holding the arguments to the
|
||||||
|
function.
|
||||||
|
|
||||||
|
USER_DATA
|
||||||
|
The same USER_DATA that was passed to `ffi_prep_closure_loc'.
|
||||||
|
|
||||||
|
`ffi_prep_closure_loc' will return `FFI_OK' if everything went ok,
|
||||||
|
and something else on error.
|
||||||
|
|
||||||
|
After calling `ffi_prep_closure_loc', you can cast CODELOC to the
|
||||||
|
appropriate pointer-to-function type.
|
||||||
|
|
||||||
|
You may see old code referring to `ffi_prep_closure'. This function
|
||||||
|
is deprecated, as it cannot handle the need for separate writable and
|
||||||
|
executable addresses.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Missing Features, Next: Index, Prev: Using libffi, Up: Top
|
||||||
|
|
||||||
|
3 Missing Features
|
||||||
|
******************
|
||||||
|
|
||||||
|
`libffi' is missing a few features. We welcome patches to add support
|
||||||
|
for these.
|
||||||
|
|
||||||
|
* There is no support for calling varargs functions. This may work
|
||||||
|
on some platforms, depending on how the ABI is defined, but it is
|
||||||
|
not reliable.
|
||||||
|
|
||||||
|
* There is no support for bit fields in structures.
|
||||||
|
|
||||||
|
* The closure API is
|
||||||
|
|
||||||
|
* The "raw" API is undocumented.
|
||||||
|
|
||||||
|
|
||||||
|
File: libffi.info, Node: Index, Prev: Missing Features, Up: Top
|
||||||
|
|
||||||
|
Index
|
||||||
|
*****
|
||||||
|
|
||||||
|
|